问:如何才能经常看到这样优质的文章?

答:只需要点击右上角关注就好了。

BGP汇总的三个参数,上个文章咱们说了第一个也是最重要的一个----summary-only

接下来要说的是:

第二个参数(suppress-map-抑制列表)和第三个参数(as-set-给汇总路由设置AS号)

一、我们先来看suppress-map,抑制列表

拓扑图还是上个文章那个,如下:




bgp采用什么模式发布路由信息 bgp发布路由原则_bgp通告四原则


两台路由器,R1在BGP AS1,R2在BGP AS2。我让R1和R2基于直连的物理接口(12.1.1.0/24)建立一个EBGP邻居,然后再R2上把4个lo0接口通告进BGP协议。

首先检查一下BGP预配:


bgp采用什么模式发布路由信息 bgp发布路由原则_bgp采用什么模式发布路由信息_02


bgp采用什么模式发布路由信息 bgp发布路由原则_bgp采用什么模式发布路由信息_03


然后查看BGP邻居和BGP路由:


bgp采用什么模式发布路由信息 bgp发布路由原则_ide_04


bgp采用什么模式发布路由信息 bgp发布路由原则_bgp通告四原则_05


上个文章我说过了,如果这样做汇总R2(config-router)#aggregate-address 192.168.8.0 255.255.252.0 summary-only,那么R2会把所有的明细路由都抑制掉,仅仅给R1通告一条汇总路由。如果客户要求让你仅仅抑制192.168.10.0/24和192.168.1.0/24,那该怎么做呢。这个时候就需要用抑制列表专门匹配去抑制路由。

思考一下,既然我们要抑制掉上面两条路由,那么就需要用ACL列表或者是前缀列表去专门匹配。

下面是三种匹配路由的方式(人选其一皆可,有看不懂可以评论去问我):

第一种:


bgp采用什么模式发布路由信息 bgp发布路由原则_R3_06


第二种:


bgp采用什么模式发布路由信息 bgp发布路由原则_R3_07


第三种:


bgp采用什么模式发布路由信息 bgp发布路由原则_数据_08


ACL或者前缀列表抓取了路由之后(我使用第三种),然后用route-map去匹配,操作如下:


bgp采用什么模式发布路由信息 bgp发布路由原则_R3_09


接下来到了最重要的一步,使用抑制列表调用上面定义的route-map,操作如下:


bgp采用什么模式发布路由信息 bgp发布路由原则_ide_10


好了,到了见证奇迹的时刻,登录R1查看BGP路由,如下:


bgp采用什么模式发布路由信息 bgp发布路由原则_bgp通告四原则_11


Nice!!!

虽然效果实验了可能有些学生还有一些疑问,这个仅仅抑制部分明细路由有什么实际意义呢?


bgp采用什么模式发布路由信息 bgp发布路由原则_bgp采用什么模式发布路由信息_12


嗯...嗯....想的不错,那么接下来,我解释一下,这个抑制列表有什么实际意义:


bgp采用什么模式发布路由信息 bgp发布路由原则_数据_13


看上面这个图片,一共有三个AS,假设某大客户分公司在AS1,总公司在AS2,AS用来模拟运营商的MPLS网络区域。在AS1内有很多条明细路由,比如192.168.8.0/24,192.168.9.0/24,192.168.10.0/24,192.168.11.0/24。

客户这样说,AS2访问AS1的192.168.8.0/24和192.168.9.0/24的时候,数据包要优先走后门路径(从AS2的R3直接发给AS1 R2),后门路径出现故障,数据全部走MPLS网络。对于其他的数据,只能走MPLS网络。

如果要实现这样的需求,我们就需要在R2上对AS1内的BGP路由做汇总,但是要调用抑制列表,放行192.168.8.0/22的汇总以及192.168.8.0/24和192.168.9.0/24这两条明细路由,儿,而对于MPLS传递过来的路由,我们可以再R5做汇总,抑制掉所有的明细(这是CCIE考试5.0版本2里面的一个小需求)。

完成后AS2就可以收到AS1传来的明细路由,而从MPLS区域传来的就是汇总路由。路由器根据最长掩码查表转发数据包,肯定优先走明细路由,这样就实现了需求。


bgp采用什么模式发布路由信息 bgp发布路由原则_R3_14


二、接下来看第三个从参数(as-set-给汇总路由设置AS号)

什么时候用这个?当汇总的命令没有在明细路由所在的AS内敲的时候。


bgp采用什么模式发布路由信息 bgp发布路由原则_bgp通告四原则


比如上面的环境明细路由在AS2,如果我在AS1内汇总,可能会出现什么情况?

看操作:


bgp采用什么模式发布路由信息 bgp发布路由原则_ide_16


这样做完汇总之后,R1本地会产生一条汇总路由,如下:


bgp采用什么模式发布路由信息 bgp发布路由原则_R3_17


而且这条汇总路由会再次通过EBGP邻居传递给AS2,如果AS2再接收这条路由,那么这样就可能会导致环路了。为了防止这种情况的出现,我们给汇总路由添加一个AS号(明细路由所在的AS号),这样由于EBGP放环原则的存在,AS1再给AS2发这条汇总路由,AS2就不再接收了,因为里面含有我自己的AS号,看:

加as-set之前


bgp采用什么模式发布路由信息 bgp发布路由原则_bgp通告四原则_18


加as-set之后


bgp采用什么模式发布路由信息 bgp发布路由原则_bgp通告四原则_19


bgp采用什么模式发布路由信息 bgp发布路由原则_bgp采用什么模式发布路由信息_20


可以看到,R2已经不再接收了,因为EBGP的放环原则就是当我通过EBGP邻居收到路由,如果路由里面有我自己的AS号,那么我就不接收了。

当然,我们还可以让R2打破EBGP的放环原则。