记录vpp 二层转发bridge-domain使用过程和遇到的问题

本文介绍了如何通过配置VPP的二层转发实现两台PC之间的通信。首先激活两个网络接口,接着创建并配置bridge-domain,使两个接口加入同一桥接域。针对不同配置环境下遇到的问题,如host-interface和dpdk驱动网卡的使用,提供了详细的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录vpp中二层转发,bridge-domian的使用
先上一张拓扑图,如图,服务器有两个网口,分别与两个pc机用网线直连,连个pc机的ip分别为192.168.10.1和192.168.10.2。目标是通过配置vpp的二层转发达到pc1可以ping通pc2的目的。
在这里插入图片描述
首先配置vpp中两个interface启动:

set int state TenGigabitEthernet19/0/2 up
vppctl set int state TenGigabitEthernet19/0/3 up

然后创建一个bridge-domain,将两个interface搭载桥上:

vppctl create bridge-domain 10
vppctl set interface l2 bridge TenGigabitEthernet19/0/2 10
vppctl set interface l2 bridge TenGigabitEthernet19/0/3 10

注意bridge的id,这里面我给的id为10,尽量不要用id 为0的bridge,官网有介绍。
然后可以用pc1和pc2进行ping操作,现象为可以ping通。
以上是正常官网的流程操作。借鉴
https://wenku.baidu.com/view/0650452e01d8ce2f0066f5335a8102d277a26154.html
https://blog.youkuaiyun.com/wjian1997/article/details/84567494

--------------------------------------不正经的分割线-----------------------------------------------
以下是我在这个过程中遇到的一些现象和解决办法。
1.host-interface
在vpp配置文件中,dpdk插件这个选项我设置为disable,这样进入vpp中是没有interface的
在这里插入图片描述
在这里插入图片描述
这时候我按照官方的创建host-interface的方式创建了两个interface,然后将两个host-interface搭在一个bridge上,结果不能完成两个pc机连通,原因是host-interface转包方式是af_packet。
2.dpdk驱动的网卡
在vpp配置文件中,dpdk插件这个选项我设置为enable,我这边显示出来四个interface
在这里插入图片描述
如果配置文件中没有配置dpdk_plugin项,默认是enable。
在这里插入图片描述
这时候查看自己的系统网卡信息在这里插入图片描述
发现两个好像对应不上,而且当我把vpp中四个interface状态启动之后是没有流量的,然后检查机器发现机器除了两个网口之外还有四个光口。
然后找到了dpdk配置的路径进行网口绑定查看发现了这个现象
在这里插入图片描述
其中dpdk绑定的网卡驱动是上面四个,下面有两个是内核绑定的。然后将两个内核绑定的驱动转移到dpdk绑定的驱动上。

./dpdk-devbind.py -b vfio-pci 19:00.2
./dpdk-devbind.py -b vfio-pci 19:00.3

然后重启vpp之后,vpp中出现6个interface,把其中两个对应网卡的启动起来,搭在一个bridge上,这样pc1和pc2就能通信了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值