分享一种路由重分发的标准解决方案

电子说

1.3w人已加入

描述

路由重分发这一技术在现网环境中是一种很常见的技术,所以其地位也非常重要。很多教程在在讲路由重分发的时候,只讲了重分发的操作却没有说现网环境中的一些“讲究”。所以,很多学员,包括一些技术讲师也不知道的是,路由重分发是一种风险较高的操作,在现网环境的解决方案里,路由重分发也是讲究颇多。这一切又一切的“讲究”和“规矩”,都为了一个目的:把网络设计得更高效,且能进一步降低风险。

路由重分发有两种情况:

1、静态路由重分发到动态路由内;

2、两个路由协议相互重分发。

1

静态路由重分发进动态路由

静态路由往动态路由内重分发风险较小,但也有讲究,这个讲究有两点:

1、尽量不要往动态路由的区域内再写静态路由,如果实在要写,就不能重分发进动态了

2、重分发静态路由到动态路由内,必须用Prefix-List+Route-MAP/Route-Policy划定范围

第一个讲究怎么来理解呢?那就先看一下,什么叫做“往动态路由的区域内再写静态路由”

MAP

“往动态路由的区域内再写静态路由”会有什么问题呢?咋一看确实是没有什么问题吧。如果是Cisco的设备,静态路由的AD值为1,OSPF的AD值为110,写静态路由无非就是把R1到R2的流量给干预了一下。如果是华为/H3C的设备,静态路由Pref值为60,OSPF内部路由的Pref值为10,静态路由的优先级比OSPF内部路由低,这条路由用默认方式写了也不生效。

且不说华为/H3C你写这条静态路由,用默认的AD值写了不生效,写了也属于多此一举。但要是你用Cisco的设备来写呢?或者你把这条静态路由的优先级调高了呢?

当然,如果R1上没有静态路由重分发到OSPF内也罢了,但如果R1上有静态路由重分发到OSPF的配置呢?

MAP

此时,断开R1和R2的OSPF邻居,你就会立刻发现,让R2再访问R4时,就出现了如下的路由环路

MAP

你或许可以和我抬杠说:你这是极端环境,R1和R2要OSPF断开才会有这样的环路。但是在一个规模稍大的网络环境里面,你能保证说设备的互联链路100%不断吗?如果一条链路断开就出现环路这样的通信故障,那你设置那些冗余设备和冗余链路就一点意义都没有了。

这个和现网环境有一个原则冲突:即使是冗余链路断开一条,也不能让任何位置的互访出现问题。这里R1和R2的链路断开,就让R1和R4的互访出了问题,这就违背原则了。

MAP

第二个讲究:静态路由重分发到动态路由时,必须有Prefix-List+Route-map/Route-Policy做控制,划定范围。

这个怎么理解呢?在不违背第一个讲究的前提下,你要把静态路由重分发到OSPF内,就必须要把静态路由先用Prefix-List包含或标记TAG,在重分发静态路由到OSPF的时候,挂Route-MAP,我们来看一下,Cisco设备的操作命令:

MAP

MAP

有人就会说了:你明知道这个设备上的所有静态路由都要往动态路由里面重分发,干嘛要用前缀列表或TAG这么多此一举呢?

要让我对这个问题拿话来说的话,我只能这么回答你。

你或许知道开车,或坐副驾驶的时候要系安全带,但是你又嫌系安全带麻烦,想着反正这条路上没叔叔也没监控就懒得系了。然后再这条路上跑了几十遍来回都没事,于是你得到一个结论:不系安全带其实也没事,别被叔叔抓到就可以了。但是不怕一万就怕万一啊!后面的话我不说了,免得你说我咒你!

现网环境也是一样,就算这个设备的静态路由都要重分发进OSPF,但哪天这个网络里面有演练需求或者是测试需求,需要暂时写两条测试用的静态路由呢?这个静态路由只需要这台设备能通即可,你这时候有重分发,又没过滤,是不是就把这条测试用的路由散发进全网了呢?还有,如果这台设备上有往动态路由内部写的静态路由呢?

2

动态路由双向重分发时

下面再看 一下动态路由相互重分发的时候,需要注意哪些问题呢?

在当前的网络环境中,尤其是,为了提升业务的实时性,都会考虑到设置冗余设备。一般作为边界的设备也会使用两个:

MAP

双点双向重分发其实是一种隐患很大的操作,如果直接在两个ASBR上做双向重分发的操作且不带任何控制的话,次优路由的出现是难免的。怎么说呢?

先来看一下次优路由是怎么产生的,下图是一个RIP和OSPF双向重分发的情景:

MAP

MAP

在这个场景内,你把OSPF外部路由的AD值调整到180,让OSPF外部路由的AD值大于RIP的120的AD值,这是不是就完全能解决问题了呢?

其实也不尽然,因为你“敞着”让OSPF和RIP之间的路由相互重分发,则完全有条件让一条路由重分发进OSPF后,再次重分发到RIP内。这种情况路由从在ASBR-1上由A重分发进B,再从ASBR-2上由B再重分发到A,在有BGP存在重分发的情景下100%会存在。所以,在双点双向重分发时,还需要防的就是上述情况。

防止的方式也不难,在OSPF和RIP相互重分发的时候,OSPF进RIP后,带TAG 10,再让RIP重分发进OSPF的时候拒绝带TAG 10的路由;反过来,RIP进OSPF后,带TAG 20,再让OSPF重分发进RIP的时候拒绝带TAG 20的路由。

落地到配置命令上,就是这样(上面是思科系列,下面是华为/H3C):

对任何双向重分发的路由都适用

MAP

在实际的网络环境中,对于路由双点双向重分发时,也可能兼顾着路由聚合与分流。为了减少次优路径的风险,在实际的双点双向重分发时,只有一个方向是直接重分发的,而另一个方向则是采用Null0的大段静态路由进行重分发。

MAP

3

根据场景调整重分发方案

具体到现网的场景中,又该如何确定重分发的操作方案呢?

场景一:A、B路由都不是BGP,若A路由协议位于核心位置,B路由位于分支位置(B内有连续的子网),则A重分发进B可以直接重分发,记得把B路由的AD值调大。而A则重分发含有B的Null0静态路由

MAP

落地到配置命令上,就使用如下的配置命令(命令展示Cisco的配置命令。设路由协议A是OSPF 100,路由协议B是OSPF 50)

MAP

场景二,若路由A为BGP,路由B为IGP,则可以把BGP重分发进IGP。对IGP所在域的路由聚合后写成Null0的静态路由。再使用network命令发布到BGP内。

MAP

MAP

场景三,若A、B路由都不是BGP,且A、B路由协议域内的地位相当(都是骨干融合),则看A、B路由域谁的路由更容易聚合。若路由A内的路由是连续子网,而B内较为离散。则考虑将A的AD值或Pref数值调大,直接重分发B进A。而B则重分发Null0路由。

MAP

MAP

如果说A、B内的路由都非常离散,怎么办呢?那也只能用之前说的,A、B都直接重分发,但带上TAG进行过滤,防止由A重分发进B的路由,被再次重分发进A内了。






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分