属性概述
该属性是一个公认必遵属性,用于指定到达目标网络的下一跳地址。
当路由器学习到 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 网络;