OSPF各类LSA
一、域内路由
路由器将接口宣告进OSPF进程后,形成的链路状态放入1类LSA中,用于描述路由器自身的直连状态。
1、 区域0为骨干区域,非0为非骨干区域。
2、 骨干区域有且只能存在一个。
3、 非骨干区域必须与骨干区域相连。
4、 每个区域都会维护一颗独立的SPF树。
LSA头部信息详解:
Type 1 LSA - Router LSA
作用:由每个OSPF路由器生成,描述路由器的链路状态和接口信息。
范围:仅在区域内传播。
内容:包括路由器接口、链路状态、开销等。
Type 2 LSA - Network LSA
作用:由DR(Designated Router)生成,描述多路访问网络(如以太网)中的路由器和网络信息。
范围:仅在区域内传播。
内容:包括DR连接的网络和路由器列表。
二、域间路由
Type 3 LSA - Summary LSA
作用:由ABR(Area Border Router)生成,用于在不同区域间传播路由信息。
范围:在区域间传播。
内容:包括目标网络的IP地址和开销。
Type 4 LSA - ASBR Summary LSA
作用:由ABR生成,用于通告ASBR(Autonomous System Boundary Router)的位置。
范围:在区域间传播。
内容:包括ASBR的Router ID和到达ASBR的开销。
四类LSA的由来:
1、当ASBR引入外部路由后,会在本区域内泛洪一个ASBR置位的1类LSA。告诉其他设备我变成ASBR了
2、当同区域且连接骨干区域的ABR收到这个ASBR置位的1类LSA后,由于自身是ABR,因此会将该ASBR置位的1类LSA转换为4类LSA发送到其他直连区域。
当一台设备同时是ABR和ASBR时,不会产生4类LSA
ABR定义:连接多个区域,并且在骨干区域存在一个活动的接口
功能
1、将直连区域内的最优路由转换为3类LSA泛洪到其他连接的区域中。
2、将骨干区域内的3类LSA,继续以3类LSA的形式泛洪到其他直连非骨干区域内。
当路由器具备ABR特性后,将会在自身产生的1类LSA中option置位ABR。
注意:华为的特殊情况,当在OSPF进程中配置多区域,但是没有宣告接口,也可以将路由器置为ABR,但是不具备ABR的功能。
ABR只能将骨干区域的3类LSA重新包装泛洪到非骨干区域,不能将非骨干区域的3类LSA重新包装泛洪到骨干区域
重新包装:1、将通告者更换成自己。2、重新计算metric
路由器在根据3类LSA计算路由时,会计算自身路由器到达ABR的cost+3类LSA携带的cost值。
域间路由防环原则:
原则一
为了避免区域间的环路,OSPF规定不同区域间的路由器交互只能通过ABR实现。ABR是连接到骨干区域的,所以在区域设计上规定,所有非骨干区域要连接到骨干区域,区域间的通讯需要通过骨干区域,形成逻辑上的星状拓扑,且无环。
原则二
1、ABR不会将非骨干区域的3类LSA传递到骨干区域(原则:OSPF设计/实现方式:不加表)
2、ABR在骨干区域存在FULL关系的邻居时,不会计算非骨干区域的3类LSA
3、ABR在骨干区域不存在邻居时,会计算非骨干区域的3类LSA
原则三
1、无论cost大小,1类LSA优于3类LSA。
例题:
1.会 2.不会(原则二) 3.不会(因为R4不是abr)
三、外部路由
外部路由引入过程
1、在路由器进程中使用引入命令后,将路由表中的外部路由引入到OSPF中。
2、路由器会触发两条LSU报文,其中第一条LSU携带自身的1类LSA,并且ASBR置位。用来告知本区域内的其他路由器,我成为ASBR了,我要引入外部路由了,第二条LSU携带引入的外部路由(5类)。
3、5类LSA的同步和泛洪原则:5类LSA在整个OSPF自治域内泛洪,不基于区域传递,只要路由器之间建立了FULL关系,就可以传递。
4、所有的外部路由引入OSPF后,会以5类LSA存在于数据库中,外部的cost值将不再计算,将赋于该5类LSA一个种子度量值,默认为1,可以手动更改。这个开销值在OSPF计算外部路由时,会认为是ASBR路由器到达该目的网络的开销值。
路由引入时:import-route static是引入所有静态路由、默认路由。default-route-advertise是只引入默认路由,如果跟上always是如果设备没有默认路由,则下发一条默认路由
Type 5 LSA - AS External LSA
作用:由ASBR生成,用于通告外部路由(如从其他路由协议学到的路由)。
范围:在整个OSPF自治系统内传播。
内容:包括外部网络的IP地址、掩码和开销。
Type 7 LSA - NSSA External LSA
作用:在NSSA(Not-So-Stubby Area)中由ASBR生成,用于通告外部路由。
范围:仅在NSSA内传播,ABR会将其转换为Type 5 LSA后传播到其他区域。
内容:类似于Type 5 LSA,但仅在NSSA内使用。
类型
Type 1:OSPF引入外部路由时,可以通过命令将开销值类型改为type1,当路由器计算type1类型的5类LSA时会计算OSPF内部的开销值累加。
Type 2:OSPF引入外部路由默认开销值类型为type2,当路由器计算type2类型的5类LSA时,不会计算OSPF内部的开销值,只计算5类LSA携带的cost值。
5类LSA的同步和泛洪原则:5类LSA在整个OSPF自治域内泛洪,不基于区域传递,只要路由器之间建立了FULL关系,就可以传递。
FA地址
FA地址生成的条件:(同时满足)
1.ASBR去往外部路由的接口被宣告进OSPF中。
2.ASBR去往外部路由的接口没有被配置为静默接口。
OSPF视图下:silent-interface GigabitEthernet 0/0/0
3.ASBR去往外部路由的接口网络类型不是P2P。
FA地址的作用:解决次优路由的问题
1.当5类LSA中的FA地址为0.0.0.0时,代表FA地址为空,那么在计算这条外部路由时,会通过寻找ASBR来计算
2.当5类LSA中的FA地址为具体IP地址时,代表存在FA地址,那么在计算这条外部路由时,就会通过路由器的SPF树,来寻找FA地址进行计算
四、OSPF特殊区域
OSPF优化的一种手段,当路由器无法承载大量的LSA时,会考虑减少LSA数量来进行优化。末节区域不允许存在5类,也就没有4类
一、stub区域: 末节区域存在1类、2类、3类、3类缺省
1)stub区域:末节区域存在1类、2类、3类、3类缺省
1.当区域配置为stub区域后,发出hello包中的options字段中的E置位为0,代表该区域没有处理外部路由的能力。此区域无法泛红和传递5类LSA,ABR也不再向此区域传递4类LSA,区域下所有设备都要更改为stub区域。
2.由于stub区域没有4类和5类LSA,没有办法计算外部路由。因此ABR会下发一条缺省的3类LSA,让stub区域的设备可以访问到外部路由。stub只存在1、2、3类LSA
3.如果stub区域存在多台ABR设备,ABR都会下发缺省路由且不存在4类和5类LSA,可能存在负载分担多条路由,由于stub缺少对外部的感知能力,可能存在次优路径的风险
解决方案:
1.更改stub区域内部接口开销值
IR设备上接口视图下:ospf cost 100
2.在ABR调整3类缺省路由的种子度量值
ABR设备上OSPF区域视图下:default-cost 2
3.修改下一跳的权重值(权重值默认255,越小越优)
IR设备上OSPF视图下:nexthop 12.0.0.2 weight 254
2)完全stub区域:完全末节区域 stub no-summr 存在1类、2类、3类缺省
1.完全末节区域是在末节区域的基础上,将该区域内的3类LSA路由过滤掉
2.完全末节区域只保留该区域的1类和2类LSA,以及ABR下发的3类缺省LSA
3.完全末节区域继承了末节区域的所有特性,包括多ABR设备时次优路径的风险问题
二、NSSA区域: 非完全末节区域存在1类、2类、3类、7类、7类缺省
NSSA区域:非完全末节区域存在1类、2类、3类、7类、7类缺省
1、NSSA区域也是一个末节区域,也要做LSA优化。
1.ABR不会向NSSA区域泛洪4类和5类LSA
2.ABR会向NSSA区域内下发一条7类缺省LSA,帮助NSSA区域没补路由器计算缺省路由下一跳指向ABR设备,而非外部路由。
2、NSSA区域引入了外部路由,需要让其他区域的路由器学习到这个外部路由
1.NSSA区域的ABR会将7类LSA转换成5类LSA,传递到其他直连区域内,方便其他区域的路由设备学习外部路由。
2.7类只能在NSSA区域内泛洪,不能传递到其他区域
3.ABR具有将7类LSA转换到5类LSA的能力,因此具备ASBR的能力,就会将自身1类LSA的ASBR置位为1。
3、当NSSA区域存在多ABR时:
1.多ABR时,由router-id大的ABR路由器执行7转5操作
2.router-id小的ABR路由器也具有7转5的能力,当router-id大的ABR路由器宕机,需要承担备份作用
3.多ABR时会同时产生7类缺省,计算缺省路由可能会负载分担,产生次优路径
4、关于7类LSA的传递问题:在7类LSA的option字段会也P置位
如果P置位,将会在ABR路由器执行7转5操作,如果没有P置位,将不会执行7转5
5、7类LSA的FA地址问题:
1.FA地址和5类LSA的FA地址作用相同,都是用来优化链路的
2.7类LSA的FA地址不会为空(7类缺省除外)
如果场景和5类LSA相同,那么FA地址会使用外部路由的下一跳作为FA地址
否则取值为路由器最大的环回接口地址作为7类LSA的FA地址,且接口宣告OSPF
否则取值为路由器第一个UP的物理接口地址作为7类LSA的FA地址
完全NSSA区域:完全非完全末节区域存在1类、2类、3类缺省、7类缺省、7类
1、完全NSSA区域继承了NSSA的特性
2、完全NSSA区域的ABR会生成2条缺省LSA,分别是3类的缺省LSA和7类的缺省LSA,华为会使用3类缺省LSA。
优先级:1类2类>3类>5类7类
五、OSPF路由汇总
一、区域间路由汇总(只能在ABR上汇总)
1.在ABR上,可以针对区域内的1类和2类计算出的最优路由进行汇总,汇总后以3类LSA形式泛洪到其他直连区域内 备注:明细路由来着哪个区域,就要在哪个区域下敲命令
ospf区域视图下:abr-summary 192.168.0.0 255.255.0.0
2.只要在LSDB中存在一条明细,那么汇总后的3类LSA就不会受影响,只有当区域中所有明细全部消失后,汇总的3类才会失效
3.关于汇总后的cost值,会使用明细路由中cost值最大的作为汇总后LSA的cost值
4.在多ABR时,如果只在一台ABR路由器上进行汇总,那么另外的ABR将传递明细路由,那么在区域0中,将同时有汇总后的3类LSA和明细3类LSA
注意:多ABR汇总后的3类LSA,会在区域0进行泛洪并传递给另外的ABR设备,此时另外的ABR设备不会计算这条3类汇总LSA,避免产生环路
二、外部路由汇总(只能在ASBR上汇总)
在ASBR上针对自身引入的外部路由进行汇总
ospf区域视图下:asbr-summary 192.168.0.0 255.255.0.0
1.针对type-1类型的外部路由,汇总后的开销值是所有被汇总明细中开销值最大的
2.针对type-2类型的外部路由,汇总后的开销值是所有被汇总明细中开销值最大的+1
如果明细路由一条是type-1,一条是type-2,这种情况如何理解?汇总后会使用type-2作为开销值类型,开销值会选择明细中最大的开销值+1
OSPF无法建立邻居关系的因素
1、认证模式不匹配(区域认证和接口认证)
2、区域ID不一致
3、Hello/Dead时间不一致
4、MTU不匹配
5、Router-ID冲突/重复
6、网络类型不匹配
7、IP地址或子网掩码不匹配
8、ACL或防火墙阻止OSPF流量
9、OSPF区域类型不匹配
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)