[ovs-discuss] why is ovs for forwarding my packet?
Ronald van der Pol
Ronald.vanderPol at rvdp.org
Fri Sep 12 19:10:27 UTC 2014
This is my setup (part of OpenStack compute node):
eth1 +---------+ phy-br-p2p2
A --------+ br-p2p2 +--------------- B
+---------+
The problem is this. B sends an ARP request to A, A answers with
an ARP reply. I see this reply packet on eth1, but not on phy-br-p2p2.
It is using VLAN 3810.
# ovs-vsctl show
cfac43e4-1473-4a44-9919-6c6e9e17e3c2
Bridge "br-p2p2"
Port "br-p2p2"
Interface "br-p2p2"
type: internal
Port "eth1"
trunks: [3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819]
Interface "eth1"
Port "p2p2"
Interface "p2p2"
Port "phy-br-p2p2"
Interface "phy-br-p2p2"
# tshark -c2 -n -i eth1 arp
Capturing on 'eth1'
1 0.000000 fa:16:3e:6a:6f:77 -> ff:ff:ff:ff:ff:ff ARP 46 Who has 10.10.1.10? Tell 10.10.130.100
2 0.130105 00:22:19:2c:39:f1 -> fa:16:3e:6a:6f:77 ARP 64 10.10.1.10 is at 00:22:19:2c:39:f1
# tshark -c5 -n -i phy-br-p2p2 arp
Capturing on 'phy-br-p2p2'
1 0.000000 fa:16:3e:6a:6f:77 -> ff:ff:ff:ff:ff:ff ARP 46 Who has 10.10.1.10? Tell 10.10.130.100
1 2 1.001544 fa:16:3e:6a:6f:77 -> ff:ff:ff:ff:ff:ff ARP 46 Who has 10.10.1.10? Tell 10.10.130.100
2 3 2.003346 fa:16:3e:6a:6f:77 -> ff:ff:ff:ff:ff:ff ARP 46 Who has 10.10.1.10? Tell 10.10.130.100
3 4 3.999447 fa:16:3e:6a:6f:77 -> ff:ff:ff:ff:ff:ff ARP 46 Who has 10.10.1.10? Tell 10.10.130.100
4 5 5.000971 fa:16:3e:6a:6f:77 -> ff:ff:ff:ff:ff:ff ARP 46 Who has 10.10.1.10? Tell 10.10.130.100
The mac forwarding table looks OK:
# ovs-appctl fdb/show br-p2p2
port VLAN MAC Age
19 101 fa:16:3e:36:56:3e 157
19 12 fa:16:3e:84:c9:0c 137
1 11 00:22:0d:84:88:00 131
19 12 fa:16:3e:9b:96:d9 41
1 12 fa:16:3e:93:c1:90 2
19 12 fa:16:3e:d8:c9:62 2
19 3810 fa:16:3e:6a:6f:77 1
1 11 00:0e:39:d8:30:00 1
1 11 00:00:0c:9f:f0:00 1
1 11 00:05:73:a0:00:01 1
# ovs-ofctl show br-p2p2
OFPT_FEATURES_REPLY (xid=0x2): dpid:00000002c9ee01d0
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(p2p2): addr:00:25:90:c0:61:e1
config: 0
state: 0
current: 1GB-FD COPPER AUTO_NEG
advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD COPPER AUTO_NEG AUTO_PAUSE
supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD COPPER AUTO_NEG AUTO_PAUSE
speed: 1000 Mbps now, 1000 Mbps max
19(phy-br-p2p2): addr:f6:a7:68:64:ad:6c
config: 0
state: 0
current: 10GB-FD COPPER
speed: 10000 Mbps now, 0 Mbps max
21(eth1): addr:00:02:c9:ee:01:d0
config: 0
state: 0
current: 10GB-FD COPPER
advertised: 10GB-FD COPPER
supported: 10GB-FD COPPER
speed: 10000 Mbps now, 10000 Mbps max
LOCAL(br-p2p2): addr:00:02:c9:ee:01:d0
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
root at lithium:~#
And a trace like right too:
# ovs-appctl ofproto/trace br-p2p2 in_port=21 fa163e6a6f770022192c39f181000ee2080600010800060400020022192c39f10a0a010afa163e6a6f770a0a8264000000190000000000000000000000000000
Packet: arp,metadata=0,in_port=0,dl_vlan=3810,dl_vlan_pcp=0,dl_src=00:22:19:2c:39:f1,dl_dst=fa:16:3e:6a:6f:77,arp_spa=10.10.1.10,arp_tpa=10.10.130.100,arp_op=2,arp_sha=00:22:19:2c:39:f1,arp_tha=fa:16:3e:6a:6f:77
Flow: arp,metadata=0,in_port=21,dl_vlan=3810,dl_vlan_pcp=0,dl_src=00:22:19:2c:39:f1,dl_dst=fa:16:3e:6a:6f:77,arp_spa=10.10.1.10,arp_tpa=10.10.130.100,arp_op=2,arp_sha=00:22:19:2c:39:f1,arp_tha=fa:16:3e:6a:6f:77
Rule: table=0 cookie=0 priority=1
OpenFlow actions=NORMAL
forwarding to learned port
Final flow: unchanged
Relevant fields: skb_priority=0,arp,in_port=21,dl_vlan=3810,dl_src=00:22:19:2c:39:f1,dl_dst=fa:16:3e:6a:6f:77,nw_frag=no
Datapath actions: 7
root at lithium:~#
# ovs-dpctl show
system at ovs-system:
lookups: hit:120650924 missed:1003049 lost:0
flows: 25
port 0: ovs-system (internal)
port 1: p2p2
port 2: br-p2p2 (internal)
port 5: br-int (internal)
port 6: int-br-p2p2
port 7: phy-br-p2p2
port 8: qvoee503507-d4
port 9: qvoec91ac92-65
port 10: qvof3111da3-1e
port 11: qvo91458f1d-7f
port 12: qvo3104d398-a1
port 13: qvoede027d2-a9
port 14: qvo0e6ce64d-e7
port 17: eth1
port 22: qvo38feb2e2-e7
port 23: qvoa516227f-71
port 24: qvob354b801-2d
port 26: int-br-eth1
# ovs-ofctl dump-flows br-p2p2
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=79713.54s, table=0, n_packets=1299, n_bytes=448854, idle_age=201, hard_age=65534, priority=4,in_port=19,dl_vlan=4 actions=mod_vlan_vid:101,NORMAL
cookie=0x0, duration=79715.629s, table=0, n_packets=0, n_bytes=0, idle_age=65534, hard_age=65534, priority=4,in_port=19,dl_vlan=3 actions=mod_vlan_vid:103,NORMAL
cookie=0x0, duration=79717.208s, table=0, n_packets=57439, n_bytes=9955852, idle_age=0, hard_age=65534, priority=4,in_port=19,dl_vlan=1 actions=mod_vlan_vid:12,NORMAL
cookie=0x0, duration=79716.751s, table=0, n_packets=12689, n_bytes=537550, idle_age=0, hard_age=65534, priority=4,in_port=19,dl_vlan=2 actions=mod_vlan_vid:3810,NORMAL
cookie=0x0, duration=79718.735s, table=0, n_packets=8, n_bytes=648, idle_age=65534, hard_age=65534, priority=2,in_port=19 actions=drop
cookie=0x0, duration=79719.402s, table=0, n_packets=1851946, n_bytes=368031158, idle_age=0, hard_age=65534, priority=1 actions=NORMAL
So it's looks like packets are forwarded to phy-br-p2p2, but I don't see
them with tshark on phy-br-p2p2 or the other side of that veth.
How can I further debug what is going on?
This is "Ubuntu 14.04.1 LTS" with:
# ovs-vswitchd -V
ovs-vswitchd (Open vSwitch) 2.0.1
Compiled Feb 23 2014 14:42:34
OpenFlow versions 0x1:0x1
rvdp
More information about the discuss
mailing list