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
OpenvSwitch命令总结相关推荐
- Open vSwitch系列实验(一):Open vSwitch使用案例扩展实验
一.实验目的 通过python脚本调用OpenvSwitch命令: 学习Mininet基于python脚本创建拓扑的实现: 进一步深度使用"ovs-vsctl"命令直接控制Open ...
- OVS-vsctl的帮助文件的中文版
本文是为了在使用OpenvSwitch命令的时候,方便查阅(本人英文不好).... Open vSwitch 命令 init 如果尚未初始化,则初始化数据 ...
- openvswitch常用命令之ovs-ofctl、ovs-appctl
1. 查看ovs的ofport端口号 # ovs-ofctl show ns-vswitch OFPT_FEATURES_REPLY (xid=0x2): dpid:0000820552ee2c4e ...
- Openvswitch原理与代码分析(3): openvswitch内核模块的加载
上一节我们讲了ovs-vswitchd,其中虚拟网桥初始化的时候,对调用内核模块来添加虚拟网卡. 我们从openvswitch内核模块的加载过程,来看这个过程. 在datapath/datapath. ...
- 玩转OpenVswitch 简介
一.OVS简介 Openvswitch是一个优秀的开源软件交换机,支持主流的交换机功能,比如二层交换.网络隔离.QoS.流量监控等,而其最大的特点就是支持openflow,openflow定义了灵活的 ...
- 玩转OpenVswitch:简介
一.OVS简介 Openvswitch是一个优秀的开源软件交换机,支持主流的交换机功能,比如二层交换.网络隔离.QoS.流量监控等,而其最大的特点就是支持openflow,openflow定义了灵活的 ...
- 从Openvswitch代码看网络包的旅程
我们知道,Openvwitch可以创建虚拟交换机,而网络包可以通过虚拟交换机进行转发,并通过流表进行处理,具体的过程如何呢? 一.内核模块Openvswitch.ko的加载 OVS是内核态和用户态配合 ...
- Docker网络通信openvswitch(来自龙果学院学习资料 + 自己实验结果)
1. 拓扑如下: 为了更方便的管理Docker网络,我们这一讲使用openvswitch网桥的方式来对容器网络进行管理,实现容器启动后能够互通.Open vSwitch是一个高质量的.多层虚拟交换机. ...
- OpenStack网络模块核心OpenvSwitch的全面解读
一.OpenStack网络 1.1 什么是SDN软件定义网络 软件定义网络(Software Defined Network)就是在虚拟化的背景下,为了满足虚拟化环境下虚拟机对网络的需求,逐步发展起来 ...
最新文章
- 吴恩达《深度学习》第四门课(2)卷积神经网络:实例探究
- ext.js组件的基本操作
- 由哥倫比亞預防醫學中心想到的
- 拦截retrofit数据请求返回的信息来判断程序错误点
- 2021-2027全球与中国MSMS探针卡市场现状及未来发展趋势
- 微信公众号 | 适合程序员的公众号排版
- BoundsChecker教程
- 一个关于数学归纳法的悖论问题
- 26款 网络会议/视频会议开源软件
- Linux TOP CPU %wa 值的理解
- 安卓java模拟器跳过付费,不用花钱买android手机,电脑端Android模拟器安装使用教程...
- 关于印发促进智慧城市健康发展的指导意见的通知
- 如何制作动态图片gif
- 一连上网就弹出广告窗,记录删除一些顽固文件
- 计算机网络的利与弊,网络的利与弊辩论会总结.doc
- 产业分析:线上线下融合会展
- reactrouter4路由钩子_React-Router4.x中文文档
- 通过按位与和按位或操作
- 计算机控制篮球,【精品课程设计】计算机控制技术弱电课程之篮球比赛计时计分器doc.doc...
- 【渝粤题库】陕西师范大学200551 英语语音