arp 答复未被处理

arp 答复未被处理

我的 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

我发现这两个设置之间存在以下差异:

  1. 在工作中,有 br-ex 和 eth 接口,br-ex 接口获取 ip 地址

  2. 在工作模式下,brctl 输出显示 br-ex 的网桥 ID 为 8000.009c02aa6575。它以 8000 开头,就像其他 ovs 控制的网桥一样。

历史:我正在尝试设置 openstack,而 openvswitch 抱怨说 br-ex 桥不受其控制。所以我决定不定义它。

相关内容