BGP路由通告原则
缺省情况下,BGP不发布任何本地路由。
只有明确通告的网络才会发送给邻居。
通告的网络必须能够精确地在路由表中找到。
多条路径时,只选择最优的给自己使用。
只把自己使用的最优路由通告给邻居。
从EBGP学习到的路由会通告给所有邻居。
从IBGP学习到的路由默认不会通告给IBGP(BGP水平分割原则)。
华为VRP5.7之前的版本,把IP路由表中最优的路由发布给邻居。
IP中最优,肯定也是BGP中最优的,只有BGP中最优才可能进入IP路由表;言外之意,在BGP中最优,但不进IP路由的BGP路由不会通告给。使用于IBGP路由通告原则,不适用与EBGP,即使在IP路由表中最优的路由不是BGP路由,也会通告,如10.0.2.2在R1上BGP最优,但是在IBGP R3上非最优。
VRP5.7之后的版本,把BGP路由表中最优的路由发布给邻居,同时提供一条命令,active-Route-advertise 用于和之前的版本兼容。
根据路由协议涉及的初衷,IGP就是用来AS内部收敛,BGP用来AS间交换路由。所以,AS内,会尽量采用IGP路由,AS间,只能用BGP。IGP协议是为了收敛,BGP是为了传递。AS内的IBGP 对等体关系,也只是为了大家都能学习到其他AS的路由,不是为了学习本AS的路由,本AS的用IGP收敛。
实例
在R2的BGP上通告 10.0.2.2 ,R2上的IP路由表和BGP路由表分别为:
BGP路由表:
R3与R2建立IBGP,R3的BGP路由表如下:
说明 AS内,是IGP收敛,R2上最优的BGP路由在R3上的BGP路由表中并非最优,下一跳10.0.2.2 在可达的情况下。
但是EBGP R1可以学习到R2通告的路由: