「BGP」- 路径属性:Next-Hop

  CREATED BY JENKINSBOT

属性概述

该属性是一个公认必遵属性,用于指定到达目标网络的下一跳地址。

当路由器学习到 BGP Route 后,需对 BGP.Route.Next-Hop 进行检查:
1)该属性值(IP-ADDR)必须在本地路由可达;
2)如果不可达,则这条 BGP Route 不可用;

变更规则

在不同的场景中,设备对 BGP Route 的缺省 Next_Hop 属性值的设置规则如下:

EBGP Peer ⇒ EBGP Peer

路由器将 BGP Route 通告给自己的 EBGP Peer 时,将该路由的 Next_Hop 设置为自己的 SRC-IP-ADDR;

IBPG Peer ⇒ IBGP Peer

路由器在收到 EBGP Peer 所通告的 BGP Route 后,在将路由传递给自己的 IBGP Peer 时,会保持路由的 Next_Hop 属性值不变

Q:在这种场景(EBGP-IBGP-IBGP)中,R3 会出现 NextHop 不可达问题,因为 NextHop==10.0.12.1,而 R3 无去往该地址的路由。
A:需要 IBGP-2-IBGP, next hop local 来解决,在 R2 上,将 Next Hop 修改为 R2 的地址;

MA Network (Special Case between EBGP)

根据 EBGP ⇔ EBGP 规则,需要进行 Next_Hop 修改,但是在 MA Network 中存在特殊场景:

EBGP-R1 收到来自 BGP-R2 的 BGP Route,当 EBGP-R1 向 EBGP-R3 传递时,如果该路由的 Next_Hop 与 EBGP Peer(被更新对象,被传播路由)属同个网段,那么 EBGP-R1 不会修改 Next_Hop,而是直接传递给它的 BGP Peer;

此时 R3 流量能够直接通过 R2 访问 10.0.2.0/24 网络;
如果 R1 修改 Next_Hop=10.0.123.1,则 R3 流量必须经过 R1 ⇒ R2 ⇒ 10.0.2.0/24 网络;