Networking

KVM 來賓無法連接到主機,但反之亦然

  • December 12, 2015

我的主機上有 debian 7,並在其上執行 KVM vm。

我的主機網路配置是這樣的(相關部分):

br0       Link encap:Ethernet  HWaddr 68:b5:99:ae:8f:11  
         inet addr:77.244.244.123  Bcast:77.244.245.239 Mask:255.255.255.248
         inet6 addr: fe80::6ab5:99ff:feae:8f11/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:762056 errors:0 dropped:0 overruns:0 frame:0
         TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:44471912 (42.4 MiB)  TX bytes:690 (690.0 B)

eth1      Link encap:Ethernet  HWaddr 68:b5:99:ae:8f:11  
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:2329129 errors:0 dropped:0 overruns:0 frame:0
         TX packets:156844 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:2035457148 (1.8 GiB)  TX bytes:15978289 (15.2 MiB)
         Memory:ef060000-ef07ffff 

我的主機上網介面:

eth0      Link encap:Ethernet  HWaddr 68:b5:99:ae:8f:10  
         inet addr:146.255.255.123  Bcast:146.255.62.175  Mask:255.255.255.240
         inet6 addr: 2a02:1b8:10:68:6ab5:99ff:feae:8f10/64 Scope:Global
         inet6 addr: fe80::6ab5:99ff:feae:8f10/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:19692653 errors:0 dropped:0 overruns:0 frame:0
         TX packets:46873952 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:3070321406 (2.8 GiB)  TX bytes:44921402181 (41.8 GiB)
         Memory:ef000000-ef01ffff 

我的主機使用 eth0 作為網際網路連接的介面,我的 KVM 客戶作業系統 br0使用eth1. 該eth0介面故意不是橋接器的一部分。

關於橋的附加資訊:

bridge name   bridge id          STP enabled  interfaces
br0           8000.68b599ae8f11  no           eth1
                                             vnet0

我的主機可以通過網路訪問來賓,但我的來賓無法連接到主機。我確信我錯過了一些非常簡單的東西,但我在任何地方都找不到答案。

只是為了提供盡可能多的資訊,這也是我的客人界面配置:

eth0      Link encap:Ethernet  HWaddr 52:54:00:02:98:b7  
         inet addr:77.244.244.123  Bcast:77.244.245.239  Mask:255.255.255.248
         inet6 addr: fe80::5054:ff:fe02:98b7/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:26969 errors:0 dropped:22761 overruns:0 frame:0
         TX packets:2344 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:2019925 (1.9 MiB)  TX bytes:331567 (323.7 KiB)

我的主機具有以下 iptables 規則(在我看來,這應該與來賓/主機之間的通信完全無關):

G-NET // root@net:/home/geruetzel# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:67
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:67

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:68

如果您能給我任何幫助,我將不勝感激 - 在此先感謝!

事實證明,您在網橋的主機端使用與來賓相同的 IP 地址。(從您的問題中看不到這一點,因為您曾經xx.xx隱藏部分 IP 地址;它只出現在其中一條評論中。)

網橋 IP 地址由主機使用。當一個物理介面(例如eth0添加到網橋)時,它不能有 IP 地址,並且應該設置為混雜模式,以便它可以接收網橋內任何 IP 地址的流量。

網橋的來賓 IP 地址在來賓本身內定義為正常eth0類型的情況。

就像網路上的兩台設備必須有不同的 IP 地址一樣,來賓和主機也必須有不同的 IP 地址。明確重申這一點:主機和來賓的 IP 地址不能相同。

您的主人和客人可以通過這種配置進行交流,這讓我印象深刻。我想知道,當您的主人認為它正在與您的客人交流時,它是否實際上是在與自己交流。


這是一個簡化的範例,基於我的家庭網路的配置(我現在不在工作):

主機 (192.168.1.253/24)

$ brctl show brINT
bridge name     bridge id               STP enabled     interfaces
brINT           8000.009c029758d6       no              eth1
                                                       vnet1

$ ip addr show dev brINT
5: brINT: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
   link/ether 00:9c:02:97:58:d6 brd ff:ff:ff:ff:ff:ff
   inet 192.168.1.253/24 brd 192.168.1.255 scope global brINT

$ ip addr show dev eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master brINT state UP qlen 1000
   link/ether 00:9c:02:97:58:d6 brd ff:ff:ff:ff:ff:ff

訪客 (192.168.1.15/24)

$ ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
   link/ether 52:54:00:3c:75:33 brd ff:ff:ff:ff:ff:ff
   inet 192.168.1.15/24 brd 192.168.1.255 scope global eth0

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