问:如何才能经常看到这样优质的文章?
答:只需要点击右上角关注就好了。
BGP汇总的三个参数,上个文章咱们说了第一个也是最重要的一个----summary-only
接下来要说的是:
第二个参数(suppress-map-抑制列表)和第三个参数(as-set-给汇总路由设置AS号)
一、我们先来看suppress-map,抑制列表
拓扑图还是上个文章那个,如下:
两台路由器,R1在BGP AS1,R2在BGP AS2。我让R1和R2基于直连的物理接口(12.1.1.0/24)建立一个EBGP邻居,然后再R2上把4个lo0接口通告进BGP协议。
首先检查一下BGP预配:
然后查看BGP邻居和BGP路由:
上个文章我说过了,如果这样做汇总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列表或者是前缀列表去专门匹配。
下面是三种匹配路由的方式(人选其一皆可,有看不懂可以评论去问我):
第一种:
第二种:
第三种:
ACL或者前缀列表抓取了路由之后(我使用第三种),然后用route-map去匹配,操作如下:
接下来到了最重要的一步,使用抑制列表调用上面定义的route-map,操作如下:
好了,到了见证奇迹的时刻,登录R1查看BGP路由,如下:
Nice!!!
虽然效果实验了可能有些学生还有一些疑问,这个仅仅抑制部分明细路由有什么实际意义呢?
嗯...嗯....想的不错,那么接下来,我解释一下,这个抑制列表有什么实际意义:
看上面这个图片,一共有三个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区域传来的就是汇总路由。路由器根据最长掩码查表转发数据包,肯定优先走明细路由,这样就实现了需求。
二、接下来看第三个从参数(as-set-给汇总路由设置AS号)
什么时候用这个?当汇总的命令没有在明细路由所在的AS内敲的时候。
比如上面的环境明细路由在AS2,如果我在AS1内汇总,可能会出现什么情况?
看操作:
这样做完汇总之后,R1本地会产生一条汇总路由,如下:
而且这条汇总路由会再次通过EBGP邻居传递给AS2,如果AS2再接收这条路由,那么这样就可能会导致环路了。为了防止这种情况的出现,我们给汇总路由添加一个AS号(明细路由所在的AS号),这样由于EBGP放环原则的存在,AS1再给AS2发这条汇总路由,AS2就不再接收了,因为里面含有我自己的AS号,看:
加as-set之前
加as-set之后
可以看到,R2已经不再接收了,因为EBGP的放环原则就是当我通过EBGP邻居收到路由,如果路由里面有我自己的AS号,那么我就不接收了。
当然,我们还可以让R2打破EBGP的放环原则。