Hi list

I have been using openvswitch very basically for a while, and am experiencing a problem (which surfaced after an upgrade from version 1.2.2.10448 to 2.3.0) which only happens intermittently, often after migrating VMs or restarting VMS.

I have a KVM server running centos6, openvswitch 2.3.0 I have an issue where two VMs, both with interfaces tagged with vlan 3 are behaving differently. OVS forwards packets to vm2, but not vm1.

When I ping from the guests to an external host (to initiate ARP packets), I see the following traffic flows. Below, I am tcpdumping on the tap interface, the bond (bondV) connecting to a physical switch, and the destination physical server.

Non-working guest vm1 (host tap interface vnet0, attached to ovs with tag=3)
ovs vnet0: 21:40:06.853187 52:54:00:14:54:c6 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 10.202.3.250 tell 10.202.3.201, length 28 ovs bondV: 21:40:06.853200 52:54:00:14:54:c6 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 3, p 0, ethertype ARP, Request who-has 10.202.3.250 tell 10.202.3.201, length 28 phys vlan3: 21:40:06.859649 52:54:00:14:54:c6 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: arp who-has 10.202.3.250 tell 10.202.3.201 phys vlan3: 21:40:06.859656 00:15:17:91:05:4c > 52:54:00:14:54:c6, ethertype ARP (0x0806), length 42: arp reply 10.202.3.250 is-at 00:15:17:91:05:4c ovs bondV: 21:40:06.853285 00:15:17:91:05:4c > 52:54:00:14:54:c6, ethertype 802.1Q (0x8100), length 60: vlan 3, p 0, ethertype ARP, Reply 10.202.3.250 is-at 00:15:17:91:05:4c, length 42
ovs vnet0: NOTHING

Working guest vm2 (host tap interface veth-carbon1-3, attached to ovs with tag=3) ovs veth-carbon1-3: 21:54:12.611041 52:54:00:60:29:8c > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 10.202.3.250 tell 10.202.3.91, length 28 ovs bondV: 21:54:12.611100 52:54:00:60:29:8c > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 3, p 0, ethertype ARP, Request who-has 10.202.3.250 tell 10.202.3.91, length 28 phys vlan3: 21:54:12.606258 52:54:00:60:29:8c > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: arp who-has 10.202.3.250 tell 10.202.3.91 phys vlan3: 21:54:12.606264 00:15:17:91:05:4c > 52:54:00:60:29:8c, ethertype ARP (0x0806), length 42: arp reply 10.202.3.250 is-at 00:15:17:91:05:4c ovs bondV: 21:54:12.611189 00:15:17:91:05:4c > 52:54:00:60:29:8c, ethertype 802.1Q (0x8100), length 60: vlan 3, p 0, ethertype ARP, Reply 10.202.3.250 is-at 00:15:17:91:05:4c, length 42 ovs veth-carbon1-3: 21:54:12.611242 00:15:17:91:05:4c > 52:54:00:60:29:8c, ethertype ARP (0x0806), length 56: Reply 10.202.3.250 is-at 00:15:17:91:05:4c, length 42

At layer3, I can use the 'ip route get *' commands to determine how the kernel will route a packet. Is there any equivalent command to inspect the ovs behaviour. I would like to ask ovs: 'If I send a packet with src mac 00:15:17:91:05:4c which came in on interface bondV tagged with vlan 3, destined to mac 52:54:00:60:29:8c, what port would it be forwarded to?'

I can see from the outputs below that the mac table is correct, and the mac address of vm1 is on ovs port 6, which is vnet0, which is the correct interface. What else can I use to troubleshoot why the arp replies are actually not forwarding to vnet0?

Many Thanks

Chris


# ovs-appctl fdb/show vbr0 | egrep 'port|00:15:17:91:05:4c|52:54:00:14:54:c6|52:54:00:60:29:8c'
 port  VLAN  MAC                Age
    1     3  00:15:17:91:05:4c    1
    1     4  00:15:17:91:05:4c    1
    6     3  52:54:00:14:54:c6    1
    5     3  52:54:00:60:29:8c    1
    1     1  00:15:17:91:05:4c    0

# ovs-ofctl show vbr0 | sed -n '/^[^ ]/p; /\(vbr0\|vnet0\|veth-car\|bondV\)/,/speed/p'
OFPT_FEATURES_REPLY (xid=0x2): dpid:0000782bcb5ab160
n_tables:254, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP STRIP_VLAN SET_DL_SRC SET_DL_DST SET_NW_SRC SET_NW_DST SET_NW_TOS SET_TP_SRC SET_TP_DST ENQUEUE
 1(bondV): addr:78:2b:cb:5a:b1:60
     config:     0
     state:      0
     current:    1GB-FD
     speed: 1000 Mbps now, 0 Mbps max
 5(veth-carbon1-3): addr:fe:54:00:60:29:8c
     config:     0
     state:      0
     current:    10MB-FD COPPER
     speed: 10 Mbps now, 0 Mbps max
 6(vnet0): addr:fe:54:00:14:54:c6
     config:     0
     state:      0
     current:    10MB-FD COPPER
     speed: 10 Mbps now, 0 Mbps max
 LOCAL(vbr0): addr:78:2b:cb:5a:b1:60
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0

# I have removed many ports below which are not relevant to this problem
 # ovs-vsctl show
435fb9ac-5b13-4204-ad4a-e726aa5cd06b
    Bridge "vbr0"
        Port "vbr0"
            Interface "vbr0"
                type: internal
        Port "vnet0"
            tag: 3
            Interface "vnet0"
        Port bondV
            Interface bondV
        Port "vlan1"
            tag: 1
            Interface "vlan1"
                type: internal
        Port "veth-carbon1-3"
            tag: 3
            Interface "veth-carbon1-3"
    ovs_version: "2.3.0"


_______________________________________________
discuss mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to