用于监控和管理 OpenFlow 交换机。
查看交换机信息:
ovs-ofctl show s1
查看交换机流表:
ovs-ofctl dump-tables s1
查看端口信息:
ovs-ofctl dump-ports s1
ovs-ofctl dump-ports s1 1
第一个查看所有端口,第二个只查看端口号为 1 的端口;
查看流表项:
ovs-ofctl dump-flows s1
ovs-ofctl dump-flows s1 table=0
第一个查看所有,第二个查看指定流表项;
添加流表项:
ovs-ofctl [--bundle] add-flow switch flow ovs-ofctl [--bundle] add-flow switch - < file ovs-ofctl [--bundle] add-flows switch file
--bundle:以原子形式执行命令;
--strict:取消对通配符的支持;
可以将流表项写入一个文件,然后从文件中读取执行;文件的每一行表示一条流表项,每行可以以关键字 add, modify, delete, modify_strict, delete_strict 开头,表示执行何种操作;
# ovs-ofctl add-flow s1 "priority=3,in_port=1,dl_vlan=0xffff,actions=mod_vlan_vid:101,normal" # cat flows.txt add priority=3,in_port=1,dl_vlan=0xffff,actions=mod_vlan_vid:101,normal # ovs-ofctl add-flows s1 flows.txt # cat flows.txt delete in_port=1,dl_vlan=0xffff # ovs-ofctl add-flows s1 flows.txt
修改流表项:
ovs-ofctl [--bundle] [--strict] mod-flows switch flow ovs-ofctl [--bundle] [--strict] mod-flows switch - < file
# cat flows.txt priority=3,in_port=1,dl_vlan=0xffff,actions=mod_vlan_vid:102,normal # ovs-ofctl mod-flows s1 - < flows.txt
删除流表项:
ovs-ofctl [--bundle] del-flows switch ovs-ofctl [--bundle] [--strict] del-flows switch [flow] ovs-ofctl [--bundle] [--strict] del-flows switch - < file
ovs-ofctl del-flows s1 "in_port=1,dl_vlan=0xffff"
替换流表项:
ovs-ofctl [--bundle] [--readd] replace-flows switch file
使用 file 文件中的流表项替换现有的流表项;
比较流表项:
ovs-ofclt diff-flows source1 source2
source1 和 source2 可以是交换机,也可以是文件;
ovs-ofctl diff-flows s1 flows.txt
查看组表项:
ovs-ofctl dump-groups s1 -O OpenFlow13
查看组表项的统计信息:
ovs-ofctl dump-group-stats s1 -O OpenFlow13 ovs-ofctl dump-group-stats s1 group_id=1 -O OpenFlow13
第一个查看所有组表,第二个查看指定的组表;
添加组表项:
ovs-ofctl [--bundle] add-group switch group ovs-ofctl [--bundle] add-group switch - < file ovs-ofctl [--bundle] add-groups switch file
可以将组表项写入一个文件,然后从文件中读取执行;文件的每一行表示一条组表项,每行可以以关键字 add, modify, add_or_mod, delete, insert_bucket, remove_bucket 开头,表示执行何种操作;
# 类型为all ovs-ofctl -O OpenFlow13 add-group s1 group_id=1,type=all,bucket=output:1,bucket=output:2
# 类型为select ovs-ofctl -O OpenFlow13 add-group s1 group_id=2,type=select,bucket=output:1,bucket=output:2
ovs-ofctl -O OpenFlow15 add-group s1 group_id=3,type=select,selection_method=hash,fields=ip_src,bucket=output:2,bucket=output:3
修改组表项:
ovs-ofctl [--bundle] [--may-create] mod-group switch group ovs-ofctl [--bundle] [--may-create] mod-group switch - < file
ovs-ofctl mod-group s1 group_id=1,type=all,bucket=output:1,bucket=output:2,bucket=output:3 -O OpenFlow13
删除组表项:
ovs-ofctl [--bundle] del-groups switch ovs-ofctl [--bundle] del-groups switch [group] ovs-ofctl [--bundle] del-groups switch - < file
ovs-ofctl del-groups s1 group_id=1 -O OpenFlow13
删除桶:
ovs-ofctl [--bundle] remove-buckets switch group ovs-ofctl [--bundle] remove-buckets switch - < file
ovs-ofctl remove-buckets s1 group_id=3,command_bucket_id=1
删除 id 为 1 的桶;
要正常使用的话,需要注意的是datapath类型要指定为 netdev.
ovs-vsctl set bridge s1 datapath_type=netdev
查看计量表:
ovs-ofctl dump-meters s1 -O OpenFlow13
查看计量表统计信息:
ovs-ofctl meter-stats s1 -O OpenFlow13
添加计量表项:
ovs-ofctl add-meter s1 meter=1,kbps,bands=type=drop,rate=5000 -O OpenFlow13
修改计量表项:
ovs-ofctl mod-meter s1 meter=1,kbps,band=type=drop,rate=2000 -O OpenFlow13
删除计量表项:
ovs-ofctl del-meters s1 meter=1 -O OpenFlow13
https://www.openvswitch.org/support/dist-docs/ovs-ofctl.8.txt
http://www.openvswitch.org/support/dist-docs/ovs-fields.7.txt
https://blog.csdn.net/rocson001/article/details/73163041
https://www.cnblogs.com/wpqwpq/p/7832650.html
原文:https://www.cnblogs.com/gzming/p/14300101.html