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