网络技术-OVS的ovs-ofctl add-flow 命令新增流表
在OVS的流表类操作命令,ovs-ofctl add-flow 命令用的比较多,在此做个命令介绍:
ovs-ofctl 是 Open vSwitch (OVS) 提供的命令行工具,用于与 OpenFlow 协议交互,从而管理和配置 Open vSwitch 交换机中的流表。要添加流表项,可以使用 ovs-ofctl add-flow 命令。
以下是 ovs-ofctl add-flow 命令的一般语法:
ovs-ofctl add-flow [bridge] [priority] [match] [actions]
[bridge]:Open vSwitch 交换机的名称(例如 br0)。
[priority]:流表项的优先级,数值越大,优先级越高。默认值是 32768。
[match]:用于匹配数据包的条件,可以是多个字段的组合,例如 in_port=1。
[actions]:当匹配成功时执行的动作,例如 output:2 将数据包转发到端口 2。
示例:
将来自端口 1 的数据包转发到端口 2
#ovs-ofctl add-flow br0 "priority=1,in_port=1,actions=output:2"
丢弃来自端口 1 的数据包
#ovs-ofctl add-flow br0 "priority=1,in_port=1,actions=drop"
将源 IP 为 192.168.1.10 的数据包转发到端口 3
#ovs-ofctl add-flow br0 "priority=1,ip,nw_src=192.168.1.10,actions=output:3"
将目的 IP 为 192.168.1.20 的数据包转发到端口 4
#ovs-ofctl add-flow br0 "priority=1,ip,nw_dst=192.168.1.20,actions=output:4"
修改数据包的 VLAN ID 并转发
#ovs-ofctl add-flow br0 "priority=1,in_port=1,actions=mod_vlan_vid:10,output:2"
注意事项
优先级:如果有多个流表项匹配一个数据包,优先级最高的流表项将生效。
匹配条件:可以多种字段的组合,如端口号、IP 地址、MAC 地址、VLAN ID 等。
动作:动作可以是转发到特定端口、丢弃数据包、修改字段等。
使用 ovs-ofctl add-flow 命令时,请确保对 OpenFlow 协议和 Open vSwitch 有一定的了解,以便正确配置流表项。