VPP与FRR通过Linux内核沟通机制调研(netns方式,非vrf)

实验环境:操作系统Centos7.6,原生Linux系统内核版本3.10;

实现租户路由域间通信的方式选择——vrf与netns之间:因为Linux内核自4.8以后才较好支持vrf功能,所以采用vrf方式实现VPP到FRR通信需要升级Linux系统内核;但现有生产环境采用原生3.10版本,升级系统版本会产生不稳定风险,例如vpp通过网卡驱动接管虚拟网卡问题等;同时系统版本3.10已很好支持netns,VPP和FRR对netns的支持也较完善,故初步采用netns方式;

实验相关参考文档https://segmentfault.com/a/1190000020000400

1.打通VPP->Linux Kernel netns途径

1.1.创建不同命名空间,并关闭待接管网卡;

//创建网络命名空间net7和net8
# ip netns add net7
# ip netns add net8

1.2.创建网卡直通tap方式

该方式使得tap网卡同linux内核中已有网卡通过netlink建立连接,数据包也会在二层就转发;vpp采用 v20.01,通过vppctl控制台登录;

//1.创建tap直连到linux内核网卡指定网络空间net7和net8,并设置内核中网卡名称为g7和g8
vpp# create tap id 7 host-if-name g7 host-ns net7
vpp# create tap id 8 host-if-name g8 host-ns net8
vpp# show tap

//2.VPP中创建vrf,并指定vrf的ID号
vpp# ip table add 7
vpp# ip table add 8

//3.vpp中tap端口绑定对应vrf
vpp# set interface ip table tap7 7
vpp# set interface ip table tap8 8

//4.启动tap端口,并设置ip;若删除或端口换绑定关系,需首先删除IP;
vpp# set interface state tap7 up
vpp# set interface state tap8 up
vpp# set interface ip address tap7 10.10.7.1/24
vpp# set interface ip address tap8 10.10.8.1/24
vpp# show int addr        //查看vrf绑定端口情况

 

1.3.Linux内核中设置对应网卡 

# ip netns exec net7 ip link set g7 up
# ip netns exec net8 ip link set g8 up
# ip netns exec net7 ip addr add 10.10.7.2/24 dev g7
# ip netns exec net8 ip addr add 10.10.8.2/24 dev g8
# ip netns exec net7 ip link set lo up
# ip netns exec net8 ip link set lo up
# ip netns list
# ip netns exec net7 ip addr    //查看namespace net7的端口绑定情况
# ip netns exec net8 ip addr

//如果需要在netns中直接加入某命令空间netns,可采用如下方法
//ip link add dummy5 type dummy netns ns1
//ip link set eth0 netns ns1

2.打通FRR->Linux Kernel netns途径

通过官方文档可知,Frr中模块zebra支持对多个接口、地址、静态路由的同步;

通过配置/etc/frr/daemons文档,zebra模块添加-n选项可实现frr对netns的支持,如下图所示;随后,zebra会自动同步linux kernel中netns中空间到FRR中;也可通过配置/etc/frr/zebra.conf完成指定VRF,启动时加-f /etc/frr/zebra.conf;

然后重启frr服务, systemctl restart frr;通过vtysh登录CLI并配置;

#1.查看从linux内核netns同步的vrf
root# show vrf
#2.查看已接管netns以及routes等信息
root# show zebra
#3.查看路由信息
root# show ip route vrf net7

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值