1

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:

  1. in the working one, there are both br-ex and eth interfaces, and the br-ex interface gets the ip address

  2. 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.

0

You must log in to answer this question.

Browse other questions tagged .