场景分析1:当市场部与财务部都要访问公司总部
此时,在B,C上做双点双向路由引入
当OSPF引入到RIP时。针对C来说,可以从OSPF 及RIP中学习到3.0的路由,而从OSFP学到的优先级10,从rip学习到的优先级60,故走OSPFA到3.0,此时没有问题。
当RIP引入到OSPF时。针对C来说,可以从RIP及OSPF中学习到总部路由,通过RIP学习到的优先级60,而从OSPF学习到的为150(OSPF外部路由优先级为150),C访问公司总部通过RIP到D,此时也没有问题。
场景分析2:
ISIS的路由引入到RIP中时,针对B来说,可以通过ISIS,RIP学习到A的路由,通过isis学习到的优先级为15,而通过RIP学习到的优先级为60,此时也没问题。
RIP的路由引入到ISIS中时,针对B来说,可以通过ISIS,RIP学习到D的路由,通过ISIS学习到的优先级15,通过自身直连D学习到的优先级为60,此时,B去往2.2.2.2会走优先级高的ISIS ,即B--A---C---D---2.2.2.2,此时存在次优路径的问题。
总结:当高数值优先级的路由协议引入低数值优先级的路由协议时,会存在次优路径的问题(引入到OSPF时,OSPF机制为外部路由优先级为150,所以只要本地路由优先级低于150时,就不会产生次优路径)
注:以上为单向引入
解决方案:1.可以通过路由过滤的方式来拒绝引入进来的次优路由。2.通过修改路由优先级的方式
1.通过路由过滤实现解决次优路径
分析:当在AR2上做路由引入,将RIP路由引入到ISIS中时,会出现次有路径的问题,4.4.4.4到AR2引入到ISIS优先级为15,AR3通过ISIS学习到4.4.4.4时携带的路由优先级为15,而AR3通过RIP学习到4.4.4.4路由优先级为60.所以我们在AR3上做路由过滤将4.4.4.4的流量在ISIS进程中拒绝掉。同上·,AR2也会学习到由AR3引入的4.4.4.4的路由,所以AR2,AR3都要拒绝。
配置:
AR3
Basic ACL 2000, 2 rules
rule 5 deny source 4.4.4.4 0 (1 matches)
rule 100 permit (4 matches)
[AR3-isis-1]filter-policy 2000 import
AR2同上
2.通过修改协议优先级的方式避免次优路径,场景同上。
分析:将4.4.4.4这边的路由引入到ISIS中,可以在引入的时候将这些路由打上tag标识,并更改路由优先级。而ISIS默认不带tag,所以要将ISIS的度量改为宽度量。
AR2
[AR2-isis-1]import-route rip tag 100 //将引入到ISIS的rip路由打上100的tag
[AR2-isis-1]cost-style wide //将ISIS的度量计算改为宽度量
AR1
[AR1-isis-1]cost-style wide ///都要改,不然无法计算
AR3
[AR3-isis-1]cost-style wide
[AR3]route-policy PER permit node 10 ////创建一个route-policy
[AR3-route-policy]if-match tag 100 //匹配tag值为100的路由
[AR3-route-policy]apply preference 150 ///将tag值为100的路由优先级改为150
[AR3-isis-1]preference route-policy PER //将这个路由策略应用到路由协议中
验证:
4.4.4.4/32 ISIS-L2 15 20 D 10.0.13.1 GigabitEthernet
0/0/0 ///修改前
4.4.4.4/32 RIP 100 1 D 34.1.1.4 GigabitEthernet
0/0/1 ///修改后
AR2同上。
场景分析3:此场景依旧是单向引入,不过外部路由携带的cost为2
此时RTA连接一个2.2.2.2的直连网络,将2.2.2.2引入到ospf进程中。----到RTB时,由于是OSPF外部路由,所以2.2.2.2的cost为150----RTB有两条链路,分别给TRC,,RTE传递该路由,RTC学习到2.2.22优先级为150 ,E学习到2。2.2.2为150。E会继续向ISIS区域传递,C通过ISIS学习到优先级为15,OSPF学习到优先级150。对于C来说去2.2.2.2会走ISIS的路径,存在次有路径。而C继续会将ISIS的2.2.22传递到OSPF,B学习到该路由优先级为150,cost为1。此时,对于B来说,去往2.2.2.2优选cost小的,B-C-D-E-B,产生环路
解决方案:
1.利用路由过滤避免路由环路
TRC:
acl 2000
rule deny s 2.2.2.2 0
rule permit ///创建acl拒绝2.2.2.2的流量
route-policy deny4 permit node 10
if-match acl 2000 //创建路由策略匹配拒绝2.2.2.2的acl
ospf 1
import-route isis 1 route-policy deny4 //在ospf中引入isis的路由的时候拒绝2.2.2.2的路由
缺点:不利于扩展,当RTA接入其他网段时,都要在acl中拒绝。而此方式只防止了路由环路,次有路径仍然存在
2.调整协议优先级避免路由环路
思路:在TRC上讲ISIS的路由优先级改为160,4.4.4.4通过TRE引入到ISIS中后,优先级为160,而TRC学习到的4.4.4.4为150,所以不会加表,路由引入时就不会引入到OSPF中。解决了C访问4.4.4.4的问题。
但是,在RTD上如果另外有一条网段9,9到TRE的优先级为160执行路由引入OSPF中。优先级150,到TRC优先级150。此时仍存在次优路径的问题,可能导致环路。
3.在RTA引入外部路由的时候打上tag,不允许携带tag的路由再回到OSPF中
步骤一:在AR5上将引入进来的tag改1000
[AR5-ospf-1]import-route direct tag 1000
步骤二:在AR3上讲打上tag的路由优先级改为10
route-policy 50.1 permit node 10
if-match tag 1000
apply preference 10
#
[AR3-ospf-1]preference ase route-policy 50.1 //此处加上ase是针对外部路由来修改
AR2同上
综合双点双向实验:多点双向引入
分析问题:若只是双向引入,不带任何策略
该环境下,AR1 ,AR4出现的问题为cost的问题,AR2 AR3出现的问题为路由优先级问题
针对AR1来说,去往50.1,分析路径。50.1被引入OSPF,协议优先级为150,cost2到AR1。AR2 ,AR3分别接接受,分别引入到ISIS中,优先级为15,cost1,最后由AR4学习到,分别又传递给AR2,AR3,优先级15,cost2,由于AR2,AR3从ISIS中学到的更优,所以加表,而AR2 3 又会将该路由传递给AR1,AR1从 2 , 3 学习到的50.1 协议优先级150,cost1 ,比原始 AR5得到的cost更优,故流量负载给AR2 ,AR3就是不走正确的AR5,此时AR1去往50.1产生路由环路。
AR4同上,去往50.1必环路。而去往12网段,由于AR2 AR3分别都做引入操作,所以对于AR4来说,去往12网段从AR2 AR3学习到的cost相同,此时负载分担,但是明显走上更优,所以此时也会产生次优路径的问题。AR1同。
针对AR3来说。去往50.1同样环路。而去往24网段的话,笔者本来以为也会出问题。但是由于OSPF设计机制的巧妙,外部路由优先级为150,所以并不存在次优路径。但是如果使用别的路由协议,肯定是会出现次有路径的问题。
解决方案1:针对次优路径产生的问题,可以在引入的时候改cost,4去往12走上面优,就将其他路由,如13 15 在2上引入时候cost改大。结果为:13在2上引入cost改为5,而原生由3引入的cost为1,所以4去往13选cost小的3,此为最优路径。而去往12,时,依旧负载,所以还要在3上将12引入时cost改大。此时次优路径问题可以解决。
配置:
AR2
[AR2]ip ip-prefix 12 permit 10.0.12.0 24
[AR2]route-policy costB permit no 10
[AR2-route-policy]if-match ip-prefix 12
[AR2-route-policy]route-p costB PER NO 20
[AR2-route-policy]apply cost 5
[AR2-isis-1]import-route ospf route-policy costB
含义:将12匹配出来直接引入,其他所有路由在引入时cost为5,即12优选该路由器
AR3
[AR3]ip ip-prefix 12 permit 10.0.12.0 24
[AR3]route-policy COSTB permit NO 10
[AR3-route-policy]if-match ip-prefix 12
[AR3-route-policy]apply cost 5
[AR3-route-policy]ROUTE-PO COSTB PER NO 20
[AR3-isis-1]import-route ospf route-policy COSTB
含义:将12匹配出来在引入时cost为5,其他保持不变,即其他路由优选本路由器.cost最好改为2
以上配置解决了ISIS内的次优路径问题,OSPF内依旧存在次优,接下来配置ISIS路由引入到OSPF内修改cost
配置与上大同小异。
此时解决了AR1,4的次优路径问题,而关于50.1的次优路径问题,再引入的时候改优先级.
解决方案二:互打tag拒绝引入
思路:理解层面
针对AR3中OSPF引入到ISIS的路由打上100的tag,然后在AR2上拒绝从ISIS引入OSPF带tag100的路由
针对AR3中ISIS引入到OSPF的路由打上150的tag,然后再AR2上拒绝从OSPF引入ISIS带tag150的路由
针对AR2中OSPF引入到ISIS的路由打上200的tag,然后再AR3上拒绝从isis引入ospf带tag200的路由
针对AR2中isis引入到ospf的路由打上250的tag,然后在AR3上拒绝ospf引入isis带tag250的路由
配置层面:
上面OSPF--ISIS 在AR2上允许OSPF引入到ISIS中,引入的路由打上tag200, ISIS--OSPF拒绝掉AR3从ISIS引入到OSPF的路由tag300
下面 ISIS--OSPF 在AR3上允许ISIS引入到OSPF中引入的路由打上tag300, OSPF--ISIS 拒绝掉AR2从OSPF引入到ISIS的路由tag200
注,上方配置拒绝语句在前,允许在后。如果允许语句在前,则所有的路由都会被打上tag,拒绝语句无匹配的tag。以上为单向配置思路,双向逆转即可。
上面ISIS -ospf 在AR2上允许ISIS 引入到OSPF中引入时打上tag400, OSPF--ISIS 拒绝掉AR从ospf 引入到ISIS的路由 tag100
下面 OSPF-ISIS 在AR3上允许OSPF引入到ISIS引入时打上tag100 ,ISIS --OSPF 拒绝掉打上400的tag
AR2
route-policy OSPF2ISIS deny node 10
if-match tag 300
#
route-policy OSPF2ISIS permit node 20
apply tag 200
AR3
#
route-policy ISIS2OSPF deny node 10
if-match tag 200
#
route-policy ISIS2OSPF permit node 20
apply tag 300
其余配置自己看着配