3.1.0 如何使用路由策略解决 ISIS与OSPF双点双向产生的次优路径、环路隐患
一、双点双向中的次优路径解决方法
双点双向中由于默认路由优先级造成次优路径的产生,而解决的方法就是修改路由优先级。
双点双向错误的解决方法
关于修改路由优先级,需要注意的是需要指定修改特定的路由,而不是直接修改所有的OSPF外部路由优先级为12。
假设修改OSPF外部路由优先级为12,那么AR2将AR4的4.254路由引入OSPF之后,就会造成AR4出现环路的风险。
【实验】双点双向正确的解决方法
(1)先匹配出指定路由
[AR2]acl 2000
[AR2-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[AR2-acl-basic-2000]q
(2)创建策略修改路由优先级
# 匹配特定路由修改优先级为12
[AR2]route-policy chage_pri12 permit node 5
[AR2-route-policy]if-match acl 2000
[AR2-route-policy]apply preference 12
[AR2-route-policy]q
# 其它路由不修改优先级
[AR2]route-policy chage_pri12 permit node 10
[AR2-route-policy]q
(3)应用在OSPF的外部路由优先级修改上
[AR2]ospf 1
[AR2-ospf-1]preference ase route-policy chage_pri12
疑惑点:为什么不是直接在AR1上对引入的路由修改路由优先级?
答:路由优先级的修改只会在本身设备生效,不会传递到其它设备。
(4)以上操作在AR2、AR3上操作应用
(5)再次检查路由表信息
AR2,仅截取主要部分。
[AR2]dis ip routing-table
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 O_ASE 12 1 D 10.1.12.1 GigabitEthernet0/0/0
192.168.4.0/24 ISIS-L2 15 74 D 10.1.24.4 GigabitEthernet0/0/1
AR3,仅截取主要部分。
[AR3]dis ip routing-table
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 O_ASE 12 1 D 10.1.13.1 GigabitEthernet0/0/0
192.168.4.0/24 ISIS-L2 15 74 D 10.1.34.4 GigabitEthernet0/0/1
AR4,仅截取主要部分。
存在次优路由之前,AR4只能通过先进行双向引入的路由器为下一跳。
现在次优路径解决AR4就能正常走两条通道了。
<AR4>display ip routing-table protocol isis
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 ISIS-L2 15 74 D 10.1.24.2 GigabitEthernet0/0/0
ISIS-L2 15 74 D 10.1.34.3 GigabitEthernet0/0/1
二、双点双向中的环路风险解决方法
环路产生的原因
起初由于AR3出现次优路径,使用AR4传来去往192.168.1.0的ISIS路由。
后继AR3将学习到的ISIS路由引入到OSPF中,造成环路风险隐患产生,当AR1的环回口断开就是真正的环路。
对于这个OSPF与ISIS的环境来说,当应用上面的技术解决了次优路径问题之后,会发现AR3上只存在一条正确去往1.0的路由了。
因为路由优先级的原因,AR3不使用AR4传来1.0的ISIS路由,故不会将错误的ISIS路由引入到OSPF造成环路隐患。
但环路真的消失了吗?
没有消失,当AR1的1.0断开,AR3将使用AR4传来的1.0路由,并重新把1.0的路由引入到OSPF中。
没有了1.0的AR1就会使用AR3传来的路由,并重新通告AR2。为此环路重新产生。
不同环境,不同的次优路径与环路风险问题
另一种双点双向产生次优与环路风险的环境
如以下图环境,不仅存在次优路径的问题,还存在环路风险:
1、由于引入的外部路由开销类型默认为2(Type2类型的外部路由开销只计算ASBR到外部路由之间的开销)
故OSPF引入的外部路由到哪,其开销都不会改变。
2、以及,由于内外网的OSPF路由优先级都是一样的,不管是修改哪一个进程下的路由优先级,都会造成次优路径的产生。
如:修改进程1外部优先级为140,那么对于AR4来说,访问自己的Lop0网络走AR2/AR3更优先。
3、由于次优路径原因,AR2访问192.168.1.0的时候可能走AR1,也可能走AR4,为此这个网络中就会存在一个环路概率。
环路的解决思路
环路产生的根本就是路由的重复引入,如果能够控制引出走的路由不会再被引入,就能够解决问题。
为此,我们需要使用到OSPF、ISIS中都具备的路由属性:Tag标记。
解决思路:以上面两个OSPF进程双向引入为例。
(1)解决AR2将进程1引入进程2时,防止AR3又将进程1的路由引入回进程1
1、AR2将进程1路由引入进程2时,对进程1的路由打上Tag1。
2、AR3将进程2路由引入进程1时,先拒绝引入打上Tag1的路由,再进行引入其它路由。
(2)同样,解决AR3将进程1引入进程2时,防止AR2将进程1的路由引入回进程1
1、AR3将进程1路由引入进程2时,对进程1的路由打上Tag1。
2、AR2将进程2路由引入进程1时,先拒绝引入打上Tag1的路由,再进行引入其它路由。
(3)以上,只能实现了进程1引入进程2时,所需要进行的过滤路由操作。
1、同样的,还需要进行将进程2引入进程1时进行路由过滤。
2、逻辑都是一样的,AR2引入路由后,AR3就进行过滤。反过来也就是。
(4)不出意外,你已经被绕晕了,最后就是总结:
(5)还是看不懂?跟着流量走一下吧。
【实验】环路的解决方法之1Tag
关于应用Tag解决双点双向环路的方法,有1tag、2tag、4tag等方式。
嘶,1tag都能解决了,为什么还需要有这么多的tag呢?
单Tag也能解决双点双向环路问题,但单个Tag不方便后期的路由控制和管理。
多个Tag,对于核心设备来说可以通过router-policy对不同的Tag路由进行控制管理。
如何将逻辑落实到路由策略配置上呢?
首先AR1、AR2、AR3为进程1,AR2、AR3、AR4为进程2。
AR1、AR4均引入自己的环回口网络。
AR2、AR3上进行双点双向的路由引入操作。
次优路径与环路情况:
1、AR1上能看到AR4外部路由,与自己引入的外部路由。
<AR1>dis ospf routing
192.168.1.0/24 1 Type2 1 10.1.12.2 10.1.12.2
192.168.1.0/24 1 Type2 1 10.1.13.3 10.1.13.3
192.168.4.0/24 1 Type2 1 10.1.12.2 10.1.12.2
192.168.4.0/24 1 Type2 1 10.1.13.3 10.1.13.3
2、AR4上也能看到AR1外部路由,与自己引入的外部路由。
<AR4>display ospf routing
192.168.1.0/24 1 Type2 1 10.1.24.2 10.1.12.2
192.168.1.0/24 1 Type2 1 10.1.34.3 10.1.13.3
192.168.4.0/24 1 Type2 1 10.1.24.2 10.1.12.2
192.168.4.0/24 1 Type2 1 10.1.34.3 10.1.13.3
(1)创建路由策略,先过滤Tag路由再对引入的路由打上tag
AR2与AR3相同操作,打上的Tag,不能是默认的Tag1,否则会出现问题。
# 拒绝接收Tag1的路由
[AR2]route-policy ospf-ggkh deny node 5
[AR2-route-policy]if-match tag 10
[AR2-route-policy]q
# 匹配其它路由,打上Tag1
[AR2]route-policy ospf-ggkh permit node 10
[AR2-route-policy]apply tag 10
[AR2-route-policy]q
(2)将策略应用在路由协议双向引入上
AR2与AR3相同操作
[AR2]ospf 1
[AR2-ospf-1]import-route ospf 2 route-policy ospf-ggkh
[AR2]ospf 2
[AR2-ospf-1]import-route ospf 1 route-policy ospf-ggkh
(3)观看现象
AR1、AR4上再次观看OSPF路由表,可以看到没有了自己的环回网络了。
<AR1>display ospf routing
Destination Cost Type Tag NextHop AdvRouter
192.168.4.0/24 1 Type2 10 10.1.12.2 10.1.12.2
192.168.4.0/24 1 Type2 10 10.1.13.3 10.1.13.3
<AR4>display ospf routing
Destination Cost Type Tag NextHop AdvRouter
192.168.1.0/24 1 Type2 10 10.1.24.2 10.1.12.2
192.168.1.0/24 1 Type2 10 10.1.34.3 10.1.13.3
看似AR1、AR4上都没有了环路的可能了。那么是否还存在次优路径呢?
在AR2、AR3上观看OSPF路由表,可以看到次优路径的问题并没有得到解决。
原因是什么呢?
其一:虽然路由策略实现了路由过滤,但ASBR本身还是会学习到传来的路由,但不会引入而已。
其二:因为OSPF外部路由默认是Type2类型,其路由开销传递过程中不会改变。
所以导致AR2从AR1与AR4上学习到去往OSPF外部路由的优先级都是一样的。
[AR2]display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 O_ASE 150 1 D 10.1.12.1 GigabitEthernet0/0/0
O_ASE 150 1 D 10.1.24.4 GigabitEthernet0/0/1
192.168.4.0/24 O_ASE 150 1 D 10.1.24.4 GigabitEthernet0/0/1
O_ASE 150 1 D 10.1.12.1 GigabitEthernet0/0/0
<AR3>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 O_ASE 150 1 D 10.1.13.1 GigabitEthernet0/0/0
O_ASE 150 1 D 10.1.34.4 GigabitEthernet0/0/1
192.168.4.0/24 O_ASE 150 1 D 10.1.34.4 GigabitEthernet0/0/1
O_ASE 150 1 D 10.1.13.1 GigabitEthernet0/0/0
如何解决次优问题呢?
(1)既然是开销的问题,那么可以在AR1上设置引入的时候开销类型为Type1即可。
唉?不仅在AR1上调整开销为Type1,AR23也需要调整?
因为AR23也进行了路由的引入操作,也默认引入了开销类型为2。
[AR1]ospf 1
[AR1-ospf-1]import-route direct type 1
[AR1]ospf 1
[AR1-ospf-1]import-route ospf 2 type 1 route-policy ospf-ggkh
[AR1]ospf 2
[AR1-ospf-2]import-route ospf 1 type 1 route-policy ospf-ggkh
[AR4]ospf 1
[AR4-ospf-1]import-route direct type 1
[AR2]ospf 1
[AR2-ospf-1]import-route ospf 2 type 1 route-policy ospf-ggkh
[AR2]ospf 2
[AR2-ospf-2]import-route ospf 1 type 1 route-policy ospf-ggkh
(2)上面的麻烦,也可以通过调整路由实际开销的方式解决。
当进程1引入进程2的时候,对进程1无标签的路由开销调大,这样另一端学习到的进程1路由开销就会很高。
这样就只会选择本进程的路由。
AR2与AR3同样操作,在之前的路由策略中打tag的node10策略增加开销。
# 拒绝接收Tag1的路由
[AR2]route-policy ospf-ggkh deny node 5
[AR2-route-policy]if-match tag 10
[AR2-route-policy]q
# 匹配其它路由,打上Tag1
[AR2]route-policy ospf-ggkh permit node 10
[AR2-route-policy]apply tag 10
# 增加路由开销100
[AR2-route-policy]apply cost 100
[AR2-route-policy]q
再次查看AR2的路由表信息,<Actice>表,表示的是活动的路由,可以看到192.168.1.0的Cost开销为1。
而再看<Inactive>不活动表,192.168.1.0的Cost开销为100,是AR4传来的。
所以通过这种方式更便捷的解决了次优路径问题。
<AR2>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 6 Routes : 10
OSPF routing table status : <Active>
Destinations : 4 Routes : 4
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 O_ASE 150 1 D 10.1.12.1 GigabitEthernet0/0/0
192.168.4.0/24 O_ASE 150 1 D 10.1.24.4 GigabitEthernet0/0/1
OSPF routing table status : <Inactive>
Destinations : 6 Routes : 6
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 O_ASE 150 100 10.1.24.4 GigabitEthernet0/0/1
192.168.4.0/24 O_ASE 150 100 10.1.12.1 GigabitEthernet0/0/0
三、双点双向次优路径、环路风险配置总结
OSPF与ISIS环境:
1、次优路径产生原因:路由优先级问题。
1.1、解决方法:在进行双向引入的路由设备上,修改指定的OSPF外部路由优先级小于ISIS优先级15即可。
2、产生环路风险原因:路由重复引入。
2.1、解决方法:通过路由策略打tag 的方式解决重复引入。
3、完整解决的配置命令(AR2与AR3均是相同操作):
由于OSPF与ISIS环境中解决了次优路径之后不会存在环路风险,故只贴出解决次优配置。
(1)先匹配出指定路由
[AR2]acl 2000
[AR2-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[AR2-acl-basic-2000]q
(2)创建策略修改路由优先级
# 匹配特定路由修改优先级为12
[AR2]route-policy chage_pri12 permit node 5
[AR2-route-policy]if-match acl 2000
[AR2-route-policy]apply preference 12
[AR2-route-policy]q
# 其它路由不修改优先级
[AR2]route-policy chage_pri12 permit node 10
[AR2-route-policy]q
(3)应用在OSPF的外部路由优先级修改上
[AR2]ospf 1
[AR2-ospf-1]preference ase route-policy chage_pri12
OSPF与OSPF环境:
1、次优路径产生原因:路由开销类型问题。
1.1、解决方法:(1)修改引入的开销类型(2)在双向引入的路由设备上,修改发布到其它路由协议的路由开销值。
2、产生环路风险原因:路由重复引入。
2.1、解决方法:通过路由策略打tag 的方式解决重复引入。
3、完整解决的配置命令(AR2与AR3均是相同操作):
(1)创建路由策略,先过滤Tag路由再对引入的路由打上tag
# 拒绝接收Tag1的路由
[AR2]route-policy ospf-ggkh deny node 5
[AR2-route-policy]if-match tag 10
[AR2-route-policy]q
# 匹配其它路由,打上Tag1并修改开销为100
[AR2]route-policy ospf-ggkh permit node 10
[AR2-route-policy]apply tag 10
[AR2-route-policy]apply cost 100
[AR2-route-policy]q
(2)将策略应用在路由协议双向引入上
[AR2]ospf 1
[AR2-ospf-1]import-route ospf 2 route-policy ospf-ggkh
[AR2]ospf 2
[AR2-ospf-1]import-route ospf 1 route-policy ospf-ggkh
略,先过滤Tag路由再对引入的路由打上tag
拒绝接收Tag1的路由
[AR2]route-policy ospf-ggkh deny node 5
[AR2-route-policy]if-match tag 10
[AR2-route-policy]q
匹配其它路由,打上Tag1并修改开销为100
[AR2]route-policy ospf-ggkh permit node 10
[AR2-route-policy]apply tag 10
[AR2-route-policy]apply cost 100
[AR2-route-policy]q
(2)将策略应用在路由协议双向引入上
[AR2]ospf 1
[AR2-ospf-1]import-route ospf 2 route-policy ospf-ggkh
[AR2]ospf 2
[AR2-ospf-1]import-route ospf 1 route-policy ospf-ggkh