VPP学习——路由部署(二)

VPP学习——路由部署(二)

前言:这里采用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主要用来通信。

  1. VPP挂载网卡
  2. VPP设置IP
  3. 主机IP配置
  4. 两个主机设置端到端的路由
  5. ping验证结果

VPP安装

VPP学习——安装(一)

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):

Host主机配置

前言:如果按照我之前设置的,则主机配置添加一下路由即可,因为不用设置就在一个网段下了。(直接到第二步)

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

借鉴来源:

  1. https://www.yht7.com/news/110036
  2. https://zhuanlan.zhihu.com/p/394130758
  3. https://blog.csdn.net/jkwanga/article/details/100665304
    如有不能解决的问题,可以去这几个链接中查看。
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值