VPP 单台开多 保姆级教程 连接两个 FD.io VPP 实例

我这里使用的版本是22.10.0

VPP官网本教程连接

照着VPP官网一步一步操作最后失败了,VPP官网可能默认一些内容你已经掌握了,但实际不然~

MEMIF是一种非常高性能的直接存储器接口类型,可以 在 FD.io VPP 实例之间使用。它使用文件套接字作为控制通道 以设置共享内存。(官网)

上面那句话总结一下就是:单台多开VPP,用memif (memory interface内存接口)来实现

围绕这个拓扑结构实现配置:

环境:

OS:ubuntu server 20.04

VPP:22.10.0

一、复制、修改配置文件

        复制两份VPP的配置文件,安装版配置文件默认位置/etc/vpp/statrup.conf

        执行:cp /etc/vpp/startup.conf /etc/vpp/startup2.conf

        vim修改配置文件startup2.conf中的unix项中的key cli-listen 值为 /run/vpp/cli2.sock保存并退出如下图

        


二、启动 (务必以手动形式启动)

        

        关掉systemctl的服务方式 关闭命令:systemctl stop vpp

        启动VPP1:vpp -c /etc/vpp/startup.conf # -c 指定配置文件启动

        连接VPP1 vppctl -s /run/vpp/cli.sock

        启动VPP2:vpp -c /etc/vpp/startup2.conf # -c 指定配置文件启动

        连接VPP2:vppctl -s /run/vpp/cli2.sock

以这样的方式启动两个vpp,我们连接进入vpp后就会出现,上图所示输入命令的提示符一样这样(绿色等待输入那个位置)这样不够清晰,我们还可以修改一下配置文件让我们更清晰的知道那个是vpp1哪个是vpp2。(VPP配置文件官网

修改配置文件startup.conf、startup2.conf中的unix项中的key cli-prompt 值分别为vpp1、vpp2保存并退出如下图

 kill vpp进程 命令:ps aux | grep vpp把查出来的VPP进程统统kill

重新启动会看到如下图所示

默认的 vppctl = vppctl -s /run/vpp/cli.sock 

 三、配置

最终实现的效果是ubuntu 主机 可以和VPP1互通,VPP1和VPP2可以互通,参考图1的拓扑

ubuntu 主机和vpp1之间通过veth(虚拟网卡)互通

ubuntu 主机 配置

ip link add vpphost type veth peer name vppout
ip link set vpphost up
ip link set vppout up
ip address add 192.168.168.1/24 dev vpphost

veth虚拟网卡相当于网线一头连接主机一头连接vpp 形成一条通路

创建-->开启网卡-->设置主机端网卡地址

VPP1 配置

        配置与ubuntu互通

vppctl

vpp1 create host-interface name vppout   
vpp1 set interface ip address host-vppout 192.168.168.2/24
vpp1 set interface state host-vppout up
vpp1 show interface addr
host-vppout (up):
  L3 192.168.168.2/24
local0 (dn):

ubuntu主机已经可以可vpp互通了 

创建vpp1端与ubuntu主机通信的网卡

创建-->开启网卡-->设置主机端网卡地址

可以看到创建的是名字为vppout的网卡但开启和设置的网卡名都是host-vppout,因为创建后这是自动生成的,设置的网卡IP地址一定要和ubuntu主机网卡设置的同一个网段。

设置与VPP2的配置

vpp1 create interface memif id 0 master

vpp1 set int ip address memif0/0 10.0.0.1/24
vpp1 set interface state memif0/0 up
vpp1 show int addr
host-vppout (up):
  L3 192.168.168.2/24
local0 (dn):
memif0/0 (up):
  L3 10.0.0.1/24

 

VPP2 配置

vppctl -s /run/vpp/cli2.sock

vpp2 create interface memi id 0 slave
set int ip address memif0/0 10.0.0.2/24
set int state memif0/0 up
vpp2 show int addr
local0 (dn):
memif0/0 (up):
  L3 10.0.0.2/24
现在VPP1和VPP2已经可以互相通信了

以上配置实现了第一张图的拓扑结构:ubuntu主机、vpp1互通,vpp1、vpp2互通。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值