我的 eth0 接口无法处理合法的 arp 回复。当我尝试 ping 主机时,我看到 arp 请求,并使用 tcpdump 从我尝试 ping 的主机回复,但 ip neigh 表示出现故障。这与我的网桥配置有关,由 quantum 设置。当我在 /etc/network/interfaces 中有以下内容时,我会遇到这种情况:
auto eth0
iface eth0 inet dhcp
在这种情况下,我确实获得了一个 IP(其为 192.168.1.10)。我的 ifconfig 输出:
eth0 Link encap:Ethernet HWaddr 00:9c:02:aa:65:75
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::29c:2ff:feaa:6575/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1348 errors:0 dropped:0 overruns:0 frame:0
TX packets:350 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:380078 (380.0 KB) TX bytes:26154 (26.1 KB)
Interrupt:18
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:23147 errors:0 dropped:0 overruns:0 frame:0
TX packets:23147 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3532784 (3.5 MB) TX bytes:3532784 (3.5 MB)
qbrd6610d3a-33 Link encap:Ethernet HWaddr c2:03:07:da:82:9f
inet6 addr: fe80::e0ca:4cff:fe0a:efe7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:308 (308.0 B) TX bytes:1500 (1.5 KB)
qvbd6610d3a-33 Link encap:Ethernet HWaddr c2:03:07:da:82:9f
inet6 addr: fe80::c003:7ff:feda:829f/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1500 (1.5 KB) TX bytes:2476 (2.4 KB)
qvod6610d3a-33 Link encap:Ethernet HWaddr 4e:50:a8:b1:ea:5d
inet6 addr: fe80::4c50:a8ff:feb1:ea5d/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:36 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2476 (2.4 KB) TX bytes:1500 (1.5 KB)
brctl 显示输出:
bridge name bridge id STP enabled interfaces
br-ex 0000.009c02aa6575 no eth0
br-int 0000.06cbb7af1b4d no tapbba13168-7d
br-tun 0000.92750fdef846 no
qbrd6610d3a-33 8000.c20307da829f no qvbd6610d3a-33
ovs-vsctl 显示输出:
220ed79f-235f-4be1-bc1a-c8619065cc1d
Bridge br-int
Port br-int
Interface br-int
type: internal
Port "qvo5d7cc3f9-c3"
tag: 1
Interface "qvo5d7cc3f9-c3"
Port "tapbba13168-7d"
tag: 1
Interface "tapbba13168-7d"
type: internal
Port "qvod6610d3a-33"
tag: 1
Interface "qvod6610d3a-33"
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Bridge br-ex
Port "eth0"
Interface "eth0"
Port br-ex
Interface br-ex
type: internal
Bridge br-tun
Port br-tun
Interface br-tun
type: internal
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
ovs_version: "1.4.0+build0"
我没有看到 iptables、ebtables 或 sysctl 设置中过滤的证据。
当我尝试 ping 192.168.1.103 时的 tcpdump 输出:
09:59:22.835131 ARP, Request who-has 192.168.1.103 tell 192.168.1.10, length 28
09:59:22.945763 ARP, Reply 192.168.1.103 is-at 8c:70:5a:bc:09:20, length 46
09:59:23.150800 IP 192.168.1.1 > 224.0.0.1: igmp query v2
09:59:23.832607 ARP, Request who-has 192.168.1.103 tell 192.168.1.10, length 28
09:59:23.867344 ARP, Reply 192.168.1.103 is-at 8c:70:5a:bc:09:20, length 46
09:59:24.832589 ARP, Request who-has 192.168.1.103 tell 192.168.1.10, length 28
09:59:24.887291 ARP, Reply 192.168.1.103 is-at 8c:70:5a:bc:09:20, length 46
09:59:25.850466 ARP, Request who-has 192.168.1.103 tell 192.168.1.10, length 28
09:59:25.919455 ARP, Reply 192.168.1.103 is-at 8c:70:5a:bc:09:20, length 46
09:59:26.848543 ARP, Request who-has 192.168.1.103 tell 192.168.1.10, length 28
09:59:26.849404 ARP, Reply 192.168.1.103 is-at 8c:70:5a:bc:09:20, length 46
09:59:27.848583 ARP, Request who-has 192.168.1.103 tell 192.168.1.10, length 28
09:59:27.959287 ARP, Reply 192.168.1.103 is-at 8c:70:5a:bc:09:20, length 46
当我将 /etc/network/interfaces 更改为下面的内容并重新启动时,我可以建立 tcp 连接。
auto br-ex
iface br-ex inet dhcp
address 0.0.0.0
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
我发现这两个设置之间存在以下差异:
在工作中,有 br-ex 和 eth 接口,br-ex 接口获取 ip 地址
在工作模式下,brctl 输出显示 br-ex 的网桥 ID 为 8000.009c02aa6575。它以 8000 开头,就像其他 ovs 控制的网桥一样。
历史:我正在尝试设置 openstack,而 openvswitch 抱怨说 br-ex 桥不受其控制。所以我决定不定义它。