VPP 接管网卡,访问外网

目标

本实验,用VPP接管网卡,获取VMnet8 分配的IP地址,使VPP可连接外网。

虚拟机设置

使能虚拟化引擎。

添加一个网卡,连接到虚拟机NAT网络。

AMD

Intel

启动VPP

分配大页内存

echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

查看网卡PCI地址

进入VPP根目录,执行

build-root/build-vpp_debug-native/external/src-dpdk/usertools/dpdk-devbind.py -s

将ens33 down掉,ifconfig ens33 down

测试dpdk bind能否成功

build-root/build-vpp_debug-native/external/src-dpdk/usertools/dpdk-devbind.py --bind=vfio-pci 0000:02:01.0

绑定网卡报错

AMD CPU处理

跟iommu有关,找了好多方法都没成功,最后把VFIO 的iommu关了

echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode

 Intel CPU 处理

修改 /etc/default/grub

GRUB_CMDLINE_LINUX中加入如下配置:

iommu=pt intel_iommu=on

修改后更新

grub-mkconfig -o /boot/grub/grub.cfg

然后重启

查看 cat /proc/cmdline,已添加上

 查看启动日志,iommu 已启用

提示 VFIO group is not viable! Not all devices in IOMMU group bound to VFIO or unbound

 修改虚拟的.vmx文件,更改网卡类型为vmxnet3"

重新绑定

绑定成功后,解绑,写在配置文件中

build-root/build-vpp_debug-native/external/src-dpdk/usertools/dpdk-devbind.py -u 0000:02:01.0

VPP 配置文件

 startup.conf 

unix { 
	interactive 
	cli-listen /run/vpp/cli.sock 
	gid 0 
}
dpdk { 
	dev 0000:02:01.0{
		name eth0
	} 
}

api-trace {
  on
}

socksvr {
  default
}

cpu {
	main-core 1
	corelist-workers 2,3
}

buffers {
        buffers-per-numa 128000
}

plugins { 
	plugin oddbuf_plugin.so { enable } 
}

启动

make run

查看接口

show interface 

将eth0 设置为up,启用dhcp client 

ping 8.8.8.8 可以通

vpp 的ping命令不支持ping网址。

 将启动命令放到配置文件中

startup.conf  中 增加 startup-config ./start_cli

unix { 
	interactive 
	cli-listen /run/vpp/cli.sock 
	gid 0 
	startup-config ./start_cli
}
dpdk { 
	dev 0000:02:01.0{
		name eth0
	} 
}

api-trace {
  on
}

socksvr {
  default
}

cpu {
	main-core 1
	corelist-workers 2,3
}

buffers {
        buffers-per-numa 128000
}

plugins { 
	plugin oddbuf_plugin.so { enable } 
}

start_cli 

comment { setup interface }
set interface state eth0 up

comment { start dhcp client }
set dhcp client intfc eth0

猜你喜欢

转载自blog.csdn.net/wjmasd/article/details/130737217
今日推荐