1.0号流表
ovs-ofctl -O openflow13 dump-flows br-int table=0
报文出去先去找0号流表,0号流表主要是把ip、ipv6、arp流量转到10号流表上,还有默认规则始终把流量转到10号表
2.10号流表
ovs-ofctl -O openflow13 dump-flows br-int table=10
报文到了10号流表,主要的工作是对udp端口号是67号及v6报文的547号端口的的报文进行上送到控制器65535端口,其他报文走默认规则。10号流表的主要作用是新创建的VM去控制器拿VM的IP。
3.20号流表
ovs-ofctl -O openflow13 dump-flows br-int table=20
ovs-ofctl -O openflow13 dump-flows br-int table=20 | grep 0x165
主要的动作就是把vm001入端口号357转换为16进制的165赋值给REG5,把vm001的subnet参数1318转换为16进制的526赋值给REG6,相当于打了两个标签;
4.30号流表
ovs-ofctl -O openflow13 dump-flows br-int table=30 | grep 192.168.1.1
30号流表主要作用就是arp代答,整个过程就是把报文变成一个arp reply报文
vm001去请求网关192.168.1.1的mac地址,30号流表就会进行arp代答
如果是网关过来的arp请求,in_port=1是vxlan1,隧道id是0x27c也就是loop的环回地址,代表这个请求是网关过来的,就直接转到output到虚拟机的port口,让vm自己回复不代答!)0x27c=636
5.40号流表
ovs-ofctl -O openflow13 dump-flows br-int table=40
在出方向上,对IP报文设置ct_state状态,并转到71
6.71号流表
ovs-ofctl -O openflow13 dump-flows br-int table=71,reg5=357
带着reg5=357标签的流量直接转发到73号流表
7.73号流表
73号流表主要是看mac和reg6,其中reg6是源的reg6,mac是目的mac,由于跨网段转发要看网关的mac,vm001的192.168.1.1的网关是落在租户网关的loop地址的上,所以要查租户网关的loop的mac地址
8.81号流表
ovs-ofctl -O openflow13 dump-flows br-int table=81 | grep 192.168.1.179
9.83号流表
ovs-ofctl -O openflow13 dump-flows br-int table=83 | grep reg5=0x120
无匹配,查找默认规则转到84