场景介绍:AR1、AR2、AR3、AR5运行OSPF协议,区域ID为0,AR1、AR2、AR4之间运行IS-IS协议,使用Level-2区域。
AR5将自己的Loopback0接口做为外部路由引入到OSPF区域中
步骤一:在AR1上做双向引入后的结果:
观察AR2的路由表如下:
根据上图得知,AR2上访问5.5.5.5是通过IS-IS协议,访问路径为AR2->AR4->AR1->AR3->AR5。这个时候是次优路径,并且可以正常访问。
步骤二:在AR2上也同样做双向引入
观察AR3的路由表:
根据AR3的路由表得知,AR3可以学习到两条5.5.5.5的路由,并且分别从AR5和AR2学习到的。其中一条AR5引入到OSPF中学习,AR2的是通过IS-IS区域引入OSPF产生。并且AR3上存在两条5.5.5.5的路由,发生了路由回灌的现象,AR2将从IS-IS学习到的5.5.5.5的路由又通告回了OSPF区域中,因此AR3上存在两条5.5.5.5的路由。
如果此时AR5发生故障,则会产生临时环路。
AR2和AR3的路由表:
此时访问5.5.5.5,则发生环路。如AR2访问5.5.5.5路径为AR4->AR1->AR3->AR2-AR4->AR1->AR3如此反复下去。
环路的解决方式(扩展性最好的方式):
通过Tag方式解决:
AR1,OSPF引入IS-IS的时候打上TAG=100
AR1,IS-IS引入OSPF的时候打上TAG=200
AR2,OSPF引入IS-IS的时候打上TAG=300
AR2,IS-IS引入OSPF的时候打上TAG=400
操作步骤:
在AR1上,将OSPF引入到IS-IS的时候,deny掉TAG=400,打上TAG=100
在AR1上,将IS-IS引入到OSPF的时候,deny掉TAG=300,打上TAG=200
在AR2上,将OSPF引入到IS-IS的时候,deny掉TAG=200,打上TAG=300
在AR2上,将IS-IS引入到OSPF的时候,deny掉TAG=100,打上TAG=400
并且需要修改AR1和AR2上的OSPF外部路由的开销是,修改比IS-IS协议优先级更优,比如修改为10,这里解决次优路径的问题。
在AR1上针对TAG=400的路由做OSPF外部优先级的修改,也就是AR2从IS-IS引入到OSPF的路由
在AR2上针对TAG=200的路由做OSPF外部优先级的修改,也就是AR1从IS-IS引入到OSPF的路由
配置脚本如下:
AR1:
route-policy ospf_isis deny node 10
if-match tag 400
#
route-policy ospf_isis permit node 20
apply tag 100
#
route-policy isis_ospf deny node 10
if-match tag 300
#
route-policy isis_ospf permit node 20
apply tag 200
#
route-policy ospf_pref permit node 10
if-match tag 400
apply preference 150
#
ospf 1 router-id 1.1.1.1
import-route isis 1 route-policy isis_ospf
preference ase route-policy ospf_pref 10
#
isis 1
import-route ospf 1 route-policy ospf_isis
AR2:
#
route-policy ospf_isis deny node 10
if-match tag 200
#
route-policy ospf_isis permit node 20
apply tag 300
#
route-policy isis_ospf deny node 10
if-match tag 100
#
route-policy isis_ospf permit node 20
apply tag 400
#
route-policy ospf_pref permit node 10
if-match tag 200
apply preference 150
#
ospf 1 router-id 2.2.2.2
import-route isis 1 route-policy isis_ospf
preference ase route-policy ospf_pref 10
#
isis 1
import-route ospf 1 route-policy ospf_isis
配置完毕后,可以解决环路和次优路径的问题
AR1和AR2的最终路由表:
总结:该拓扑中,如果不做任何控制的情况下直接进行双点双向引入,会产生路由环路、次由路径、路由回灌的情况发生。通过标记TAG和修改OSPF优先级的方式可以解决该问题。
您好,最后route-policy 调用,应该是弄反了吧