滴滴云 DC2 搭建 VPP 环境
Cisco 开源了自己的数据包处理框架,并将其纳入 Linux 基金会的 FD.io,开源的内容就是 VPP。
这个 VPP 实现了 VSwitch、VRouter 等功能,对于当前的云网络有很大的用处,很多公司也开始使用 VPP 来搭建自己的数据转发面,本文将基于滴滴云的 DC2 云服务器来 搭建 VPP 基本环境。
创建 DC2
相关购买和创建流程可以查看滴滴云官网帮助文档,这里就不再介绍,直接入主题。
获取 VPP
本文以 VPP 18.04 版本为例。
获取 VPP 源码:
git clone https://gerrit.fd.io/r/vpp
获取指定版本源码:
git checkout -b stable/1804 origin/stable/1804
编译 VPP
-
进入 VPP 目录
安装依赖,需要该机器可以上外网。执行:make install-dep
-
编译 VPP
执行:make distclean
-
编译错误1
报错:cmake3 和 ninja 找不到
处理:安装相关组件
执行:yum -y install epel-release
执行:yum install cmake3
执行:yum install ninja-build
执行:make bootstrap
执行:./build-root/bootstrap.sh
执行:make build
执行:make plugins
安装 VPP
-
配置大页内存
执行以下命令,分配 64 页 2M 的大叶页:echo 64 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages mkdir /mnt/huge mount -t hugetlbfs nodev /mnt/huge
查看配置结果:
cat /proc/meminfo
会显示对应的大页分配了64页。 -
安装 igb_uio 驱动
执行以下命令:modprobe uio insmod igb_uio.ko
-
修改配置文件
配置文件:/etc/vpp/startup.conf
修改对应的 CPU、UNIX、DPDK 的 Section
详细参看:https://wiki.fd.io/view/VPP/Using_VPP_In_A_Multi-thread_Model -
down 掉网卡
因为只有一个网卡,所以需要登录到 DC2 的控制后台来进行操作。DPDK 在 bond 网卡前,必须将该网卡 down 了。
运行 VPP
- 运行 VPP
执行:vpp -c /etc/vpp/startup.conf
显示:(执行成功)
打印出 FD.io VPP 的图片