BGP路由协议之路由通告/传递

BGP 的路由宣告

BGP 自身并不会发现并计算产生路由,只会将 IGP 路由表中的路由引入到 BGP 路由表中,并通过 Update 报文传递给 BGP 对等体(邻居)

​Network​ 宣告,前提是路由表中存在该条路由

​import-route​ 引入其他协议的路由

​aggregate​ 汇总路由

BGP 支持根据已有的路由条目进行聚合,生成聚合路由

路由的下一跳

BGP 传递路由时,在 AS 边界路由器从 EBGP 邻居学来的路由,再向 IBGP 邻居时,并不会修改下一跳。这就导致了 IBGP 邻居无法到达该条路由的下一跳,从而使传递的该条路由失效。通常情况下需要修改下一跳为本设备建立 IBGP 邻居的源地址(下一跳本地)

在 AS 边界设备执行

[Huawei]peer 12.1.1.2 next-hop-local  // 向该IBGP邻居传递路由时,将路由的下一跳改为本设备

 路由汇总

BGP 支持自动汇总和手工汇总,一般情况下不会使用自动汇总,因为自动汇总不够灵活,只能汇总成主类/8 /16 /24 的路由。

而手工汇总就要灵活的多。

[Huawei-bgp]summary automatically // 开启自动汇总
// 导入的路由不能进行自动汇总

[Huawei-bgp]aggregate 192.168.0.0 255.255.255.0 
// 手工汇总一条192.168.0.0/16的路由,默认情况下,产生汇总路由后并不会删除明细路由,需要手工配置
[Huawei-bgp]aggregate 192.168.0.0 255.255.255.0 detail-suppressed
// 手工汇总路由,并抑制(删除)明细路由

抑制明细路由由于丢失了部分 BGP 属性(AS_Path 路径属性)因此可能会有环路风险。

当然,BGP 也有相应的解决方案

加快收敛,手动刷新某个邻居的路由

[Huawei-bgp]refresh bgp 4.4.4.4 import // 让对方将最新的路由发过来
[Huawei-bgp]refresh bgp 4.4.4.4 export // 将最新的路由发送给对方

Null 0 防止环路

所有数据包的出接口时 Null 0 的话,会被路由器直接丢弃

不管任何路由协议,只要进行了 路由汇总,本地就会产生一条汇总的 Null0 的路由,防止环路产生

BGP 通告原则

BGP 通过 networkimport-route、aggregate 聚合方式生成 BGP 路由后,通过 Update 报文将 BGP 路由传递给对等体。

BGP 通告遵循以下原则:

  • 只发布最优路由。
  • 从 EBGP 对等体获取的路由,会发布给所有对等体
  • IBGP 水平分割:从 IBGP 对等体获取的路由,不会发送给 IBGP 对等体。
  • BGP 同步规则指的是:当一台路由器从自己的 IBGP 对等体学习到一条 BGP 路由时(这类路由被称为 IBGP 路由),它将不能使用该条路由或把这条路由通告给自己的 EBGP 对等体,除非它又从 IGP 协议例如 OSPF 等此处也包含静态路由)学习到这条路由,也就是要求 IBGP 路由与 IGP 路由同步。同步规则主要用于规避 BGP 路由黑洞问题

BGP 只发布最优路由

只发布最优且有效(即下一跳地址可达路由

通过 displaybgprouting-table​ ​命令可以查看 BGP 路由表

在 BGP 路由表中同时存在以下两个标志的路由为最优、有效

  • *:代表有效
  • :代表最优

从 EBGP 对等体学到的路由,会发给所有 BGP 对等体

IBGP 水平分割:从 IBGP 对等体获取的 BGP 路由,不会再发送给其他 IBGP 对等体

该条原则也被称为“IBGP 水平分割”

如图所示,如果 IBGP 对等体学习到的路由会继续传递给其他的 IBGP 对等体

  • R2 将一条路由传递给了 IBGP 对等体 R3
  • R3 收到路由之后传递给 IBGP 对等体 R1
  • R1 继续传递给 IBGP 对等体 R2

路由环路形成。

路由黑洞

由于 IBGP 可以跨设备建立邻居,那么中间的转发设备由于没有运行 BGP 协议,那么会导致没有相应的 BGP 路由从而在转发层面丢弃数据包,这就叫路由黑洞

BGP 同步规则

为了防止路由黑洞,从 IBGP 学到的路由,不能直接更新给 EBGP 邻居(除非从 IGP 又学到了这条路由)

只有 IBGP 和 IGP 同时学到该条路由,才能更新给 EBGP 邻居

默认关闭该条规则

R5 访问 10.0.4.4

  1. R5 查找路由表,将报文发送给 R3。
  2. R3 收到报文后查找路由表,匹配到一条 BGP 路由其下一跳为 R2,但是 R2 为非直连下一跳,需要进行路由迭代,通过 IGP 学习到的路由迭代出下-跳为 R1。R3 将报文发送给 R1。
  3. R1 收到报文后查找路由表,因为 R1 并非 BGP 路由器末与 R2 建立 IBGP 对等体关系,因此 R1 上并无 BGP 路由 10.0.4.0/24,路由查找失败,R1 将报文丢弃

当一台路由器从自己的 IBGP 对等体学习到条 BGP 路由时(这类路由被称为 IBGP 路由),它将不能使用该条路由或把这条路由通告给自己的 EBGP 对等体,除非它又从 IGP 协议(例如 OSPF 等,此处也包含静态路由)学习到这条路由,该条规则也被称为 BGP 同步原则。.

  1. BGP 路由器 R4 上存在一条路由 100.40/24,R4 将其传递给了 R2。
  2. R2 将路由传递给非直连 IBGP 对等体 R3。
  3. R3 将路由传递给 R5
  4. 之后 R5 向 10.044 发起访问

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值