设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 2289|回复: 1
收起左侧

深入探讨OSPF环路问题(二)

[复制链接]
发表于 2023-5-23 09:25:38 | 显示全部楼层 |阅读模式
本帖最后由 泰克教育 于 2023-5-23 09:27 编辑

场景二:OSPF外部路由引起的环路
OSPF的路由可以分为两种,一种是内部路由,由1类,2类,3类LSA形成的路由都是内部路由,即network产生的路由。另外一种是外部路由,由5类,7类LSA形成的称为外部路由,即import产生的路由。内部路由的环路问题可以通过场景一的内容解决,那外部路由是否会有环路问题?以及我们的解决办法又是什么呢?在正式讲外部路由引起的环路问题时,需要先科普一下OSPF的一些相关知识点:        
1、特殊区域
OSPF为了能适应各种环境及路由器的组网,开发了特殊区域这一概念,OSPF的特殊区域可分为两种类型:
A、stub区域:stub区域拒绝5类lsa进入,即拒绝外部路由进入本区域,也不能在本区域下面引入外部路由,区域内的路由器通过ABR下发的默认路由来访问外部网络。
B、NSSA区域:这是一种特殊的stub区域,它保持了stub区域拒绝5类lsa的特点,但是它能允许在该区域引入外部路由,外部路由以7类lsa的形式存在于本区域中,nssa区域的ABR会向其它区域把此7类LSA翻译(转换)成5类LSA(俗称7转5),使其它区域的路由器可以访问此外部路由。
2、外部路由类型
ospf外部路由有两种类型
A、Type 1:也称为E1。路由器在计算type1路由的Cost时,会把此路由的外部cost(ASBR到达目标网段的cost)与内部cost(本路由器到达ASBR的cost)相加。
B、Type 2:也称为E2,引入路由时默认为此类型,路由器在计算type2路由的cost时,只计算外部cost,而忽略内部cost。但当一台路由器收到两条相同的type2路由时,首先会对比外部cost的值,如果一样再对比内部cost值。
3、FA地址:FA的全称为forwarding address,是5类lsa与7类lsa中的一个字段,FA字段可以影响路由器的选路,所以它的作用是用于解决次优与环路。(FA作为OSPF协议中的一个重点与难点,要讲的东西可以有很多,因为本文章我们主要讲解环路,所以FA只会以结论的形式引入)。
4、外部路由的选路问题
大致可分为两种情况
情况一:外部路由中未包含FA地址:此时路由器计算去往ASBR的路径。        
情况二:外部路由中包含FA地址:此时路由器直接计算去往FA的路径。
回顾了以上知识点后,我们来看这样一张拓扑图:
77.png

如图三所示:区域1为NSSA区域,各链路的cost如图所示:
1、在R1上把1.1.1.1引入OSPF,此时R1会产生关于1.1.1.1网段的7类LSA。
2、R2与R3作为Area1的ABR,都有责任进行7转5的动作,但OSPF规定默认情况下只有R-ID大的才能进行7转5,R2与R3的R-ID如图所示,即R3会进行7转5的动作,由R3产生关于1.1.1.1的5类lsa,并在Area0中泛洪。
3、R4从Area 0中收到此5lsa,并泛洪给R2。
4、我们来分析R4如何去往1.1.1.1,此时会有两种情况:
情况一:R4收到的这条5类LSA中FA地址为0.0.0.0
根据OSPF外部路由的选路规则,当5类LSA中FA地址为0时,则计算去往ASBR的路径。
1、此时产生此条5类LSA的是R3,所以R3为ASBR,R4可直接通过Area 0到达ASBR(R3)。
2、R3是通过Area 1学习到的1.1.1.1网段,所以R3可通过Area1去往1.1.1.1,即把数据包发送给R2。
3、此时R2可通过两条LSA学习到1.1.1.1的路由,第一条:R1产生的7类LSA。类型为Type2,外部Cost为1(外部cost默认都为1),内部cost为10(内部cost,本路由器到ASBR的cost),第二条:R3产生的5类LSA,由R4泛洪给R2(参考上面第二步),类型为Type 2,外部Cost为1,内部Cost为2(R2-R4-R3的cost)。
4、R2执行选路规则,两条LSA同为Type2类型,先对比外部cost值,都为1,然后对比内部cost值,第一条为10,第二条为2,所以R2会优选第二条(R3产生的5类lsa),即会把数据包转发给R4。
5、环路形成:R4-R3-R2-R4
情况二:R4收到的这条5类LSA中FA地址为10.1.12.1(R1与R2的互联接口)
根据OSPF外部路由的选路规则,当5类LSA中FA地址为非0时,直接计算去往FA地址的路径。
1、在此图中R4收到的5类LSA中FA地址为10.1.12.1,关于10.1.12.1这个地址,R4是通过3类LSA学习到的(10.1.12.1位于Area 1中,R2与R3都为ABR,都会产生关于10.1.12.0网段的3类lsa),R4此时其实可以收到两条10.1.12.0的3类LSA,一条R2产生,一条R3产生,通过计算cost后发现,选择R2去往10.1.12.1更近,所以R4会把数据包转发给R2。
2、R2同样执行选路计算,计算去往FA地址10.1.12.1的路径,此地址是R2的一个直连路由,所以R2会把数据包转发给R1。
3、此时全程的路径为:R4-R2-R1,解决了环路问题。

总结:OSPF针对外部路由可以通过FA地址来防环,7类LSA中一般情况下都会携带FA地址,在执行7转5后FA地址会默认保留,所以在默认情况下面不会出现环路问题。如果我们在做7转5时把FA地址抵制了,就有可能出现上述的环路问题。5类LSA FA地址的填充需要满足一些条件,有机会我再整理一篇文章来单独讲FA地址。


微信图片_20230131142112.png
扫码咨询华为认证

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-22 23:35 , Processed in 0.058078 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表