Linux-Networking

帶有虛擬機父級的centos伺服器無法連接但vms工作正常

  • March 24, 2017

我有一個伺服器 centos 6.2,它有幾個使用https://virt-manager.org/的虛擬機,虛擬機工作得很好,沒有問題。

我遇到的問題是父伺服器無法使用任何協議連接。DNS 工作正常,虛擬機使用橋接連接正常,但我無法從父級連接。

我嘗試過: - 禁用 ip 表 - 各種協議(http、https、firefox、curl、ssh)

我嘗試連接時的錯誤是“網路無法訪問”

這台機器是幾年前由其他人設置的,所以很難知道他們在這裡做了什麼。

這是我的ifconfig的摘要

em1 - 表示已連接,大量數據包進出,已設置為橋接到 virbr0。

virbr0 - 說它有一個 ip 和大量進出的數據包。

所有的虛擬機都使用 virbr0

剛剛意識到,我也可以通過父級的http連接到虛擬機。

我可以檢查/嘗試什麼?

$$ ![ip addr and ip route $$$$ 1 $$]$$ 1 $$

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host 
      valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master virbr0 state UP qlen 1000
   link/ether 84:2b:2b:58:4c:ad brd ff:ff:ff:ff:ff:ff
   inet 192.168.1.38/24 brd 192.168.1.255 scope global em1
      valid_lft forever preferred_lft forever
   inet6 fe80::862b:2bff:fe58:4cad/64 scope link 
      valid_lft forever preferred_lft forever
3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master virbr0 state UP qlen 1000
   link/ether 84:2b:2b:58:4c:ae brd ff:ff:ff:ff:ff:ff
   inet6 fe80::862b:2bff:fe58:4cae/64 scope link 
      valid_lft forever preferred_lft forever
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
   link/ether 84:2b:2b:58:4c:ad brd ff:ff:ff:ff:ff:ff
   inet 192.168.1.38/24 brd 192.168.1.255 scope global virbr0
      valid_lft forever preferred_lft forever
   inet6 fe80::862b:2bff:fe58:4cad/64 scope link 
      valid_lft forever preferred_lft forever
5: vif1.0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr0 state UP qlen 32
   link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
   inet6 fe80::fcff:ffff:feff:ffff/64 scope link 
      valid_lft forever preferred_lft forever

和IP路由:

預設通過 192.168.1.1 dev em1 proto static

169.254.0.0/16 dev virbr0  scope link  metric 1004 
192.168.1.0/24 dev virbr0  proto kernel  scope link  src 192.168.1.38 
192.168.1.0/24 dev em1  proto kernel  scope link  src 192.168.1.38  metric 1 

添加

brctl show
bridge name bridge id       STP enabled interfaces
virbr0      8000.842b2b584cad   no      em1
                           em2
                           vif1.0

您也可以發布“brctl show”的輸出嗎?

有兩種可能的設置:

  1. 您的虛擬機使用的 virbr0 上有一個“內部”IP 範圍,並且您的主機作業系統執行 NAT
  2. 所有機器都在同一個 192.168.1.24 ip 範圍內

我猜 2) 最有可能,在這種情況下,正如 pbacterio 所提到的,您通過在兩個介面上配置相同的 ip 地址 (192.168.1.38) 會發生路由衝突,因此從 em1 中刪除 ip 應該可以解決問題。

ip a del 192.168.1.38/24 dev em1

如果可行,您應該編輯*/etc/sysconfig/network-scripts/ifcfg-em1*使其顯示如下內容:

DEVICE=em1
BOOTPROTO=none
ONBOOT=yes
HWADDR=84:2b:2b:58:4c:ad
BRIDGE=virbr0
NM-CONTROLLED=no

這樣,重新啟動後更改仍然存在。

引用自:https://serverfault.com/questions/836672