当前位置:首页 > 正文

ovs patch端口实现原理

作者:小雪发布时间:2023-02-08浏览:458


ovs的patch端口,用于连接两个网桥,命令如下

添加端口时,会先后调用 port_construct 和 port_add,下面看一下这两个函数对于patch端口的特殊处理
a. port_construct

b. port_add
如果是patch类型端口,不会将其添加到datapath中,所以通过 ovs-appctl dpctl/show 是看不到patch端口的

br10和br12必须在同一个datapath,否则寻找peer就会失败,ofport->peer就会为空,后面数据转发时也不会从peer设备发出。

假如出端口为patch port,流程如下:

最后会将流表和action安装到datapath中,指导后续报文转发。

下面做一个小实验,拓扑图如下:

创建三个网桥br10,br11和br12,其中br10和br12为netdev类型,br11为system类型。
br10和br11通过patch端口patch1/patch2相连接,br10和br12通过patch端口patch3/patch4相连接。
br10上还添加了一个物理网卡enp129s0f0,其直连的网卡enp129s0f1配置ip地址2.2.2.2/24。

结论:
a. patch端口只存在网桥上,datapath中不会存在
b. 如果出端口为patch端口,则相当于其peer设备收到报文,在peer设备所在网桥查找openflow流表进行转发
c. 不同类型datapath的网桥不能通过patch端口相连接


声明:部分资源转载自互联网,转载目的在于传递更多知识,并不代表本网赞同其观点和对其真实性负责。如有侵权或者知识有谬误之处,麻烦通知删除,谢谢!联系方式: zzsla2022#163.com