FRR与VPP路由和转发层面流程

  首先了解一下VPP和FRR结合的架构如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7TlmGafp-1590764332456)(https://turbock79.cn/wordpress/wp-content/uploads/2020/04/vpp-frr-路由流程图.png)]

参考文档:
路由平面和转发平面分离:https://wiki.fd.io/view/VPP_Sandbox/router
FRR实现官方文档:https://github.com/FRRouting/frr/wiki/Alternate-forwarding-planes%3A-VPP

1.FRR与VPP结合中路由层面处理方式

  如上UML图所示,路由层面为步骤2,3,5,6,其由frr中zebra以及vpp中router_plugin自动完成。

  在FRR中第四步配置好frr后,通过配置协议获取多种协议的路由,按照各自协议AD值进行优先级选择,代表参数为各路由的metric值;值越小,优先级越高;然后同步到内核,然后再到VPP中,形成环路,写入VPP的fib路由表进行路由引导。

  AD(administrate distance),也就是说用来判断此路由的可信度,也表示默认的管理距离,EIGRP默认AD是90,IGRP是100,OSPF是110,RIP是120,直接连接是0,静态路由是1。AD最大值255,越小可靠性越高。通常可以通过修改AD值调整路由优选路径。AD值主要在IGP协议中采用,BGP更多采用med值,和本地优先级进行选路。

  上图简单示例重分发情况下,路由选择的情况。

2.VPP转发平面

  在VPP中,路由配置来源相对单一:

  • VPP配置端口IP;
  • VPP配置静态路由;
  • 从内核同步的动态路由。

  其中VPP处理规则是按照AD值进行处理,内核直连等优先级高于静态路由、静态路由优先级高于从内核同步获取的动态路由。即内核直连>静态>动态。有一种可能性,当VPP从内核同步过来FRR中的路由时,会根据上述AD值进行判断,解决隐形的路由冲突问题;

  如上图所示,VPP端口路由同步到内核的路由作为内核路由,第一条,其metric优先级为0最高级;第二条为linux 内核中配置的静态路由;第三条为内核从frr中同步学习到的ebgp路由,metric值为20.

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我们可以了解到BGP是一种路由协议,而静态路由则是手动配置的路由。因此,FRR BGP配置静态路由需要先配置静态路由,然后再将其与BGP协议结合起来。具体步骤如下: 1. 配置静态路由。可以使用以下命令配置静态路由: ```shell ip route add <destination_network>/<netmask> via <next_hop_ip_address> ``` 其中,`<destination_network>/<netmask>`表示目标网络和子网掩码,`<next_hop_ip_address>`表示下一跳IP地址。例如,要将目标网络`192.168.1.0/24`的流量发送到下一跳IP地址`10.0.0.1`,可以使用以下命令: ```shell ip route add 192.168.1.0/24 via 10.0.0.1 ``` 2. 配置BGP协议。可以使用以下命令配置BGP协议: ```shell router bgp <local_as_number> neighbor <neighbor_ip_address> remote-as <remote_as_number> network <local_network> ``` 其中,`<local_as_number>`表示本地AS号,`<neighbor_ip_address>`表示******本地网络设置为`192.168.1.0/24`,可以使用以下命令: ```shell router bgp 65001 neighbor 10.0.0.2 remote-as 65002 network 192.168.1.0/24 ``` 3. 将静态路由与BGP协议结合起来。可以使用以下命令将静态路由与BGP协议结合起来: ```shell router bgp <local_as_number> network <destination_network>/<netmask> route-map <route_map_name> out ``` 其中,`<destination_network>/<netmask>`表示目标网络和子网掩码,`<route_map_name>`表示路由映射名称。例如,要将目标网络`192.168.1.0/24`的流量发送到BGP邻居,可以使用以下命令: ```shell router bgp 65001 network 192.168.1.0/24 route-map static-to-bgp out ``` 在这个例子中,`static-to-bgp`是一个路由映射名称,它将静态路由转换为BGP路由
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值