SAVI’s network is built upon a mix of Quantum/Neutron’s out-of-the-box OVS configuration + custom network logic via SDN.
The following is a checklist of possible causes when there are connectivity issues in the network.
ethtool
dump-flows
and grep for src/dst MACs or IPsdump-flows
and make sure action=NORMAL
tcpdump
shows packets are existing one server but not being received by the other, check physical OpenFlow switch
netstat -tpn | grep 6633
ESTABLISHED
ESTABLISHED
in netstat
), check Ryu logs for errors
tcpdump
or do arp -a
to see if ARP is the issue
dnsmasq
(DHCP server) in controller goes into bad state, difficult to debug
/etc/resolv.conf
dnsmasq
issue or improperly set Neutron Subnet settingsnova show
Can simulate a packet using ovs-appctl (will not actually create a packet, so table stats won’t change). This is useful for debugging large tables and seeing which flow(s) will match.
sudo ovs-appctl ofproto/trace <bridge name> <flow spec> -generate
Example:
savi@agent-24:~$ sudo ovs-appctl ofproto/trace br-int arp,in_port=13,dl_src=fa:16:3e:77:bf:cd,dl_dst=ff:ff:ff:ff:ff:ff -generate
Bridge: br-int
Flow: arp,in_port=13,vlan_tci=0x0000,dl_src=fa:16:3e:77:bf:cd,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=0,arp_sha=00:00:00:00:00:00,arp_tha=00:00:00:00:00:00
Rule: table=0 cookie=0 priority=62768,arp,in_port=13,dl_src=fa:16:3e:77:bf:cd,dl_dst=ff:ff:ff:ff:ff:ff
OpenFlow actions=mod_dl_dst:fa:16:3e:1e:ea:7d,output:1
Final flow: arp,in_port=13,vlan_tci=0x0000,dl_src=fa:16:3e:77:bf:cd,dl_dst=fa:16:3e:1e:ea:7d,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=0,arp_sha=00:00:00:00:00:00,arp_tha=00:00:00:00:00:00
Megaflow: recirc_id=0,arp,in_port=13,dl_src=fa:16:3e:77:bf:cd,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=0
Datapath actions: set(eth(src=fa:16:3e:77:bf:cd,dst=fa:16:3e:1e:ea:7d)),1