今天想和你聊点老网工比较关心的技术问题。
懂的都懂,在需要保证高可靠性的网络中,如果存在ISIS和OSPF共同部署的场景,为了能够实现路径的备份,需要将ISIS和OSPF进行互相引入,但是引入之后,也会带来一系列的bug。
这种一连串的bug就困扰了不少网工们。
比如说,次优路径和路由回馈这种类型的问题,就是我想和你今天讨论的问题。
今天结合具体拓扑分析,我特地邀请了我的老朋友,老蔡,在华为数通这块的老专家,来和你聊一聊这档子技术应用背后的解决方案。
今日文章阅读福利:《高级网络技术》
作为华为最新版的高级教材,不少网工都想买一本回家收藏起来,以备不时之需。
私信老杨,发送“高级技术”,即可获取该教材的pdf版本,导入微信读书App阅读,效果更佳。
现在网络中左侧运行OSPF协议,并且为单区域0,右侧运行ISIS协议,ISIS建立level-2的邻居关系,并且为wide度量值风格。R1上存在一个环回口地址1.1.1.1/32,R4上存在一个环回口地址4.4.4.4/32。
路由器的互联网段为10.1.x.0/24,x表示路由器的编号的组合。互联地址为10.1.x.y,y表示路由器编号。例如R1和R2的互联网段为10.1.12.0/24,R1的G0/0/0接口地址为10.1.12.1/24。
双点双向路由引入所带来的问题
01 OSPF引入到ISIS的次优路径
1. 次优路径诞生原因
在R1上将1.1.1.1/32的路由通过路由引入的方式引入到OSPF区域0中,此时R2和R3会产生一条OSPF优先级数值为150的1.1.1.1/32的外部路由,此处以R2的路由表为例,如下图所示:
然后在R2将OSPF的路由引入到ISIS之后,由于ISIS只有一个优先级数值为15,所以,R3会通过ISIS学习到一条优先级数值为15的1.1.1.1/32的ISIS路由,R3也会通过OSPF学习到一条优先级数值为150的1.1.1.1/32的OSPF外部路由。
这会导致R3在访问1.1.1.1/32时通过ISIS区域访问,形成了次优路径。
在R3上将OSPF引入到ISIS时,也会在R2产生同样的问题,在此处以R3的路由表为例,如下图所示:
2. 次优路径解决方案
在R2和R3上修改外部路由优先级数值为12,使得R2和R3在访问1.1.1.1/32时优先通过OSPF进行访问,在此处以R3为例,如下图所示:
在修改完优先级数值之后,R3通过最优路径OSPF访问1.1.1.1/32,如下图所示:
02 ISIS引入到OSPF的次优路径和路由回馈
1. 次优路径诞生原因
将R4的4.4.4.4/32宣告进入ISIS区域,此时R2和R3会产生一条优先级数值为15的ISIS路由4.4.4.4/32,在此处以R3为例,如下图所示:
在R3上将ISIS的路由引入到OSPF中,由于,R2已经将OSPF的外部路由优先级数值改为12,所以,此时R2会在OSPF区域通过R1学习到优先级数值为12的4.4.4.4/32的外部路由。
R2从R1学习到的OSPF外部路由,优于R2从ISIS区域学习的4.4.4.4/32的路由,所以,R2在访问4.4.4.4/32时会通过OSPF区域进行访问,形成了次优路径,R2的路由表如下图所示:
由于之前在R2将OSPF的路由引入到ISIS,所以4.4.4.4/32会再次引入到ISIS区域,R4会从R2学习到一条4.4.4.4/32的路由,形成了路由回馈,如下图所示:
2. 解决方案
(1)路由回馈解决方案
在R2上对于OSPF引入到ISIS的路由打tag 100的标签,然后在R3上将ISIS引入到OSPF时拒绝携带tag 100的路由进行引入,即:从OSPF引入到ISIS的路由不会再引回到OSPF防止路由回馈。
在R3上对于ISIS本区域的路由引入到OSPF时打上tag 200的标签,在R2上将OSPF引入到ISIS时拒绝tag 200的路由进行引入,即从ISIS引入到OSPF的路由不会再引回到ISIS防止路由回馈,如下图所示:
在R2上设置路由策略,将OSPF的路由引入到ISIS时,拒绝携带tag 200的路由引入,并将本身所属OSPF区域的路由引入到ISIS时打上tag 100的标签,路由策略如下图所示:
R2:
R2在进行OSPF引入到ISIS时调用该策略。
在R3上设置路由策略,将ISIS的路由引入到OSPF时,拒绝携带tag 100的路由引入,并将本身所属ISIS区域的路由引入到OSPF时打上tag 200的标签,路由策略如下图所示:
R3:
R3在ISIS引入OSPF时调用该策略:
以上我们就完成了双点单向的路由引入。
但是要完成双点双向路由引入还需在R3上将OSPF引入到ISIS的路由打上tag 300的标签,在R2上将ISIS引入到OSPF时拒绝携带tag 300的路由引入,即从OSPF引入到ISIS的路由不会再引回到OSPF防止路由回馈。
在R2上将ISIS引入到OSPF时打上tag 400的标签,在R3上将OSPF引入到ISIS时拒绝携带tag 400的路由引入,即从ISIS引入到OSPF的路由不会再引回到ISIS防止路由回馈,如下图所示。
操作和之前的方式类似,在此不做过多赘述。
(2)次优路径解决方案
由于在解决路由回馈问题时,R3在进行ISIS引入到OSPF时,将本属于ISIS区域的路由打上了tag 200的标签。
所以我们可以在R2上设置名称为“pre”路由策略针对携带tag 200标签的路由,在引入到OSPF之后形成的外部路由的优先级数值改为160。
然而从ISIS本区域学习到的4.4.4.4/32的路由优先级数值为15,那么再访问4.4.4.4/32的路由时优先通过ISIS区域进行访问,从而可以通过优先级数值解决次优路径的问题,在R2上设置名称为“pre”的路由策略,如下图所示:
R2:
在R2上设置外部路由优先级数值时调用名称为“pre”的策略,即符合名称为“pre”策略的外部路由优先级数值为160,不符合名称为“pre”策略的外部路由优先级数值为12。
此时R2在访问ISIS区域的4.4.4.4/32的路由时,优先通过ISIS区域进行访问,如下图所示。
同时R3需要针对携带tag 400标签的路由将其优先级数值改为160,操作和R2类似,在此不做过多赘述。
最终R2和R3都能够使用最优路径访问1.1.1.1/32和4.4.4.4/32。
R2的路由表,如下图所示:
R3的路由表,如下图所示: