ovs-ofctl:操作用户态流表
1)导出流表
ovs-ofctl [--names] dump-flows br-tun 导出br-tun所有流表 ovs-ofctl [--names] dump-flows br-tun table=22,dl_vlan=3
导出br-tun满足给定过滤条件的所有流表
配合管道和grep命令时,需要加--names才能让端口显示为名字,而不是ofport
2)删除指定的一条流表
要求给定过滤条件能唯一匹配,即把actions之前的条件都要写上
例子如下
cookie=0x92a084f345fb0865, duration=2584409.218s, table=22, n_packets=83599, n_bytes=23631586, priority=2,dl_vlan=27 actions=strip_vlan,set_tunnel:0xef,output:"vxlan-0a23b40a",output:"vxlan-0a23b411",output:"vxlan-0a23b410",output:"vxlan-0a23b401",output:"vxlan-0a23b412",output:"vxlan-0a23b413",output:"vxlan-0a23b402",output:"vxlan-0a23b414",output:"vxlan-0a23b41a",output:"vxlan-0a23b41b",output:"vxlan-0a23b403",output:"vxlan-0a23b407",output:"vxlan-0a23b405",output:"vxlan-0a23b404",output:"vxlan-0a23b409",output:"vxlan-0a23b408",output:"vxlan-0a23b40f",output:"vxlan-0a23b40e",output:"vxlan-0a23b40d",output:"vxlan-0a23b40c",output:"vxlan-0a23b40b" cookie=0x2349a60fe926cbb6, duration=1979615.995s, table=22, n_packets=0, n_bytes=0, priority=1,dl_vlan=27 actions=strip_vlan,set_tunnel:0x27e6,output:"vxlan-0a23b40f",output:"vxlan-0a23b40e",output:"vxlan-0a23b411",output:"vxlan-0a23b410",output:"vxlan-0a23b40b",output:"vxlan-0a23b40a",output:"vxlan-0a23b40d",output:"vxlan-0a23b40c",output:"vxlan-0a23b413",output:"vxlan-0a23b412",output:"vxlan-0a23b409",output:"vxlan-0a23b408",output:"vxlan-0a23b401",output:"vxlan-0a23b403",output:"vxlan-0a23b402",output:"vxlan-0a23b405",output:"vxlan-0a23b404",output:"vxlan-0a23b407",output:"vxlan-0a23b41c",output:"vxlan-0a23b41d",output:"vxlan-0a23b41a",output:"vxlan-0a23b41b",output:"vxlan-0a23b414" cookie=0xbf8b422e2031d7a, duration=1979615.992s, table=22, n_packets=0, n_bytes=0, priority=2,dl_vlan=27,dl_dst=01:00:5e:00:00:00/ff:ff:ff:00:00:00 actions=strip_vlan,set_tunnel:0xef,output:"vxlan-0a23b40a",output:"vxlan-0a23b411",output:"vxlan-0a23b410",output:"vxlan-0a23b401",output:"vxlan-0a23b412",output:"vxlan-0a23b413",output:"vxlan-0a23b402",output:"vxlan-0a23b414",output:"vxlan-0a23b41a",output:"vxlan-0a23b41b",output:"vxlan-0a23b403",output:"vxlan-0a23b407",output:"vxlan-0a23b405",output:"vxlan-0a23b404",output:"vxlan-0a23b409",output:"vxlan-0a23b408",output:"vxlan-0a23b40f",output:"vxlan-0a23b40e",output:"vxlan-0a23b40d",output:"vxlan-0a23b40c",output:"vxlan-0a23b40b"
ovs-ofctl --strict del-flows br-tun table=22,dl_vlan=27,priority=2 删掉第1条流表 ovs-ofctl --strict del-flows br-tun table=22,dl_vlan=27,priority=2,dl_dst=01:00:5e:00:00:00/ff:ff:ff:00:00:00 删掉第3条流表
3)添加一条流表
ovs-ofctl add-flow br-tun "table=22,priority=10,dl_vlan=31,dl_dst=fa:16:3e:c3:10:87,actions=strip_vlan,set_tunnel:4968,output:vxlan-0a24aeba,output:vxlan-0a24aebb" 在br-tun添加流表
4)注入数据包
ovs-ofctl packet-out br-int qvo36a8e963-fd resubmit(,0) {packet_hex} 在br-int的qvo36a8e963-fd接口注入数据包,等同于从这个接口收到数据包的处理
5)触发ovs agent全量刷新流表
ovs-ofctl del-flows br-int table=23
执行后,ovs agent只要是正常运行的,就会检测到table23缺失,自动开始全量刷新
packet_hex为16进制表示的数据包,如:fa163e11f33bfa163e2b34930800......