LSA的基本概念
LSA是OSPF进行路由计算的关键依据, OSPF的LSU报文可以携带多种不同类型的LSA,各种类型的LSA拥有相同的报文头部。
LSA报头
字段解释
LS Age(链路状态老化时间):此字段表示LSA已经生存的时间,单位是秒。当LSA被始发时,该字段为0,随着LSA在网络中被泛洪,该时间逐渐累加,更新时间1800s 当到达MaxAge(缺省值为3600s)时,LSA不再用于路由计算。
Options(可选项):每一个bit都对应了OSPF所支持的某种特性。
LS Type(链路状态类型):指示本LSA的类型。
Link State ID(链路状态ID):不同的LSA,对该字段的定义不同。
Advertising Router(通告路由器):产生该LSA的路由器的Router ID。
LS Sequence Number(链路状态序列号):当LSA每次有新的实例产生时,序列号就会增加。该字段用于判断LSA的新旧或是否存在重复的实例。序列号范围是0x80000001-0x7FFFFFFF,路由器始发一个LSA,序列号为0x80000001,之后每次更新序列号加1,当LSA达到最大序列号时,重新产生该LSA,并且把序列号设置为0x80000001。
LS Checksum(校验和):用于保证数据的完整性和准确性。
Length:是一个包含LSA头部在内的LSA的总长度值。
链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA。
链路状态老化时间 、链路状态序列号 、校验和用于判断LSA的新旧。
相关命令
查看LSDB的相关信息
<R1>display ospf lsdb ?
age Only display the LSAs that age in the scope
asbr ASBR summary link states
ase AS external link states
brief Database summary
network Network link states
nssa NSSA external link states
opaque-area Opaque area link states
opaque-as Opaque AS link states
opaque-link Opaque Link-Local link states
originate-router Advertising router link states
router Router link states
self-originate Self-originated link states
summary Network summary link states
| Matching output
<cr> Please press ENTER to execute command
路由器对LSA的处理流程
常见LSA的类型
类型 | 名称 | Link State ID | Advertising Router | 描述 |
1 | 路由器LSA (Router LSA) | 产生者的RID | 通告者的RID | 每个设备都会产生,描述了设备的链路状态和开销,该LSA只能在接口所属的区域内泛洪 |
2 | 网络LSA (Network LSA) | DR接口IP | DR的RID | 由DR产生,描述该DR所接入的MA网络中所有与之形成邻接关系的路由器,以及DR自己。该LSA只能在接口所属区域内泛洪 |
3 | 网络汇总LSA (Network Summary LSA) | 目的区域的网络地址 | ABR的RID | 由ABR产生,描述区域内某个网段的路由,该类LSA主要用于区域间路由的传递 |
4 | ASBR汇总LSA (ASBR Summary LSA) | ASBR的RID | ABR的RID | 由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。 |
5 | AS外部LSA (AS External LSA) | 外部路由的网络地址 | ASBR的RID | 由ASBR产生,用于描述到达OSPF域外的路由 |
7 | 非完全末梢区域LSA (NSSA LSA) | 外部路由的地址 | ASBR的RID | 由ASBR产生,用于描述到达OSPF域外的路由。NSSA LSA与AS外部LSA功能类似,但是泛洪范围不同。NSSA LSA只能在始发的NSSA内泛洪,并且不能直接进入Area0。NSSA的ABR会将7类LSA转换成5类LSA注入到Area0 |
1类 Router LSA
每台OSPF路由器都会产生。它描述了该路由器直连接口的信息。
Router LSA只能在所属的区域内泛洪。
使用Link来承载路由器直连接口的信息。
每条Link均包含“链路类型”、“链路ID”、“链路数据”以及“度量值”这几个关键信息。
路由器可能会采用一个或者多个Link来描述某个接口。
报文中的flag字段详解
V (Virtual Link ) :如果产生此LSA的路由器是虚连接的端点,则置为1。
E (External ): 如果产生此LSA的路由器是ASBR,则置为1。
B (Border ):如果产生此LSA的路由器是ABR,则置为1。
links :LSA中的Link(链路)数量。Router LSA使用Link来承载路由器直连接口的信息。
Link Type(链路类型) | Link ID(链路ID) | Link Data(链路数据) |
Point-to-Point(P2P):描述一个从本路由器到邻居路由器之间的点到点链路,属于拓扑信息 | 邻居路由器的Router ID | 宣告该Router LSA的路由器接口的IP地址 |
TransNet:描述一个从本路由器到一个Transit网段(例如MA或者NBMA网段)的连接,属于拓扑信息 | DR的接口IP地址 | 宣告该Router LSA的路由器接口的IP地址 |
StubNet:描述一个从本路由器到一个Stub网段(例如Loopback接口)的连接,属于网段信息,不需要维护拓扑信息,也没有在该网段上有任何邻居 | 宣告该Router LSA的路由器接口的网络IP地址 | 该Stub网络的网络掩码 |
PS:P2P类型直接显示掩码
相关命令
查看1类LSA
<R1>display ospf lsdb router
抓包分析
1.链路老化时间:1S
2.可选项:支持外部路由协议接入
3.LSA类型:路由器LSA
4.产生者的RID:1.1.1.1
5.通告者的RID:1.1.1.1
6.链路状态序列号:0x800000004
7.DR接口的IP地址:10.1.0.1
8.通告者的接口IP地址:10.1.0.1
9.链路类型:TransNet
2类 Network LSA
由DR产生,描述本网段的链路状态,在所属的区域内传播。 Network LSA 记录了该网段内所有与
DR建立了邻接关系的OSPF路由器,同时携带了该网段的网络掩码。
Link State ID :DR的接口IP地址。
Network Mask:MA网络的子网掩码。
Attached Router:连接到该MA网络的路由器的Router-ID(与该DR建立了邻接关系的邻居的Router-ID,以及DR自己的Router-ID),如果有多台路由器接入该MA网络,则使用多个字段描述。
相关命令
查看路由器自身的2类LSA
<R1>display ospf lsdb network self-originate
抓包分析
1.链路老化时间:1秒
2.可选项:允许外部路由协议接入
3.LSA类型:网络LSA
4.DR的接口ID:10.1.0.1
5.DR的RID:1.1.1.1
6.链路状态序列号:0x80000001
7.子网掩码:255.255.255.0
8.该网络里建立邻居关系的路由器RID:1.1.1.1 ;2.2.2.2
SPF计算
路由器将自己作为最短路径树的树根,根据Router-LSA和Network-LSA中的拓扑信息,依次将Cost值最小的路由器添加到SPF树中。路由器以Router ID或者DR标识。
广播网络中DR和其所连接路由器的Cost值为0。
SPF树中只有单向的最短路径,保证了OSPF区域内路由计算不会出现环路。
路由器以自己为根,计算到达其他网段的累计开销,选择最小的加入到路由表中。
大致步骤概述
1.首先根据自身的1类LSA去计算,选择开销最小的加入路由,stubnet暂时不管。
2.再根据自身2类LSA计算,选择开销最小的加入路由。
3.然后是下一跳路由器的1类,2类,以此类推。
4.开销小的路径计算完后,再对比开销大的路径,如果有重复的就丢弃开销大的,如果没有重复则加入路由表。
5.最后,将stubnet(末梢网络)加入路由表。
3类 网络汇总LSA(Network Summary LSA)
OSPF区域划分
区域划分是为了解决以下几个问题:
1 当网络规模越来越大时,LSDB将变得非常臃肿,设备基于该LSDB进行路由计算,其负担也极大地增加了,此外路由器的路由表规模也变大了,这些无疑都将加大路由器的性能损耗。
2 当网络拓扑发生变更时,这些变更需要被扩散到整个网络,并可能引发整网的路由重计算。
3 单区域的设计,使得OSPF无法部署路由汇总。
区域划分的作用:
1 Router LSA和Network LSA只在区域内泛洪,因此通过区域划分在一定程度上降低网络设备的内存及CPU的消耗。
2 区域的划分使得运行OSPF协议的路由器能够体现网络拓扑结构。
ABR
划分区域后,路由器可以分为两种角色:
1 区域内部路由器(Internal Router):该类设备的所有接口都属于同一个OSPF区域。
2 区域边界路由器(Area Border Router):该类设备接口分别连接两个及两个以上的不同区域。
OSPF区域间路由信息传递是通过ABR产生的Network Summary LSA(3类LSA)实现的。
Network Summary LSA(3类)
由ABR产生,用于向一个区域通告到达另一个区域的路由。
LS Type:取值3,代表Network Summary LSA。
Link State ID:目的网络地址。
Advertising Router:生成LSA的Router ID(也就是ABR的RID)。
Network Mask:目的网络掩码。
metric:到目的地址的路由开销。
相关命令
查看自身3类LSA信息
[R1]display ospf lsdb summary self-originate
引入外部直连路由
[R1-ospf-1]import-route direct
抓包分析
1.链路老化时间34s
2.可选项:可接收外部路由
3.LSA类型:3类 网络汇总
4.目标网络前缀:10.1.1.0
5.ABR的RID:2.2.2.2
6.链路状态序列号:0x80000001
7.目标网络掩码:255.255.255.0
8.到达目标网络的开销:1