记录vpp 二层转发bridge-domain使用过程和遇到的问题
记录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 upvppct
记录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.csdn.net/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就能通信了。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)