hi list:
I recently set up an openstack project using a compute node(node1) and a
controller, VMs in compute nodes can ping each other, everything is OK. But
when I use floodlight as a controller, VMs suddenly cannot ping each other.
I use openvswitch-switch 1.9.90-1bsn7 which is built by BigSwitch for
floodlight, openstack quantum uses namespace.
I debuged floodlight, when VM1 pings VM2, if floodlight does not know how
to route the arp or ping packet, it send a FLOOD action to OVS, but there
are no flow in node1's OVS db:
root@node1:~# ovs-appctl bridge/dump-flows br-int
duration=46s, priority=180006, n_packets=0, n_bytes=0,
priority=180006,arp,arp_spa=30.0.0.1,arp_op=1,actions=NORMAL
duration=46s, priority=180000, n_packets=0, n_bytes=0,
priority=180000,udp,in_port=65534,dl_src=b2:b1:1c:05:98:45,tp_src=68,tp_dst=67,actions=NORMAL
duration=46s, priority=180008, n_packets=0, n_bytes=0,
priority=180008,tcp,nw_src=30.0.0.1,tp_src=6633,actions=NORMAL
duration=46s, priority=180007, n_packets=0, n_bytes=0,
priority=180007,tcp,nw_dst=30.0.0.1,tp_dst=6633,actions=NORMAL
duration=46s, priority=180005, n_packets=0, n_bytes=0,
priority=180005,arp,arp_tpa=30.0.0.1,arp_op=2,actions=NORMAL
duration=46s, priority=180003, n_packets=0, n_bytes=0,
priority=180003,arp,dl_dst=44:03:a7:74:a6:49,arp_op=2,actions=NORMAL
duration=46s, priority=180001, n_packets=0, n_bytes=0,
priority=180001,arp,dl_dst=b2:b1:1c:05:98:45,arp_op=2,actions=NORMAL
duration=46s, priority=180004, n_packets=0, n_bytes=0,
priority=180004,arp,dl_src=44:03:a7:74:a6:49,arp_op=1,actions=NORMAL
duration=46s, priority=180002, n_packets=0, n_bytes=0,
priority=180002,arp,dl_src=b2:b1:1c:05:98:45,arp_op=1,actions=NORMAL
table_id=254, duration=4265s, priority=0, n_packets=2613, n_bytes=519476,
priority=0,reg0=0x1,actions=controller(reason=no_match)
table_id=254, duration=4265s, priority=0, n_packets=0, n_bytes=0,
priority=0,reg0=0x2,drop
root@node1:~# ovs-dpctl dump-flows br-int
in_port(38),eth(src=fa:16:3e:5c:fd:52,dst=fa:16:3e:f7:3d:5e),eth_type(0x0800),ipv4(src=100.0.0.6,dst=100.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0),
packets:1, bytes:98, used:0.312s,
actions:userspace(pid=4294953729,slow_path(controller))
I can capture packet at br-int, but no packets at eth2 or br-tun(packets
should go through eth2 in GRE tunnel br-tun, br-tun and br-int are
interconnected with port patch-int and patch-tun)
root@node1:~# tcpdump -i br-int -nn
tcpdump: WARNING: br-int: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br-int, link-type EN10MB (Ethernet), capture size 65535 bytes
16:36:29.805357 ARP, Request who-has 100.0.0.1 tell 100.0.0.6, length 28
16:36:31.804091 ARP, Request who-has 100.0.0.1 tell 100.0.0.6, length 28
root@node1:~# tcpdump -i br-tun -nn
tcpdump: WARNING: br-tun: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br-tun, link-type EN10MB (Ethernet), capture size 65535 bytes
16:38:34.271453 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2,
1 group record(s), length 28
16:38:35.119489 IP6 fe80::c478:c5ff:fecf:f64a > ff02::2: ICMP6, router
solicitation, length 16
16:38:39.131454 IP6 fe80::c478:c5ff:fecf:f64a > ff02::2: ICMP6, router
solicitation, length 16
root@node1:~# tcpdump -i eth2 proto gre -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
How can I let the arp request packets go through br-tun to eth2, so that
the controller node can receive them?
root@node1:~# ovs-vsctl show
afaf59ee-48cc-4f5b-9a1d-4311b509a6c5
*Bridge br-int*
*Controller "tcp:30.0.0.1:6633"*
* is_connected: true*
Port "qvof3dc86e4-82"
tag: 1
Interface "qvof3dc86e4-82"
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port "qvofc3fe9ed-fb"
tag: 4095
Interface "qvofc3fe9ed-fb"
Port br-int
Interface br-int
type: internal
Port "qvo8cb91d2a-7f"
tag: 1
Interface "qvo8cb91d2a-7f"
Port "qvo329db52d-81"
tag: 1
Interface "qvo329db52d-81"
Bridge "qbr329db52d-81"
Port "qbr329db52d-81"
Interface "qbr329db52d-81"
type: internal
Port "tap329db52d-81"
Interface "tap329db52d-81"
Port "qvb329db52d-81"
Interface "qvb329db52d-81"
Bridge "qbrc8ec86f4-3a"
Port "qbrc8ec86f4-3a"
Interface "qbrc8ec86f4-3a"
type: internal
Port "qvbc8ec86f4-3a"
Interface "qvbc8ec86f4-3a"
Bridge "qbrf3dc86e4-82"
Port "qbrf3dc86e4-82"
Interface "qbrf3dc86e4-82"
type: internal
Port "qvbf3dc86e4-82"
Interface "qvbf3dc86e4-82"
Port "tapf3dc86e4-82"
Interface "tapf3dc86e4-82"
Bridge "qbr31c6e35b-81"
Port "qbr31c6e35b-81"
Interface "qbr31c6e35b-81"
type: internal
Port "qvb31c6e35b-81"
Interface "qvb31c6e35b-81"
Bridge "qbr28117358-50"
Port "qvb28117358-50"
Interface "qvb28117358-50"
Port "qbr28117358-50"
Interface "qbr28117358-50"
type: internal
Bridge "qbr054163ed-d1"
Port "qvb054163ed-d1"
Interface "qvb054163ed-d1"
Port "qbr054163ed-d1"
Interface "qbr054163ed-d1"
type: internal
Bridge "qbr5c2a6893-3c"
Port "qvb5c2a6893-3c"
Interface "qvb5c2a6893-3c"
Port "qbr5c2a6893-3c"
Interface "qbr5c2a6893-3c"
type: internal
Bridge "qbr8cb91d2a-7f"
Port "tap8cb91d2a-7f"
Interface "tap8cb91d2a-7f"
Port "qvb8cb91d2a-7f"
Interface "qvb8cb91d2a-7f"
Port "qbr8cb91d2a-7f"
Interface "qbr8cb91d2a-7f"
type: internal
Bridge "qbrfc3fe9ed-fb"
Port "qvbfc3fe9ed-fb"
Interface "qvbfc3fe9ed-fb"
Port "qbrfc3fe9ed-fb"
Interface "qbrfc3fe9ed-fb"
type: internal
Bridge "br0"
Port "eth0"
Interface "eth0"
Port "br0"
Interface "br0"
type: internal
*Bridge br-tun*
*Port "gre-1"*
Interface "gre-1"
type: gre
options: {in_key=flow, out_key=flow, remote_ip="30.0.0.1"}
Port br-tun
Interface br-tun
type: internal
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
.....
ovs_version: "1.9.0"
_______________________________________________
discuss mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/discuss