OSPF NSSA区域路由的计算过程与FA值实验

概述:

NSSA区域中不存在5类LSA,但是为了描述区域外的路由条目,则用7类LSA代替5类LSA。

7类LSA仅在NSSA区域中存在,当7类LSA离开NSSA区域进入普通区域时,可以转化为5类LSA。
在这里插入图片描述
NSSA-LSA报文格式和5类LSA相同:
在这里插入图片描述
其中,option字段中,P位,只用在NSSA LSA。该位将告诉NSSA区域的ABR路由器将7类LSA转换为5类LSA。如图:
在这里插入图片描述
例如10.1.1.0/24的条目在R4重分发入NSSA区域,P为1,当R2和R3中RID大的ABR会进行7转5。重点是不带有P字段的情况,如果在R3上有一个还回口,重分发进入ospf,那么P位就为0,因为他可以通过R3直接向区域0里面进行5类LSA的透传,当然同时也会向NSSA区域中透传,只是没有必要再进行7转5再次发区域0中了。可以理解为自己为ABR再重分发路由条目就不会进行7转5。

实验:NSSA-LSA转化过程

模拟器:eNSP
在这里插入图片描述
实验思路:
将RIP区域中的路由重分发进入OSPF的区域1(NSSA区域),在各个R2上查看LSA和路由,进行分析。

实验步骤:
区域1为完全NSSA区域,R3的g0/0/1没有开启OSPF。在R3上查看相应的LSA信息:
在这里插入图片描述
可以看到有两条由R2发送的默认路由,一条为7类,1条为3类,因为区域间路由优于区域外的路由。实际上使用的是三类区域间的路由,可以查看路由表进行验证:
在这里插入图片描述
现在主要看7类LSA怎么转换为5类LSA进入骨干区域中,在R2上查看相应的LSA信息:
在这里插入图片描述
可以发现R2这个ABR(ASBR)将7类LSA转换为了5类的LSA发送到R1,并且将advRouter修改为了自己的RID。继续在R2上查看详细的7类LSA信息:
在这里插入图片描述
再查看详细的5类LSA进行相应的比较:
在这里插入图片描述

除了type字段其他都相同,在这里我们会发现FA值为3.3.3.3,但是在普通区域的5类LSA中在目前的情况下是没有的FA值的,这里就引出了FA值在5类LSA和7类LSA中存在的差别:

相同点在于:
七类LSA中的FA地址,当满足五类LSA的三条规则的时候:

  1. 重分发条目下一跳的接口在OSPF路由域中(也就是对应接口开启了OSPF)。
  2. 连接外部路由的接口不是被动接口(不接收也不发送ospf报文)。
  3. 连接外部路由的接口必须是MA环境(NBMA、Brocast)。

FA就是ASBR路由表中该路由的下一跳地址(对于这一点和五类LSA完全相同)。

不同的地方在于:
如果Options字段显示此LSA不可以被转换成五类LSA(P位为0),FA地址可以被设置成0.0.0.0。因为7类LSA与5类 LSA不同之处在于FA位,这样设置的原因就是为了在7转5的时候带有FA,从而更好的选路,既然都不能进行7转5了,那就没有意义FA再有值的需求了。

如果Options字段显示此LSA可以被转换成五类LSA,FA地址不可以被设置成0.0.0.0。

当不满足5类LSA中生成FA的三条规则的时候,则FA地址设置为该ASBR上某个OSPF路由域内的网段(例如loopback0接口)的接口IP地址(注意这些网段是必须被通告进入ospf的),有多个网段时选IP地址最大者,并且回环口优先于物理接口。

实验:满足5类FA值产生需求的7类LSA的FA值实验

在这里插入图片描述
拓扑描述:
R2能够通过RIP学习到R3的回环口路由,通过重分发进入OSPF区域1(NSSA区域)。

实验步骤:
因为R2g0/0/0同时通告进入了OSPF和RIP,也就是3.3.3.0/24的下一跳192.168.1.3在ospf的区域中,满足5类LSA的产生FA的条件,所以FA值为R2去往3.3.3.0/24的下一跳的IP地址:192.168.1.3。在R1上进行查看:
在这里插入图片描述
在R2的g0/0/2上抓包,发现FA值为192.168.1.3,推测没有问题:
在这里插入图片描述
回到最初的情况,也就是目标网段不在OSPF域中的情况,拓扑如下:
在这里插入图片描述
R3的g0/0/1接口并没有开启ospf,所以目标网段的下一跳并没有在OSPF区域中,最终FA值就为R3上最大的回环口的IP地址:3.3.3.3。

注:同时存在到达同一目的地有FA地址的LSA和没有FA地址的LSA,优先选择有FA地址的LSA进行路由计算。

为什么7类LSA中的FA值要这么进行设计呢?主要是为了解决一个次优路径或者环路问题的问题,如后续两个实验所示。

实验:NSSA负载分担解决次优路径问题

在这里插入图片描述
分析次优路径产生的原因:
次优路径是由于7转5只有在一个设备上进行,如果没有FA值就会导致其他区域的流量始终会通过7转5这个路由器转发进入NSSA区域,这样可能就会错过更好的ABR进行转发。而普通5类转发则是每个ABR都会转发,所以自然而然会有最优的路径供选择,所以FA值可以为0。

但是我们将FA值设置为ASBR上的接口IP地址,并且是OSPF区域中的(保证可达)。当其他区域的设备收到了对应的外部路由,那么就用ASBR上的可达接口作为下一跳进行迭代累加cost值,这样保证迭代出来的就是最优的路径了。

总的来说FA也就是起了一个重定向的作用,重新定义下一跳,然后避免次优路径的产生。否则下一跳就是7转5的路由器的对应接口地址,自然可能产生次优路径。

注意:
OSPF区域去往外部AS的的时候,一条路由的时候,内部选路永远是看内部的cost值,也就是到最初的下一跳的cost值。而外部cost值的用处是比较两条7类或者5类LSA的tpye2类的路由条目时有作用。

具体步骤:
将R5所连的外部路由条目通告进入OSPF环境中,R2的g0/0/2不需要通过进入OSPF,然后我们在R3上查看:
在这里插入图片描述
发现FA只为R2上回环口的IP地址,这样去往外部路由的下一跳就是通过2.2.2.2进行迭代,因为没有修改链路的cost值,所以会出现负载均衡的场景:
在这里插入图片描述
这里的负载均衡是通过查看下一跳是否负载均衡而不是直接看本条条目的cost(为类型2,所以永远为1)当我们将R4上g0/0/0接口的ip地址修改为10时,再观察R3产生的路由条目:
在这里插入图片描述
现在的路径只有一条了,就是通过R1去往外部网络,这就是FA值避免次优路径的解决方案。

为了进行对比,如果没有FA地址的话会发送什么错误,可以在7转5的时候可以将FA地址去掉,在本题目上是在R4上进行的7转5,所以们在R4上开启抑制7转5 的功能:
[R4-ospf-1-area-0.0.0.1]nssa suppress-forwarding-address //在相应nssa区域中配置
然后我们继续在R3上查看OSPF的5类LSA:FA值为0了
在这里插入图片描述
既然FA值为0,所以他以为ASBR就是R4,通向外网的时候直接发送R4,我们查看相应的条目:
在这里插入图片描述
这个时候,可以发现产生了次优路径。但是因为没FA地址的缘故,我们还是这样走了。现在我们尝试另外一条命令,在R1上也开启7转5的功能:
[R1-ospf-1-area-0.0.0.1]nssa translator-always //在相应nssa区域中配置,与抑制命令不兼容

继续查看R3上的LSA:
在这里插入图片描述
现在在R3上就有了两条5类LSA了,有FA地址的优先,R3现在就会按照FA地址作为下一跳进行计算,我们将cost值复原,然后查看路由表,为负载分担的情况,符合理论:
在这里插入图片描述

实验:FA解决NSSA区域环路的问题

在这里插入图片描述
拓扑描述:
区域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。

我们来分析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会把数据包转发。
  3. 此时全程的路径为:R4-R2-R1,解决了环路问题。

参考资料:HCIE学习指南

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值