「BGP」- 路由的生成

  CREATED BY JENKINSBOT

问题描述

当建立 BGP 关系后,双端开始同步路由信息。但与 IGP 不同,BGP 并不会发现路由,而需要将 IGP Route 注入到 BGP RIB 中,然后 BGP 通过 Update 报文向 BGP Peer 传递;

该笔记将记录:将 IGP Route 注入到 BGP RIB 的方法以及相关问题的解决办法;

解决方案

BGP 产生路由的方式有两类:
1)路由注入:将 IGP 路由注入 BGP 中,其方式有两种:networkimport-route
2)路由聚合:与 IGP 协议相同,BGP 也支持根据已有的路由条目进行聚合,生成聚合路由;

如下图示,演示 BGP 路由注入及通告的过程:

network

通过 network 方式注入路由:
1)该路由必须是已存在于路由表中的路由条目,否则不会被成功注入到 BGP RIB 中;
2)不同于 OSPF,OSPF 是通告地址范围,只要路由处于该地址范围内,都将内通告出去;

通过 network 注入路由,如图所示:
0)AS200/R1,其中存在两条通过 IGP OSPF 学习到的路由:10.1.0.0/24;10.2.0.0/24;
1)AS200/R1,通过 network 命令注入两条路由,此时这两条路由将会出现在 R1 的 BGP RIB 中;
2)AS200/R1,通过 Update Packet 将路由传递给 AS300/R3 路由器;
3)AS300/R3,当期其收到路由后,将这两条路由加入到本地的 BGP RIB 中;

import-route

问题描述:虽然通过 network 方式能够精确注入特定路由,但是只能逐条配置注入路由到 RIB 中,如果注入的路由条目很多配置命令将会非常复杂。

解决方案:为此使用 import-route 方式,将直连路由、静态路由、OSPF 路由、IS-IS 路由等协议的路由注入到 BGP RIB 中。

Route Aggregation

与众多 IGP 协议相同,BGP 同样支持路由的手工聚合。
当执行聚合后,在本地的 BGP RIB 中,除了原本的明细路由条目之外,还会多出一条聚合的路由条目。

在 BGP View 中:
1)通过 aggregate 命令进行 BGP 路由手工聚合。在 BGP 已学到相应的明细路由情况下,设备会额外地向 BGP 注入指定的聚合路由;
2)在执行聚合时,如果指定 detail-suppressed,则 BGP 只会向 Peer 通告聚合后的路由,而不通告聚合前的明细路由;

在聚合时,并配置 detail-suppressed 参数,此时 R3.RIB 将仅包含 BGP 聚合路由(10.1.0.0/22),无法看到聚合前的明细路由: