OpenvSwitch命令总结

主要还是参考的这篇文章https://blog.csdn.net/rocson001/article/details/73163041

但是有些流表操作是网上查了没有给出,比如更新流表,只能-h查看ovs命令行帮助界面。我在此做一个总结

流规则管理

基本字段包括: 已经生效的时间: duration_sec 
所属表项:table_id

优先级:priority

处理的数据包数:n_packets

hard_timeout: 硬定时器,从插入表格中开始算起

idle_timeout:软定时器,表示从最后一次匹配成功后,超过此时间后,流规则将被自动删除(设为0的时候表示该流规则将被永不过期 )

条件字段包括:

输入端口号:in_port

源/目的mac地址:dl_src/dl_dst

源/目的ip地址:nw_src/nw_dst

数据包类型:dl_type

网络层协议类型:nw_proto

metadata = 

reg1 = 

常见操作如下:

  • output:port: 输出数据包到指定的端口。port 是指端口的 OpenFlow 端口编号
  • mod_vlan_vid: 修改数据包中的 VLAN tag
  • strip_vlan: 移除数据包中的 VLAN tag
  • mod_dl_src/ mod_dl_dest: 修改源或者目标的 MAC 地址信息
  • mod_nw_src/mod_nw_dst: 修改源或者目标的 IPv4 地址信息
  • resubmit:port: 替换流表的 in_port 字段,并重新进行匹配
  • load:value−>dst[start..end]: 写数据到指定的字段

需要注意的是,底层的字段未给出确定值时,上层的字段不允许给定确定值。底层为确定值时,上层可以使用通配符

动作字段包括正常转发normal,定向到某交换机端口output:port,丢弃drop,更改源/目的mac地址mod_dl_src/mod_dl_dst,

一条流规则可以有多个动作,按照先后顺序依次完成

ovs条件匹配

ovs流表条件匹配是进行删除,修改的基础。需要根据匹配条件定位到相应的流表规则后才能进行后续的修改

记住,priority不能作为一个匹配选项!!!

一般来说,匹配条件有下面这些

匹配vlan tag,范围为0-4095

ovs-ofctl add-flow br0 priority=25,in_port=1,dl_vlan=233,actions=mod_vlan_vid:100,output:2

匹配源/目的MAC

ovs-ofctl add-flow br0 in_port=1,dl_src=00:00:00:00:00:01/00:00:00:00:00:01,actions=mod_vlan_vid:100,output:2
ovs-ofctl add-flow br0 in_port=1,dl_dst=00:00:00:00:00:01/00:00:00:00:00:01,actions=mod_vlan_vid:100,output:2

匹配以太网类型,范围为0-65535

ovs-ofctl add-flow br0 in_port=1,dl_type=0x0806,actions=mod_vlan_vid:100,output:2

匹配源/目的IP 
条件:指定dl_type=0x0800,或者ip/tcp

ovs-ofctl add-flow br0 ip,in_port=1,nw_src=10.10.0.0/16,actions=mod_vlan_vid:100,output:2
ovs-ofctl add-flow br0 ip,in_port=1,nw_dst=10.20.0.0/16,actions=mod_vlan_vid:100,output:2

匹配协议号,范围为0-255 

ovs-ofctl add-flow br0 ip,in_port=1,nw_proto=1,actions=mod_vlan_vid:100,output:2

匹配tcp/udp,源/目的端口,范围为0-65535

ovs-ofctl add-flow br0 tcp,tcp_src=179/0xfff0,actions=mod_vlan_vid:100,output:2

匹配tcp flags 
tcp flags=fin,syn,rst,psh,ack,urg,ece,cwr,ns

ovs-ofctl add-flow br0 tcp,tcp_flags=ack,actions=mod_vlan_vid:100,output:2

匹配icmp code,范围为0-255 

ovs-ofctl add-flow br0 icmp,icmp_code=2,actions=mod_vlan_vid:100,output:2

匹配vlan TCI 
TCI低12位为vlan id,高3位为priority,例如tci=0xf123则vlan_id为0x123和vlan_pcp=7

ovs-ofctl add-flow br0 in_port=1,vlan_tci=0xf123,actions=mod_vlan_vid:100,output:2

匹配tunnel id,源/目的IP

ovs-ofctl add-flow br0 in_port=1,tun_id=0x7/0xf,actions=mod_vlan_vid:100,output:2
ovs-ofctl add-flow br0 in_port=1,tun_src=192.168.1.0/255.255.255.0,actions=mod_vlan_vid:100,output:2
ovs-ofctl add-flow br0 in_port=1,tun_dst=192.168.1.0/255.255.255.0,actions=mod_vlan_vid:100,output:2

ovs修改流表

ovs修改流表的过程是,根据匹配到的条件,修改actions字段的内容

ovs-ofctl add-flow br0 priority=25,in_port=1,dl_vlan=233,actions=mod_vlan_vid:100,output:2

将上面这条流表的actions修改为"drop"的指令为

ovs-ofctl mod-flows  br0 "in_port=1,dl_vlan=233,actions=drop"

记住,匹配条件不要带priority!!

给网口设置VLAN_ID

ovs-vsctl set port port1 tag=2

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值