标题所示,均为同一样东西,均为了解决一个相同的问题:多路由协议多进程之间的路由共享。
在现在越来越复杂的组网环境下,出现需要将多个协议进行联通的需求是在常见不过了。显然这其中会遇到的问题不在少数。(迷糊本人了属于是),今天就借着比赛的名义把它搞搞清除。以下均使用重发布来称呼这个技术
什么是重发布?
在一个网络中,若运行多种路由协议,或者相同协议的不同进程。协议之间不能直接沟通计算,进程间也是独立转发和运算,故需要使用重发布计算来实现路由共享
条件:
1.必须存在ASBR(自治系统边界路由器,协议边界路由器-就是跑了好几个协议的内个设备)
2.种子度量 - 起始度量 A协议和B协议的度量计算逻辑不同,无法直接使用对方的度量(例如在RIP协议中的度量是指跳数,而OSPF协议中是指接口带宽/参考带宽的数值),故在将A协议发布到B协议时,ASBR将不携带A协议的度量值到B协议,而是在共享到B协议时,由ASBR设备在路由中添加一个起始度量值之后B协议可以基于起始度量值叠加内部度量
规则:
1.将A协议发布到B协议中时,在ASBR上的B协议中配置
2.将A协议发布到B协议时,是将ASBR上所有通过A协议学习,以及ASBR上宣告在A协议的所有只来你路由,全部共享到B协议中
重发布的分类
这里对于重发的分类使用以下几个名词:
两个进程之间或两个协议之间共有ASBR的数量:单点、双点、多点
重发布的方向:单向(仅将A协议路由共享到B协议)、双向(AB互相共享路由信息到彼此之间)
那么就有以下一种重发布类型:
单点单向、单点双向、双点单向、双点双向、多点单向、多点双向
单点单向重发布的配置
这里有3中共享方式:
方向 | 介绍 |
---|---|
A–>B | 一种动态路由共享到另一种动态路由 |
静态–>B | 将ASBR上的静态路由共享到一种动态路由协议中 |
直连—>B | 将ASBR上的未宣告到B协议中的直连路由,共享到B协议中 |
这里的配置就以华为的模拟器为例:其拓扑图如下
注意这里的R1/R2/R3/R4分别有对应各自的环回地址,R2的地址不进行宣告。配置如下
1.底层IP地址
R1
G0/0/0 | 12.1.1.1/24 |
---|---|
LOOP0 | 1.1.1.1/32 |
R2
G0/0/0 | 12.1.1.2/24 |
---|---|
G0/0/1 | 23.1.1.1/24 |
G0/0/2 | 34.1.1.1/24 |
LOOP0 | 2.2.2.2/32 |
R3
G0/0/1 | 23.1.1.2/24 |
---|---|
LOOP0 | 3.3.3.3/32 |
R4
G0/0/3 | 34.1.1.2/24 |
---|---|
LOOP0 | 4.4.4.4/32 |
2.路由配置
[R1]rip 1
[R1-rip-1]version 2
[R1-rip-1]undo summary
[R1-rip-1]network 12.0.0.0
[R1-rip-1]network 1.0.0.0
[R2]rip 1
[R2-rip-1]version 2
[R2-rip-1]undo summary
[R2-rip-1]network 12.0.0.0
[R2]ospf 1
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 23.1.1.1 0.0.0.0
[R2]ospf 2
[R2-ospf-2]area 0
[R2-ospf-2-area-0.0.0.0]network 24.1.1.1 0.0.0.0
[R3]ospf 1
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 23.1.1.2 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R4]ospf 1
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 24.1.1.2 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
RIP的配置
A–>B
[R2-rip-1]import-route ospf 1
查看路由表:
修改种子度量试试:
[R2-rip-1]import-route ospf 1 cost 2
静态–>B
#1.添加两条静态路由进去
[R2]ip route-static 0.0.0.0 0 LoopBack 0
[R2]ip route-static 125.2.2.5 24 LoopBack 0
#2.引入静态
[R2-rip-1]import-route static
查看路由
可以看到,仅仅导入了静态路由中的普通路由,缺省路由并未被导入
直连–>B
[R2-rip-1]import-route direct cost 5
查看路由:
从这里我们可以看出来,尽管先前已经从OSPF1中导入了路由信息,此处的直连23.1.1.0依旧会被导入进来,并且被强行优选。
即就是:若ASBR进行了A->B协议的重发布,同时进行了直连路由的重发布,优选直连重发布。
OSPF的配置
A–>B
[R2-ospf-1]import-route rip
#修改种子度量(默认1)
[R2-ospf-1]import-route rip cost ?
INTEGER<0-16777214> 24-bit cost value
#修改类型
[R2-ospf-1]import-route rip type ?
INTEGER<1-2> Type value
默认导入路由为5类LSA类型2,仅显示种子度量,不显示内部叠加度量,选路时先比较类型,1类优于2类,若均为类型2则比较种子度量,种子度量一致在比较总度量。
静态–>B
[R2-ospf-1]import-route static type ?
INTEGER<1-2> Type value
[R2-ospf-1]import-route static cost ?
INTEGER<0-16777214> 24-bit cost value
不导入静态缺省
直连–>B
[R2-ospf-1]import-route direct cost ?
INTEGER<0-16777214> 24-bit cost value
[R2-ospf-1]import-route direct ty
[R2-ospf-1]import-route direct type ?
INTEGER<1-2> Type value
注:这里直连的优先级仍然大于其它重发布进来的路由
两张拓扑引发的惨案
拓扑1
两个问题:
1.如何实现全网互通?
2.RIP引入OSPF2,OSPF2再次引入到OSPF1内部,求问,RIP的路由信息是否会出现在4上?
A1:在R2上对三个进程进行两两之间的双向重发布
A2:由于重发布的规则,重发布在ASBR进行,此时操作的参考对象是在ASBR上运行的各个进程/协议生成的活动的本地路由信息,不是区域内的其他路由器的信息。故在进行OSPF2导入OSPF1时,仅仅是将直连和环回导入进去,并不包括所谓R3学习到的R1的相关路由信息(整个导入与R3无关,因为R3并不执行导入路由信息这个动作)
拓扑2
Q:继续将RIP发布到OSPF内,再将OSPF向右发布到EIGRP内部,是否可以看到RIP的路由信息?
A:可以,因为R4进行重发布时,参照的OSPF路由表内RIP协议学习到的所有路由均以OSPFtype2的形式存在于OSPF路由表内部。故可以在EIGRP内部看到RIP协议的路由信息。
多点双向重分发布
1.经典的路由回馈的问题
在此图中,RIP和OSPF的ASBR为R2和R3,2的环回被导入到OSPF之后,协议优先级为10,会被传递到R3,经过对比,协议优先级10大于先前的RIP中的100,active该路由,进行加表,此时又要进行双向重发布,作为活跃路由的环回则又被发布到RIP中去,刷新cost为1,于1-2之间的cost1对于R1形成等开销负载均衡,造成R1的选路不佳。这就是路由回馈。
思科的EIGRP协议对于从外部导入的路由会为其单独设置新的协议优先级为170使其无法在回馈的过程中被ASBR优选,从根本上解决了路由回馈,华为等厂商在此基础上对OSPF协议进行了优化,将5/7类域外路由优先级设置为了150,解决了路由回馈
注:
路由回馈的定义-某协议的路由重新发布到另一个协议内部之后,又被边界ASBR优先,再次给发布回来,导致选路不佳
从上面的分析中,虽然路由回馈被解决掉了。但是对于多点双向重发布来说,会清洗掉路由先前的属性,对于被导入区域形成选路屏障,导致选路不佳。故,要进行双向多点重发布时一定需要辅助以策略路由进行精确的选路控制。方才能保障网络的选路优秀。