BGP 路由通告原则 路由黑洞及解决方法

**强调内容*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通告的路由:
这里写图片描述