路由 OSPF LSA介绍1~7类LSA详细介绍
Posted Hades_Ling
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路由 OSPF LSA介绍1~7类LSA详细介绍相关的知识,希望对你有一定的参考价值。
1.0.0 路由 OSPF LSA介绍、1~7类LSA详细介绍
OSPF LSA 链路状态通告( Link status announcement
),作用于 向其它邻接OSPF路由器 传递拓扑信息与路由信息。
LSA如何去描述拓扑信息与路由信息的呢?
其实是基于不同类型LSA进行描述,而常见的LSA类型有1类、2类、3类、4类、5类、7类
。
OSPF路由器通过不同类型的LSA组建成一下LSDB数据库(链路状态数据库)再通过SPF算法进行计算出最优的OSPF路由加入到路由表中。
宏观下的6种LSA作用:
1类 Router
- 路由器LSA,描述设备的直连拓扑信息、路由信息。
- 该LSA只能在接口所属的区域内泛洪。
- 解释(接口所属的区域):在OSPF中以接口划分区域,故每个接口都可以属于不同的区域。
- 1类LSA只会在区域内泛洪/传递,不会泛洪到其它区域中。
2类 Network
- 网络LSA,该2类LSA只会在广播类型网络中出现。
- 由DR产生,描述DR所在的MA网络中所有与之形成邻接关系的路由器,以及DR自己。
- 解释(所有与之形成邻接关系的路由器):
- 在广播类型的网络中,OSPF会选举出DR设备统一管理广播网络中的LSA。
- 而广播网络中只有DR与BDR能够与DR-other设备建立邻接关系。
- 2类LSA描述的正是DR与其它设备之间的拓扑信息
[DR连接了谁]
,与DR广播网络的路由信息[DR广播网络是什么]
。
- 解释(所有与之形成邻接关系的路由器):
- 该LSA只能在接口所属区域泛洪。
3类 Summary-Network
- 网络汇总LSA,由ABR设备产生,描述区域内的路由信息。
- 因为1类、2类LSA只能在区域内传递。
- 故其它区域需要学习到另一个区域的1类2类就需要有新的LSA来统一描述1类2类的拓扑、路由信息。这个LSA就是3类LSA。
4类 ASBR-Summary
-
ASBR汇总LSA,由ABR产生,描述到ASBR的路由,服务于5类LSA。
-
通告给除ASBR所在区域的其它区域。
-
这里需要进行图形的解释:
-
5类LSA在传递过程中下一跳是不可改变的,故AR5想访问AR1就需要去往AR2的2.2.2.2。
-
1、首先AR2的router-id=2.2.2.2并没有发布到OSPF网络中,故AR5不会学习到去2.2.2.2的路由。
-
2、由于AR3与AR2在同一个区域中,通过1类LSA就可以知道如何去2.2.2.2。
-
【唉?不是说2.2.2.2是RID吗?不是没有发布到OSPF吗?AR3如何知道去2.2.2.2的呢?】
-
【答案就是在1类LSA的子类型中可以得知去往RID的拓扑信息,
往后会详细讲解1类LSA的其它子类型
】 -
Type : Router Ls id : 2.2.2.2 【该LSA由谁产生?因为1类描述自己的直连接口信息,当然是自己】 Adv rtr : 2.2.2.2 【谁通告的?1类LSA由自己产生,当然是自己】 Ls age : 623 Len : 36 Options : ASBR E seq# : 80000007 chksum : 0x2ec3 Link count: 1 * Link ID: 10.1.23.3【基于TransNet子类型可知该地址表示广播网络的DR地址】 Data : 10.1.23.2【谁通告的该LSA信息?基于该地址我们就知道如何去2.2.2.2了】 Link Type: TransNet Metric : 1 该LSA由2.2.2.2通告过来给AR3的,其中产生了1条拓扑信息,可通过10.1.23.2访问到。 故同样的也可以访问到2.2.2.2。
-
-
3、由于1类只能在区域中传递,故AR5无法学习到去往2.2.2.2的路由信息。这个时候就需要用到ABR(AR3)发布的4类LSA
(去2.2.2.2来找我AR3准没错了)
-
5类 AS-External
- AS外部LSA,由ASBR产生,描述到OSPF域外的路由。
- OSPF引入的路由,如引入RIP、ISIS、BGP等路由,引入的路由就属于外部路。外部路由用5类LSA进行通告。
- 5类LSA在传递的过程中,下一跳不会被中间设备修改。
7类 NSSA
- 用于特殊区域 NSSA 中的LSA。
- 由ASBR产生,用于描述到达OSPF域外的路由。NSSA7类与5类功能一样,但泛洪范围不同。
- NSSA7类只能在始发区域内泛洪,并不能直接进入Area0。当7类需要传递Area0的时候,ABR会将7类转换成5类传递入到Area0中。
查看LSDB数据库
LSDB链路状态数据库,是存放各类LSA的地方,在路由设备上通过命令:display ospf lsdb
查看数据库信息。
Type表示LSA的类型(1类Router、2类Network、3类Sum-Net、4类 )
Linkstate通常表示谁产生的LSA
AdvRouter表示谁通告的LSA
Age表示LSA的年龄,也是老化时间。
Len为LSA的大小
Sequence为LSA序列号
Metric表示去往该LSA的开销。
<AR3>display ospf lsdb
OSPF Process 1 with Router ID 3.3.3.3【OSPF路由设备的router-id】
Link State Database 【以下就是关于AR3的LSDB数据库信息】
Area: 0.0.0.0【区域0的LSA】
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 1240 36 80000005 1
Router 3.3.3.3 3.3.3.3 834 36 80000005 1
Network 10.1.34.4 4.4.4.4 1240 32 80000002 0
Sum-Net 10.1.45.0 4.4.4.4 1277 28 80000001 1
Sum-Net 10.1.23.0 3.3.3.3 834 28 80000002 1
Area: 0.0.0.1【区域1的LSA】
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 585 36 80000007 1
Router 3.3.3.3 3.3.3.3 785 36 80000005 1
Network 10.1.23.3 3.3.3.3 785 32 80000001 0
Sum-Net 10.1.45.0 3.3.3.3 834 28 80000001 2
Sum-Net 10.1.34.0 3.3.3.3 834 28 80000001 1
NSSA 0.0.0.0 3.3.3.3 834 36 80000001 1
NSSA 10.1.23.0 2.2.2.2 585 36 80000002 1
NSSA 192.168.1.0 2.2.2.2 585 36 80000002 1
NSSA 10.1.12.0 2.2.2.2 585 36 80000002 1
AS External Database【外部路由的LSA】
Type LinkState ID AdvRouter Age Len Sequence Metric
External 192.168.1.0 3.3.3.3 584 36 80000002 1
External 10.1.12.0 3.3.3.3 584 36 80000002 1
新旧LSA判断
话说网络中的LSA如此之多,OSPF路由器是如何进行判断哪些是新的LSA,哪些是旧的LSA呢?
对于LSA,有三个重要的字段。通过这三个字段可以判断出LSA的新旧:序列号seq
、校验chksum
、年龄Age
。
LSA优先区域顺序
1、先比较序列号,越大越新,越新越优先。
- 因为OSPF最新生成的LSA会比旧的LSA序列号更大。
2、序列号一样,校验和越大越新。
-
OSPF报文中的校验和并不简简单单是用来判断报文有没有出错的,该值的计算不仅仅需要LSA报文的信息,还需要上一次计算出的校验和,并且每次计算校验和,都会比之前的校验和更大,因此校验和被认为是OSPF LSA消息新旧的第二个标准。
-
红字部分借鉴CSDN博主「永远是少年啊」的原创文章:https://blog.csdn.net/weixin_40228200/article/details/118497166
3、特例就是当Age=3600时该LSA最优先,其它Age则是越小越优先。
- Age表示LSA产生至今有多久了,默认从0开始。
- 当OSPF设备需要删除某个LSA时,就会通过设置Age时间为3600秒进行泛洪,让其它OSPF设备进行删除指定LSA。所以LSA=3600比Age=0更具备优先级。
- 但正常情况下Age是不会达到3600的,因为OSPF 默认情况下1800秒(30分钟)周期性更新一次LSA,当收到新的LSA之后就会进行刷新Age时间。
查看LSA的详细信息
通过命令:display ospf lsdb LSA类型 LSA条目ID
,如查看2.2.2.2的1类LSA详细信息:display ospf lsdb router 2.2.2.2
<AR3>display ospf lsdb router 2.2.2.2
OSPF Process 1 with Router ID 3.3.3.3
Area: 0.0.0.0
Link State Database
Area: 0.0.0.1【查询的1类LSA所属区域】
Link State Database
Type : Router
Ls id : 2.2.2.2
Adv rtr : 2.2.2.2
Ls age : 455 【新旧LSA判断依据3】
Len : 36
Options : ASBR
seq# : 80000007 【新旧LSA判断依据1】
chksum : 0x4ca7 【新旧LSA判断依据2】
Link count: 1
* Link ID: 10.1.23.3
Data : 10.1.23.2
Link Type: TransNet
Metric : 1
详细介绍1~7类LSA的内部信息
了解LSA的产生,什么情况下产生LSA,产生什么样的LSA。
查看并了解其LSA内部信息所表示的含义。
1类 Router
产生:运行了OSPF的设备并配置活动接口使用之后,必然会产生1条1类LSA描述该直连链路信息。
一类LSA头部信息
<AR4>display ospf lsdb router 4.4.4.4
Type : Router 【LSA的类型】
Ls id : 4.4.4.4 【该LSA由谁产生?因为1类描述自己的直连接口信息,当然是自己】
Adv rtr : 4.4.4.4 【谁通告的?1类LSA由自己产生,当然是自己】
Ls age : 1521 【该LSA活了多久?1521秒】
Len : 36 【LSA的大小,36Byte】
Options : ABR E 【ABR身份,E表示可接收OSPF外部LSA的能力】
seq# : 80000007
chksum : 0xab1e
Link count: 1 【直连链路信息数量】
* Link ID: 10.1.34.4
Data : 10.1.34.4
Link Type: TransNet【子类型】
Metric : 1
一类LSA子类型与内部信息
不同的子类型,其LinkID、Data所表示的含义也不同。
- Link ID: 10.1.34.4【DR地址】
Data : 10.1.34.4【宣告该LSA的接口】
Link Type: TransNet【子类型】
Metric : 1
Link Type | Link ID | Data |
---|---|---|
P2P(P2P接口网络中产生) | 邻居的RID | 宣告该LSA的路由器接口的IP地址 |
StubNet(广播网络中产生) | 路由器接口的网络IP地址 | 该Stub网络的网络掩码 |
TransNet(广播网络中产生) | DR的接口地址 | 宣告该LSA的路由器接口的IP地址 |
Virtual(虚链路路由器产生) | 邻居的RID | 宣告该LSA的路由器接口的IP地址 |
P2P、TransNet、virtual三类都是一类LSA用于描述拓扑信息,StubNet则用于描述路由信息。
疑惑:为什么都是通过network 宣告网络,有时候产生的是1类的Transnet、有时候产生的是StubNet呢?
Vritual Link虚链路
为了避免区域间的环路,OSPF规定不允许直接在两个非骨干区域之间传递路由信息。
但是非骨干区域与非骨干区域之间还是可以通过hello报文建立邻居关系,并学习到对方自己产生的路由。
即:非骨干区域之间不能传递其它区域的路由,但是可以传递自己产生的路由。
1、建立Vlink的作用?
为了实现以上区域2与区域5之间的路由传递,让区域5也能学习到其它区域的路由信息,就需要建立Vlink虚链路。
Vlink实现非骨干区域之间能够交互路由信息的逻辑是什么?
因为非骨干区域与非骨干区域无法交互路由信息,只有非骨干区域与骨干区域之间可以。
基于上面的环境,AR4与AR5建立Vlink(区域0与区域2的两台边界路由器),实现逻辑上将骨干区域0扩展到AR5上。
建立完成之后就会和下图一样的:由于AR5逻辑上属于骨干区域,故区域5的AR10就会与AR5交互路由了。
2、如何配置Vlink?
首先观察环境,因为区域5与区域0之间相隔了区域2,需要做的就是将区域2打通,实现区域5与区域0的通信。
AR4是区域0与区域2的边界、AR5是区域2与区域5的边界,在这两台上配置Vlink是最优的。
配置Vlink的时候通常都是指定对端的router-id。
为什么虚链路不直接指定对端IP地址,而是指定对端的router-id呢?
-
从实用性上看,如果单独指定其接口地址,那么这个时候去往目标时并不一定是最优的。
而使用router-id,OSPF将会基于OSPF路由进行最优路由的转发。
-
从可靠性上看,如果单独指定其接口地址,如果该接口断开了,那么该虚链路就断开了。
而使用router-id,只要还有路由能到router-id该虚链路就不会断开。
3、配置Vlink的注意事项
- Vlink虚链路只能在同区域建立连接,无法跨域建立虚链路。
- 因为Vlink计算到达目标路径需要依靠1、2类LSA,而1、2类LSA无法跨区域传递,导致Vlink无法跨区域寻邻居。
以实验结果理解1类LSA
1、通过在AR2、AR3上查看lsdb可以知道1类的LSA只会在区域内传递(因为除了在区域1中可以看到1类的2.2.2.2,其它区域都不会有1类的2.2.2.2)
2、1类2.2.2.2中只有一条信息,也就是transnet子类型的LSA,表示的是AR2与AR3相连的拓扑信息(10.1.23.0)
3、其它区域想要学习到该1类的LSA,只能通过3类的LSA学习。(如:AR4需要学习区域1中的1类2.2.2.2的路由信息,只能通过AR3产生的3类学习到)
4、为什么AR4收到的3类是10.1.23.0呢?为什么不是2.2.2.2?因为3类是统一汇总通告1类2类的拓扑信息、路由信息。故只会将1类2.2.2.2中的拓扑信息(10.1.23.0)通告出去。
2类 Network
产生:在广播类型的接口运行OSPF时,由选出的DR设备产生。
二类LSA头部信息与内部信息
<AR4>display ospf lsdb network 10.1.34.4
Type : Network
Ls id : 10.1.34.4【DR的地址】
Adv rtr : 4.4.4.4【该LSA由谁宣告的?】
Ls age : 1297
Len : 32
Options : E
seq# : 80000001
chksum : 0xf903
Net mask : 255.255.255.0【与LS id结合,表示DR所在的广播网络】
Priority : Low
Attached Router 4.4.4.4【表示与DR相连的设备】
Attached Router 3.3.3.3【表示与DR相连的设备】
通过上面的报文可以绘制一个逻辑拓扑:
配合1类的LSA,我们就可以知道4.4.4.4与3.3.3.3互联接口为这个链路中的DR。以及这个链路连接有哪些设备。
3类 Sum-Network
产生:由ABR边界路由器产生
三类LSA头部信息与内部信息
<AR4>dis ospf lsdb summary 10.1.23.0
OSPF Process 1 with Router ID 4.4.4.4
Area: 0.0.0.0
Link State Database
Type : Sum-Net
Ls id : 10.1.23.0【某条1类或2类的路由信息】
Adv rtr : 3.3.3.3 【下一跳找谁】
Ls age : 1557
Len : 28
Options : E
seq# : 80000002
chksum : 0x8ca0
Net mask : 255.255.255.0【Lsid的掩码,与Lsid结合就知道了路由信息】
Tos 0 metric: 1
Priority : Low
4类 ASBR-Summary
产生:由ABR边界路由器产生
4类LSA主要的作用就是通过头部的 Ls id与Adv rtr了解如何去往ASBR。
四类头部信息
<AR4>display ospf lsdb asbr 3.3.3.3
Type : Sum-Asbr
Ls id : 3.3.3.3【ASBR的router-id】
Adv rtr : 4.4.4.4【去往ASBR找我】
Ls age : 1716
Len : 28
Options : E
seq# : 80000002
chksum : 0x62db
Tos 0 metric: 1
5类/7类 AS-External
产生:由ASBR区域自治边界路由器产生
5类与7类都是一样的LSA,只不过Type类型不一样。
五类头部信息与内部信息
<AR4>display ospf lsdb ase 192.168.1.0
OSPF Process 1 with Router ID 4.4.4.4
Link State Database
Type : External
Ls id : 192.168.1.0【5类外部路由】
Adv rtr : 3.3.3.3 【去往该路由的下一跳】
Ls age : 95
Len : 36
Options : E
seq# : 80000003
chksum : 0xa68d
Net mask : 255.255.255.0【路由掩码】
TOS 0 Metric: 1
E type : 2【外部路由开销的计算类型】
Forwarding Address : 10.1.23.2 【转发地址】
Tag : 1 【Tag标签】
Priority : Low
五类LSA—E Type字段
External Type 外部路由类型
OSPF外部路由默认优先级为150
Type 1
可学习到外部的开销为:ASBR到外部路由部开销
+本路由器到ASBR之间的路由部开销
= 该外部路由的总开销
通过LSA可以知道访问192.168.1.0就需要经过3.3.3.3、2.2.2.2最终到192.168.1.0,故开销为3。
Type 2
5类LSA的外部路由开销为:(ASBR到外部路由的总开销
)
啥时候用Type1、啥时候用Type2?
当网络中有多个ASBR都引入同一条外部路由时,如果用默认的Type2方式引入,则去往该外部路由时必然是负载分担的。
如下图,AR14学习到的外部路由开销都是1,故AR14会认为该路由负载分担流量。
但很明显,走AR13是次优的路径,故在多个ASBR引入同一条外部路由的时候需要考虑使用Type1类型。
五类LSA—Forwarding字段
转发地址作用:解决广播型网络中OSPF路由次优路径问题
引入外部路由时,连接其他协议的接口运行了OSPF 协议并且网络类型为广播类型,则FA地址为重发布之前路由的下一跳地址,若网络类型为P2P,则不会产生FA地址。
转发地址不置位(0.0.0.0)
转发地址置位条件:
1.ASBR与外部路由交互的接口,启用了OSPF协议(即接口运行了OSPF协议,还运行了其它外部路由协议)
2.链接外部的接口不能配置Slient-interface
(类似边缘端口,禁止设备向该接口发送OSPF报文)
3.只有广播型网络的接口才会置位,P2P只有单一的一条路无法置位。
环境介绍:
1、AR5的G0/0/0接口与AR7建立OSPF、并且G0/0/0还与AR6建立ISIS
2、路由引入操作:AR5将ISIS与OSPF进行双向的路由引入,即OSPF引入ISIS、ISIS引入OSPF中。
3、这个时候AR7就能通过AR5学习到AR6的ISIS相关路由,但是访问AR6的网络时会优先通过AR5进行中转,在该环境中明显是不合适的,因为AR7明显可以直接与AR6进行通信。
3、为此,OSPF的FA地址生效了。该环境满足了FA地址置位的要求。
4、AR5会将引入的AR6路由相关SLA的FA地址设置为去往AR6网络的下一跳接口地址(192.168.1.2),这样AR7需要访问AR6的时候就直接访问AR6即可。
五类LSA—Tag字段
用于区分路由,将特定的路由打上tag之后,可以通过路由策略选择性的接收和拒绝指定的路由。ISIS与路由策略相关知识在后面几章介绍到
双点双向引入时、环路就是通过tag解决的。
汇总1~7类相关查看命令
查看所有类型LSA的汇总信息,LSDB数据库
<AR4>display ospf lsdb
查看指定类型的LSA
# 1类
<AR4>display ospf lsdb router
# 2类
<AR4>display ospf lsdb network
# 3类
<AR4>display ospf lsdb summary
# 4类
<AR4>display ospf lsdb asbr
# 5类
<AR4>display ospf lsdb ase
# 7类
<AR4>display ospf lsdb nssa
# 查看指定类型的LSA详细信息,如查看1类1.1.1.1的详细LSA信息
<AR4>display ospf lsdb router 1.1.1.1
查看ospf网络中哪些是ABR、ASBR
<AR3>dis ospf abr-asbr
OSPF Process 1 with Router ID 3.3.3.3
Routing Table to ABR and ASBR
RtType Destination Area Cost Nexthop Type
Intra-area 4.4.4.4 0.0.0.0 1 10.1.34.4 ABR
Intra-area 5.5.5.5 0.0.0.0 2 10.1.34.4 ABR
Intra-area 2.2.2.2 0.0.0.1 1 10.1.23.2 ASBR
以上是关于路由 OSPF LSA介绍1~7类LSA详细介绍的主要内容,如果未能解决你的问题,请参考以下文章