OVS配置CookBook

Hello World

用于控制 ovs-db --- ovs-vsctl



用于管理OpenFlow switch 的flow --- ovs-ofctl

在 Open vSwitch (OVS) 中,传统的流表匹配是基于 12 元组(12-tuple) 的字段组合,这些字段通常用于定义数据包的匹配规则(match fields),并基于这些匹配执行相应的动作(actions)。以下是 OVS 中常用的 12 元组 字段:

# 12 元组(12-tuple)匹配字段
1. 入端口(in_port): 数据包进入的交换机端口(物理端口或虚拟端口)。
2. 源 MAC 地址(dl_src) : 数据包的源以太网地址(Layer 2)。
3. 目的 MAC 地址(dl_dst): 数据包的目的以太网地址(Layer 2)。
4. 以太网类型(dl_type): 以太网帧的类型(如 0x0800 表示 IPv4,0x86DD 表示 IPv6,0x0806 表示 ARP)。
5. VLAN ID(dl_vlan)数据包的 VLAN 标签(如果存在)。
6. VLAN 优先级(dl_vlan_pcp):VLAN 优先级(802.1p 优先级,3 bits)。
7. 源 IP 地址(nw_src):数据包的源 IP 地址(IPv4 或 IPv6,取决于 dl_type)。
8. 目的 IP 地址(nw_dst): 数据包的目的 IP 地址(IPv4 或 IPv6)。
9. IP 协议类型(nw_proto): IP 协议号(如 6 表示 TCP,17 表示 UDP,1 表示 ICMP)。
10. IP ToS/DSCP(nw_tos): IP 头部中的服务类型(Type of Service)或 DSCP(Differentiated Services Code Point)字段。
11. 源传输层端口(tp_src): TCP/UDP/SCTP 源端口号(如果 nw_proto 是传输层协议)。
12. 目的传输层端口(tp_dst): TCP/UDP/SCTP 目的端口号(如果 nw_proto 是传输层协议)。

# 补充说明
这些 12 元组字段可以组合使用,形成精细的匹配规则(如匹配特定 TCP 流)。
在 OpenFlow(OVS 使用的协议)中,这些字段通常用于 OFPMatch 结构,定义流表项的匹配条件。
现代 OVS 还支持更多扩展匹配字段(如 MPLS 标签、隧道 ID、Conntrack 状态等),但传统上最核心的是这 12 元组。

# 示例 OVS 流表规则
ovs-ofctl add-flow br0 \
"in_port=1,dl_src=00:11:22:33:44:55,dl_dst=66:77:88:99:aa:bb,dl_type=0x0800,\
nw_src=192.168.1.1,nw_dst=10.0.0.1,nw_proto=6,tp_src=1234,tp_dst=80,actions=output:2"
这条规则匹配了一个 TCP 数据包(从 192.168.1.1:1234 到 10.0.0.1:80),并转发到端口 2。


# 配置流表
ovs-ofctl del-flows br-int
ovs-ofctl add-flow br-int "table=0,in_port=rep-eth0,actions=output:rep-pf0vf9"
ovs-ofctl add-flow br-int "table=0,in_port=rep-pf0vf9,actions=output:rep-eth0"
ovs-ofctl add-flow br-int "table=0,in_port=rep-eth1,actions=output:rep-pf0vf10"
ovs-ofctl add-flow br-int "table=0,in_port=rep-pf0vf10,actions=output:rep-eth1"
ovs-ofctl dump-flows br-int

# 添加 normal 流表
ovs-ofctl del-flows br-int
ovs-ofctl add-flow br-int "table=0,actions=NORMAL"

# 查看端口的全局流量统计,包括发送、接收、丢包数。
ovs-ofctl dump-ports br-int

用于管理ovs的datapath --- ovs-dpctl



用于查询和管理ovs daemon --- ovs-appctl

# 查看流表卸载 
ovs-appctl dpctl/dump-flows -m
https://www.cnblogs.com/JCpeng/p/15153902.html

用于在OVS中抓包 --- ovs-tcpdump

# ovs 抓包
ovs-tcpdump -i <name> -c num 

其他

# OVS 默认日志文件 
vi /var/log/nebulamatrix/openvswitch/ovs-vswitchd.log


参考网址

posted @ 2025-08-12 06:55  梭梭666  阅读(22)  评论(0)    收藏  举报
返回顶部