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

article/2025/10/23 15:41:05

概述:

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学习指南


http://chatgpt.dhexx.cn/article/mD19Nel8.shtml

相关文章

求不规则立方体表面积java_不规则立方体体积计算

展开全部 计算不规则的立体图形体积可62616964757a686964616fe78988e69d8331333431373866以把这个物体放入水中,用现在容积-未放入物体的容积就是体积或用放入物体后高-未放入物体*长*宽(1升1立方分米;1毫升1立方厘米)。 体积的国际单位制是立方米。一件…

冠层分析法(VCP)提取叶面积指数

文章目录 一、简介二、代码实现三、小结参考文献一、简介 该方法最早是由Omasa等人提出,是根据激光雷达光束与树木的接触频率来计算光束截获概率。总结来讲具体过程分为三步: 1、 从三维体素模型网格里判断是否有点,有点的网格标记为1,没点的网格标记为0,没点的网格表明冠…

SPFA例题

引入 SPFA的核心思想是优化dist[a]min(dist[a],dist[b]w)这个式子; 不难想到,如果我们想要优化dist[a],那么只能从dist[b]w这个式子转移过来; 也就是说,只有dist[b]变小了,才有可能优化dist[a]&#xff…

OSPF中的SPF计算

OSPF域内路由计算:SPF计算 在1类LSA和2类LSA中,包括了拓扑信息和路由信息 Phase 1 :根据1类LSA中的P2P、TransNet、2类LSA,构建SPF树 Phase 2:根据1类LSA中的Stub、2类LSA,计算最优路由 左边是拓扑图&am…

聊一聊有限体积法

导读:有限体积法的工作原理。 一、求解对象 首先提一下我们的主角Navier-Stokes方程: 为了能够通过SIMPLE算法求解Navier-Stokes方程,我们需要将该方程改写为下列矩阵形式的方程: 其中为了系数矩阵,是每个网格未知…

IDEA中新导入的项目找不到maven project解决办法

刚导入的项目,导入进来之后,找不到maven project,idea打开view ->tool windows下也没有maven模块。查看了setting下plugins中maven插件也在。最后发现项目在导入过程中,因为选择的原因,没有指定位maven工程&#xf…

win10删除文件提示'找不到该项目'

win10系统下删除文件时出现了"找不到该项目"问题 遇到一个问题: win10系统下删除文件时出现了"找不到该项目"问题 百度搜索后得到 DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 这两行dos命令 创建(.txt)文件后写入这两行命令,保存,修改(.txt)至(.bat) 最后…

IDEA项目下不显示target目录或者target目录不完整没有新添加的资源

1.首先解决不显示target目录的问题 需要知道:如果不是maven工程,是没有target目录的,其次编译后才会生成target目录. 普通项目会生成out目录 a>如果设置过隐藏target目录 只需要找到settings-->Editor-->File Type-->Ignore Files and Folder删除该项 b>如果…

项目启动报错,找不到文件

java.io.FileNotFoundExceptionE:\software\apache-maven-3.6.1-bin\apache-maven-3.6.1\localrepository\xalan\xalan\2.7.0\xercesImpl.jar (系统找不到指定的文件。) java.io.FileNotFoundExceptionE:\software\apache-maven-3.6.1-bin\apache-maven-3.6.1\localrepository\…

idea项目类存在却找不到

这种情况,我真是奇了怪了,服了。我试了一下,试出了解决方案:将这个类移到同级另一个包,看见不报错了,再移回去。属于给idea虚晃一枪,再运行…emmmmm也还是报错的。于是不断的删iml文件&#xff…

Windows 删除”找不到该项目”文件夹

问题根源: 使用不可显示ASCII字符或采用UNICODE字符方法创建的文件或文件夹; 名称中含有..等特殊符号文件或文件夹名称不符合Windows命名规范或建立空格目录名创建的文件或文件夹; 使用下载工具创建的文件夹,在未下载完成前自行删除文件或…

idea找不到项目目录

有时候idea拉取项目时出现没有目录,src.main等等,下面就来带大家找到项目目录并显示出来 首先我们打开文件(在左上角——找到项目结构) 然后我们找到模块——点击左边那个加号,然后选择自己的项目目录。再选择一下jdk版本&#x…

【常见问题】vs 找不到导入的项目,请确认import声明

问题描述 当复制人家的vs项目文件到自己电脑上进行调试,重新生成解决方案失败,并报如下错误。 解决方法 1.分析报错内容,出现问题文件为vcxproj文件。 2.找到vcxproj文件,用记事本打开。 3.CTRLF搜索“Import”&#xff0c…

无法删除提示找不到该项目,该项目不在C:\users\?win10无法强力删除文件?

无法删除提示找不到该项目,该项目不在C:\users\?win10无法强力删除文件? 新建个TXT ,把下边的代码粘贴过去: DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 保存之后把名字改成:Delete.bat 然后把要删除的文件夹拖到这个文件上,即可删…

git拉取项目报错:找不到项目 Repository not found

这段时间换了新公司,不想每天背着电脑跑来跑去了,就用了公司配发的电脑,前两天想用Git拉取公司的项目的时候却碰见问题了,无论是Git命令行拉取还是使用idea拉取,都会报错找不到项目 但是在浏览器使用链接是可以访问到项…

问题:找不到该项目,该项目不在指定目录下.......请确认位置......

参考网址:http://bbs.kafan.cn/thread-1398433-1-1.html 1.把下面的代码复制粘贴到一新建的txt记事本文档中,并另存为del.bat文件(或者你喜欢的名字),注意扩展名为批处理文件bat; DEL /F /A /Q \\?\%1 RD …

windows删文件:找不到该项目,该项目不在xx中,请确认位置,然后重试 的解决方案

起因是手贱 打错了 搞得生成了一个 以.结尾的文件,删又删除不了,莫名其妙,然后 git push 也出问题; 删除就弹出类似下面的提示;删除上层文件夹也没用; 网上搜了一堆解决办法,说什么建立一个 ba…

找不到项目 该项不在计算机中,删除文件夹提示找不到该项目怎么删除?“找不到该项目”强删方法(图文)...

在使用电脑的过程中,尤其是办公,去创建一些文档,但是在删除的时候就删除不了了,系统提示“找不到该项目”,那么Win7删除文件夹找不到该项目怎么删除?下面云狐网分享一下删除文件或者文件夹提示“找不到该项目”强删方法,不会的来学习一下。uK5电脑_数码_手机应用问题解决…

出现“找不到该项目”的错误提示解决方法

在使用Windows7系统删除文件或者文件夹的时候,会出现“找不到该项目”的错误提示,可能再次“重试”也无济于事,今天就为大家简单概括一下出现该问题的原因及解决方法。 针对出现该问题的不同原因对应的解决办法: 第一&#xff1a…

Windows下删除文件夹提示找不到该项目,请确认该项目的位置,然后重试。

解决方法: 1,在桌面新建一个文件,里面输入以下内容: DEL /F /A /Q \\?\%1 RD /S /Q \\?\%12,保存文件,然后将后缀名txt改为bat 3,将不可删除的文件夹拖拽到这个文件上面,会发现…