My eth0 interface does not process a legitimate arp reply. When I try to ping a host, I see arp request and reply with tcpdump from the host I try to ping from, but ip neigh says that there is a failure. This has to do something with my bridge configuration, set up by quantum. I experience this when I have the following in /etc/network/interfaces:
auto eth0
iface eth0 inet dhcp
I do get an IP in this case (its 192.168.1.10). My ifconfig output:
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 show output:
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 show output:
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"
I see no evidence of filtering in iptables, ebtables, or sysctl settings.
The tcpdump output while I try to ping 192.168.1.103:
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
When I change /etc/network/interfaces to the below one and reboot, I can establish tcp connections.
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
I can catch the following differences between the two setups:
in the working one, there are both br-ex and eth interfaces, and the br-ex interface gets the ip address
in the working one, the brctl output show a bridge id 8000.009c02aa6575 for br-ex. It starts with 8000, like the other ovs controlled bridges.
History: I am trying to setup openstack, and openvswitch was complaining that the br-ex bridge is not controlled by it. So I decided not to define it.