VPP与FRR基于Linux网络协议栈通信(vrf方式)

24 篇文章 9 订阅
3 篇文章 0 订阅

  VRF (Virtual Routing and Forwarding)使同一系统下拥有多种且独立的路由表。在LINUX的内核中,从4.3版本已开始支持VRF,若需要较好支持vrf功能,建议Linux操作系统内核版本4.8以上。

  • 操作环境:本文操作系统采用CentOS8,已经安装iproute2。

如下将创建一个veth对,并将其分别绑定到两个不同VRF,然后互相ping通IP;

1. VETH打通不同VRF的基础配置

# 1.创建vrf表red和blue并分别启动
ip link add blue type vrf table 1
ip link add red type vrf table 2
ip link set blue up
ip link set red up
ip link show type vrf

# 2.创建veth对red1和blue1,并分别挂载到对应vrf,启动
ip link add red1 type veth peer name blue1
ip link set red1 vrf red
ip link set blue1 vrf blue
ip link set blue1 up
ip link set red1 up

# 3.给veth对分配ip,并ping通彼此
ip addr add 10.10.10.1/24 dev red1
ip addr add 10.10.10.2/24 dev blue1

# 4.通过VRF进行ping操作
ping 10.10.10.1 -I blue1
ping 10.10.10.2 -I red1
# 查看vrf blue的端口地址和路由
ip link show vrf blue
ip addr show vrf blue
ip route show vrf blue

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

2.1. linux Shell创建vrf和一对veth,并进行设置;

#创建并启动vrf
ip link add vrf-2 type vrf table 2
ip link set vrf-2 up

#创建veth并绑定
ip link add vpp2 type veth peer name frr2
ip link set frr2 up
ip link set vpp2 up
ip link set frr2 vrf vrf-2

#添加veth pair的IP
ip addr add 10.10.40.1/24 dev frr2
#添加静态路由到vrf表中,指向vpp中网段
ip route add 10.10.10.0/24 via 10.10.40.2 dev frr2 vrf vrf-2

2.2. vpp中接管VETH网卡

#vppctl
#创建vrf表2,并挂载物理口G2
ip table add 2
set int ip table G2 2
set interface state G2 up
set interface ip addr G2 10.10.10.1/24
#接管veth 网卡
create host-interface name vpp2
set int ip table host-vpp2 2
set interface state host-vpp2 up
set interface ip addr host-vpp2 10.10.40.2/24
#添加静态路由,指向vrf 2直连端口下一跳
ip route add 10.10.10.0/24 table 2 via G2

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

通过FRR官方文档可知,Frr中模块zebra支持对操作系统底层网络的多个接口、地址、静态路由、VRF的动态同步;也可通过配置/etc/frr/zebra.conf完成指定VRF,启动时加-f /etc/frr/zebra.conf;这种情况下,不需要在daemons配置文件中开启-n参数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值