ovs 流表命令
1、查看物理机的网桥和端口:
ovs-appctl dpif/show
查找server虚拟机的ply网桥
ovs-appctl dpif/show | grep 3dc0dfc1-ad -A 2
数据通道命令(datapath) 这些命令管理逻辑数据通道。类似ovs-dpctl的命令。
- dpif/dump-dps 在多行中显示所有配置的datapath名称
- dpif/show[dp….] 打印dp的汇总信息,包括dp的状态还有连接上的端口列表。端口的信息包括openFlow的端口号,datapath的端口号,以及类型(本地端口被标识为openflow port 65534) 如果指定了一个或多个datapath,将只显示指定的这些dp的信息。否则,则显示所有dp的信息。
- dpif/dump-flows dp 想控制端打印dp中流表的所有条目。 这个命令主要来与debugOpen Vswitch.它所打印的流表不是openFlow的流条目。它打印的是由dp模块维护的简单的流。如果你想查看OpenFlow条目,请使用ovs-ofctl dump-flows。dpif/del-fow dp 删除指定dp上所有流表。同上所述,这些不是OpenFlow流表。
2、查看简单的精确流表(是动态的)
ovs-appctl dpif/dump-flows ply3dc0dfc1-ad
参数注释
3、查看datapath
DPDK目前有两个datapath,内核态的只有一个。DPDK查看需要制定datapath进行查看。 #ovs-appctl dpctl/dump-dps
这个在第一步ovs-appctl dpif/show 也有显示
4、追踪对应datapath上的流表
根据第2步查出的规则,选择到packets前面的内容
ovs-appctl ofproto/trace ovs-netdev “流表内容(packets前面)”
ovs-netdev是datapath,由第三步找到。
这个流在bridge(“br-int”)上面没有找到对应的mac,于是泛洪,在brcps上被drop,在br-tun上…
5. 查看网桥上面的mac和port的转发规则
注意到第4步的mac地址是 dl_src=fa:16:3e:4b:2a:c3,dl_dst=fa:16:3e:7c:05:12 查询网桥上面的mac记录:(目的mac2a:c3走41口,目的mac05:12走42口)
查看端口的名称
虚拟机内流量走向(网桥和端口位置)
其他
由于公司网络限制,图片传不出来。
ovs-ofctl dump-flows ply4fdf1e98-e4 table=0 查看网桥的某个table里具体的规则
参考:
- Neutron L2数据面,同节点流量wiki block
- ovs-appctl 用户手册中文翻译 https://blog.csdn.net/bestjie01/article/details/50833560
- 【DPDK】追踪查看精确流表 block