本帖最后由 泰克教育 于 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的路径。 回顾了以上知识点后,我们来看这样一张拓扑图:
如图三所示:区域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地址。
扫码咨询华为认证
|