前言:这里采用3台vm虚拟机进行配置,一台安装VPP,另外两台作为HOST使用。其中VPP主机3个网卡,一个为桥接用于自主通信,另外两个为NAT模式,并设置不同的网段;其他两台host主机均有2个网卡,一个用于自主通信,另外一个设置为NAT模式(这里NAT和上面VPP主机NAT分别一致)。多的网卡去虚拟机网络适配器那里多加几个。
vmware——edit——virtual network editor
添加一个vmnet8:subnet IP:10.10.4.0 ;gateway:10.10.4.2
添加一个vmnet9:subnet IP:10.10.5.0 ;gateway:10.10.5.2
VPP主机一个桥接,再添加自定义的这两个。
host1一个桥接,一个自定义vmnet8;host2一个桥接,一个自定义vmnet9;
在VPP上挂载两张网卡,其他两个主机各设置一个通信网卡。这里四个IP主要用来通信。
VPP学习——安装(一)
1.加载驱动模块
modprobe vfio-pci
(PS:其他文章提到 uio_pci_generic 用不了,采用igb_uio,我这里用 vfio-pci 可行)
2.查看网卡信息
cd dpdk
sudo ./usertools/dpdk-devbind.py --status
这里会显示,有三张网卡实在kernel下,并且都是active激活的。采用 ifconfig <网卡名> down 来取消绑定两张网卡。
3.绑定网卡
sudo ./usertools/dpdk-devbind.py --bind=vfio-pci ens36
sudo ./usertools/dpdk-devbind.py --bind=vfio-pci ens37
#或者
sudo ./usertools/dpdk-devbind.py --bind=vfio-pci 0000:02:04.0
sudo ./usertools/dpdk-devbind.py --bind=vfio-pci 0000:02:05.0
4.配置大页Huge Pages
sudo mkdir -p /mnt/huge
sudo mount -t hugetlbfs nodev /mnt/huge
echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
5.配置VPP
sudo vim /etc/vpp/startup.conf
#将下面这段复制进去
dpdk{
dev 0000:02:04.0 {
name ens36
}
dev 0000:02:05.0 {
name ens37
}
}
6.重启vpp服务
sudo systemctl restart vpp
sudo vppctl
7.查看VPP状态
show int #interface,接口状态信息,可以看到两张网卡
8.启动网卡并分配ip
# 启动网卡
set interface state ens36 up
set interface state ens37 up
# 分配IP
set interface ip address ens36 10.10.4.1/24
set interface ip address ens37 10.10.5.1/24
# 查看状态
show int
show int address
# 显示
ens36 (up):
L3 10.10.4.1/24
ens37 (up):
L3 10.10.5.1/24
local0 (dn):
前言:如果按照我之前设置的,则主机配置添加一下路由即可,因为不用设置就在一个网段下了。(直接到第二步)
1.Host1和Host2 IP配置
sudo vim etc/netplan/01-network-manager-all.yaml
# host1
# 添加没有的内容
network:
ethernets:
ens36:
addresses: ["10.10.4.128/24"]
dhcp4: no
dhcp6: no
renderer: networkd
version: 2
# host1
# 添加没有的内容
network:
ethernets:
ens36:
addresses: ["10.10.5.129/24"]
dhcp4: no
dhcp6: no
renderer: networkd
version: 2
2.host分别配置端到端的路由
# host1
ip route add 10.10.5.0/24 via 10.10.4.1
root@ubuntu:~# ip route
default via 172.22.108.254 dev ens33 proto dhcp metric 100
default via 10.10.4.2 dev ens36 proto dhcp metric 101
10.10.4.0/24 dev ens36 proto kernel scope link src 10.10.4.128 metric 101
10.10.5.0/24 via 10.10.4.1 dev ens36
169.254.0.0/16 dev ens36 scope link metric 1000
172.22.108.0/24 dev ens33 proto kernel scope link src 172.22.108.220 metric 100
# host2
ip route add 10.10.4.0/24 via 10.10.5.1
root@ubuntu:~# ip route
default via 172.22.108.254 dev ens33 proto dhcp metric 100
default via 10.10.5.2 dev ens36 proto dhcp metric 101
10.10.4.0/24 via 10.10.5.1 dev ens36
10.10.5.0/24 dev ens36 proto kernel scope link src 10.10.5.129 metric 101
169.254.0.0/16 dev ens36 scope link metric 1000
172.22.108.0/24 dev ens33 proto kernel scope link src 172.22.108.185 metric 100
3.ping测试
# host1 ping host2
root@ubuntu:~# ping 10.10.5.129
PING 10.10.5.129 (10.10.5.129) 56(84) bytes of data.
64 bytes from 10.10.5.129: icmp_seq=1 ttl=63 time=0.871 ms
64 bytes from 10.10.5.129: icmp_seq=2 ttl=63 time=0.285 ms
^C
--- 10.10.5.129 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.285/0.578/0.871/0.293 ms
# host2 ping host1
root@ubuntu:~# ping 10.10.4.128
PING 10.10.4.128 (10.10.4.128) 56(84) bytes of data.
64 bytes from 10.10.4.128: icmp_seq=1 ttl=63 time=0.372 ms
64 bytes from 10.10.4.128: icmp_seq=2 ttl=63 time=0.347 ms
^C
--- 10.10.4.128 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.347/0.359/0.372/0.022 ms
1.安装iperf3:apt-get install iperf3
2.host1启动服务器server
root@ubuntu:~# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
3.host2启动client
root@ubuntu:~# iperf3 -u -c 10.10.4.128 -l 64 -b 0M -t 300
Connecting to host 10.10.4.128, port 5201
[ 4] local 10.10.5.129 port 53225 connected to 10.10.4.128 port 5201
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 9.27 MBytes 77.6 Mbits/sec 151880
[ 4] 1.00-2.00 sec 15.8 MBytes 133 Mbits/sec 259300
[ 4] 2.00-3.00 sec 16.0 MBytes 134 Mbits/sec 261750
[ 4] 3.00-4.00 sec 15.7 MBytes 132 Mbits/sec 257070
[ 4] 4.00-5.00 sec 15.9 MBytes 133 Mbits/sec 260030
[ 4] 5.00-6.00 sec 16.3 MBytes 137 Mbits/sec 266760
[ 4] 6.00-7.00 sec 16.5 MBytes 138 Mbits/sec 269830
[ 4] 7.00-8.00 sec 16.4 MBytes 138 Mbits/sec 269460
[ 4] 8.00-9.00 sec 16.3 MBytes 136 Mbits/sec 266790
借鉴来源: