OVS常用命令整理
Open vSwitch中有多个命令,分别有不同的作用,大致如下:
ovs-vsctl
用于控制ovs dbovs-ofctl
用于管理OpenFlow switch 的 flowovs-dpctl
用于管理ovs的datapathovs-appctl
用于查询和管理ovs daemon
1 控制管理类
1)查看网桥和端口:
ovs-vsctl show
2)创建一个网桥:
ovs-vsctl add-br br0
3)添加/删除一个端口:
ovs-vsctl add-port br0 eth1、ovs-vsctl del-port br0 eth1
4)设置/清除网桥的openflow协议版本:
ovs-vsctl set bridge br0 protocols=OpenFlow13、ovs-vsctl clear bridge br0 protocols
5)查看某网桥当前流表:
ovs-ofctl dump-flows br0、ovs-ofctl -O OpenFlow13 dump-flows br0、ovs-appctl bridge/dump-flows br0
6)设置/删除控制器:
ovs-vsctl set-controller br0 tcp:127.0.0.1:6653、ovs-vsctl del-controller br0
7)查看接口统计:
ovs-ofctl dump-ports br0
2 流表项操作
1)添加普通流表项:
ovs-ofctl add-flow br0 in_port=1, actions=outport:2
2)按匹配项来删除流表项:
ovs-ofctl del-flows br0 "in_port=1"
3)删除全部流表项:
ovs-ofctl del-flows br0
3 指令动作
1)动作为从指定接口转发出去:
ovs-ofctl add-flow br0 in_port=1,actions=output:2
2)动作为指定group(group id为已创建的group table):
ovs-ofctl add-flow br0 in_port=1,actions=group:1
3)动作为normal(转为L2/L3处理流程):
ovs-ofctl add-flow br0 in_port=1,actions=normal
4)动作为flood(从所有物理接口转发出去,除了入接口和已关闭flooding的接口):
ovs-ofctl add-flow br0 in_port=1,actions=flood
5)动作为all(从所有物理接口转发出去,除了入接口):
ovs-ofctl add-flow br0 in_port=1,actions=all
6)动作为local(一般是转发给本地网桥):
ovs-ofctl add-flow br0 in_port=1,actions=local
7)动作为in_port(从入接口转发回去):
ovs-ofctl add-flow br0 in_port=1,actions=in_port
8)动作为controller(以packet-in消息上送给控制器):
ovs-ofctl add-flow br0 in_port=1,actions=controller
9)动作为drop(丢弃数据包操作):
ovs-ofctl add-flow br0 in_port=1,actions=drop
4 操作meter表
1)查看当前设备对meter的支持:
ovs-ofctl -O OpenFlow13 meter-features br0
2)查看meter表:
ovs-ofctl -O OpenFlow13 dump-meters br0
3)查看meter统计:
ovs-ofctl -O OpenFlow13 meter-stats br0
4)创建meter表
# 限速类型以kbps(kilobits per second)计算,超过20kb/s则丢弃
ovs-ofctl -O OpenFlow13 add-meter br0 meter=1,kbps,band=type=drop,rate=20
# 同上,增加burst size参数
ovs-ofctl -O OpenFlow13 add-meter br0 meter=2,kbps,burst,band=type=drop,rate=20,burst_size=256
# 同上,增加stats参数,对meter进行计数统计
ovs-ofctl -O OpenFlow13 add-meter br0 meter=3,kbps,burst,stats,band=type=drop,rate=20,burst_size=256
# 限速类型以pktps(packets per second)计算,超过1000pkt/s则丢弃
ovs-ofctl -O OpenFlow13 add-meter br0 meter=4,pktps,band=type=drop,rate=1000
5)删除meter表
# 删除全部meter表
ovs-ofctl -O OpenFlow13 del-meters br0
# 删除meter id=1
ovs-ofctl -O OpenFlow13 del-meter br0 meter=1
6)创建流表:
ovs-ofctl -O OpenFlow13 add-flow br0 in_port=1,actions=meter:1,output:2
5 操作group表
1)查看当前设备对group的支持:ovs-ofctl -O OpenFlow13 dump-group-features br0
2)查看group表:ovs-ofctl -O OpenFlow13 dump-groups br0
3)创建group表
# 类型为all
ovs-ofctl -O OpenFlow13 add-group br0 group_id=1,type=all,bucket=output:1,bucket=output:2,bucket=output:3
# 类型为select
ovs-ofctl -O OpenFlow13 add-group br0 group_id=2,type=select,bucket=output:1,bucket=output:2,bucket=output:3
# 类型为select,指定hash方法(5元组,OpenFlow1.5+)
ovs-ofctl -O OpenFlow15 add-group br0 group_id=3,type=select,selection_method=hash,fields=ip_src,bucket=output:2,bucket=output:3
4)删除group表:
ovs-ofctl -O OpenFlow13 del-groups br0 group_id=2
5)创建流表:
ovs-ofctl -O OpenFlow13 add-flow br0 in_port=1,actions=group:2
本文来自博客园,作者:Jcpeng_std,转载请注明原文链接:https://www.cnblogs.com/JCpeng/p/15153902.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~