BGP路由协议的通告原则和下一跳

2023-06-13 22:01:45

BGP的路由通告原则

1)BGP向邻居更新最优的路由,不更新其他路由

dis bgp routing-table peer 11.1.1.1 advertised-routes //向R1这个邻居通告的路由有哪些? BGP Local router ID is 10.1.34.4 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 1 Network NextHop MED LocPrf PrefVal Path/Ogn *> 4.4.4.4/32 44.1.1.1 0 100 0 i // *代表路由有效 >代表此路由为最优

2)从eBGP邻居得到的路由(eBGP路由)没有条件的更新给iBGP邻居和eBGP邻居(不会通告回收到路由的eBGP邻居,水平分割)

3)iBGP的水平分割(iBGP的防环原则)从IBGP邻居收到的路由,不在更新给其他的IBGP邻居

4)从IBGP邻居学来的路由是否发布给BGP邻居,取决于该路由是否也能通过IGP得知,即BGP和IGP同步)

IBGP与IGP同步的概念:BGP Spaker不将从IBGP对等体获得的路由信息通告给它的EBGP对等体,除非该路由信息也能通过IGP获得。(在IBGP路由加入路由表并发布给EBGP对等体之前,会先检查IGP路由表,只有在IGP也知道这条路由时,它才会被加入到路由表,并发布给EBGP对等体)(这是为了防止路由黑洞,但是在华为设备上,默认是关闭的,而且是不能打开的,主要是担心IGP无法传递BGP数量庞大的路由信息,这时可以考虑IBGP全连接,RR和联盟)

BGP的NextHop

BGP nexthop属性是一个公认必选属性,它是去往目的路由下一跳路由器的IP地址。该地址并不一定是邻居路由器的地址。该属性需要遵守如下规则:

  • 从EBGP邻居学习到的路由会传递给我的EBGP邻居,下一跳改变,变成自己的IP地址。
  • 从EBGP邻居学习到的路由会传递给我的IBGP邻居,下一跳不变,还是EBGP邻居,需要使用next-hop-local改变。

[R1-bgp]peer 44.1.1.1 next-hop-local //eBGP(R5更新的路由给R1)会保持下一跳不变更新给iBGP,此命令ASBR更新给IBGP邻居的EBGP路由下一跳为自己 [R1-bgp]peer 44.1.1.1 next-hop-invariable //是优化数据转发的方案,保持下一跳不变,用于非直连的用多跳构建的EBGP邻居之间优化数据转发,类似于OSPF的转发地址(forwarding address

  • 从IBGP邻居学习到的路由会传递给我的EBGP邻居,下一跳改变,变成自己的IP。

在华为设备上不要使用BGP的更新源(connect-interface)来模拟业务网络(会演变成无效路由);测试的时候携带源地址

BGP的路由产生方式

1)network 直连的、静态的、IGP路由(因为BGP的目的是在AS之间更新路由),起源属性 IGP

2)从其他协议引入路由,起源属性?

3)聚合路由(汇总路由),起源属性 IGP