网站首页 > 开源技术 正文
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
- 上一篇: 喵呜!阿桑奇的猫是间谍?
- 下一篇: RTX3060Ti/3080评测,全面对比8款显卡数据
猜你喜欢
- 2024-12-07 RTX3060Ti/3080评测,全面对比8款显卡数据
- 2024-12-07 喵呜!阿桑奇的猫是间谍?
- 2024-12-07 「AudioTOP」深藏精致:Khadas Tea 磁吸解码耳放拆解报告
- 2024-12-07 虚惊一场!3岁男童从10米跌落却未受伤,原来是人力车从下边过……
- 2024-12-07 OSPF(开放最短路径优先)协议LSA详解
- 2024-12-07 3分钟读懂RD与RT
- 2024-12-07 可怕!美国医院藏摄像头,上千名女性被拍下分娩、流产过程
- 2024-12-07 一文彻底搞懂 CAS 实现原理
- 2024-12-07 抖音热娜rrrrrrtttt歌曲是什么歌 中英文歌词翻译
- 2024-08-02 as to 的意思解析(as soon as意思)
你 发表评论:
欢迎- 05-16东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 05-16这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 05-16湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- 05-16Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- 05-16G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- 05-16DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 05-16上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- 05-16WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 最近发表
-
- 东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 湖人自媒体调查:89%球迷希望DFS回归 79%希望詹姆斯回归
- 一觉醒来湖人苦盼的纯3D终于到位 DFS能带给紫金军多少帮助
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)