目录
LSA的头部结构
LSA类型
LSA数据包
LSA的主要作用是传递路由信息。
LSA的头部结构
共占20个字节,不同类型的LSA头部字段部分都是相同的。
-
链路状态老化时间(Link-State Age)
-
2个字节。指示该条LSA的老化时间,即它存在了多长时间,单位为秒。
-
正常情况下,一条LSA的存在时间为1800秒。计时达到1800秒时归零,开始重新计时。
-
最大老化时间为3600秒。当一条LSA计时达到3600秒时,会被认定为失效,将从本地LSDB中删除。
-
当网络拓扑变更时,有关的LSA不论计时多少,都将会立即更新。
-
-
可选项(Options)
-
1个字节。每一个比特位都对应了OSPF 所支持的某种特性。和hello包中的一样,包含特殊区域标记。
-
E:是否允许泛洪AS-External-LSA(5类LSA)。
-
MC:转发IP组播报文。
-
N/P:处理Type-7 LSA。
-
DC:处理按需链路。
-
-
-
链路状态类型(Link-State Type)
-
1个字节。指示本条LSA的类型。每种 LSA用于描述OSPF 网络的某个部分,所有的LSA类型都定义了相应的类型编号。
-
Type1:Router-LSA
-
Type2:Network-LSA
-
Type3:Network-summary-LSA
-
Type4:ASBR-summary-LSA
-
Type5:AS-External-LSA
-
Type7:NSSA-LSA
-
-
-
链路状态ID(Link-State ID)
-
4个字节。LSA的标识。不同的LSA类型,对该字段的定义是不同的。作用是与LSA数据包中的LS Type和LSA description一起描述一个LSA。
-
-
通告路由器(Advertising Router)
-
4个字节。始发路由器, 产生该LSA的路由器的Router-ID。
-
-
链路状态序列号(Link-Sate Sequence Number)
-
4个字节。该LSA的序列号,该字段用于判断LSA的新旧或是否存在重复。一般存储在LSDB中的LSA的序列号都是最新的。
-
-
链路状态校验和(Link-State Checksum)
-
2个字节。验证数据真实性。
-
校验和会参与LSA的新旧比较。当两条LSA三元组相同,并且序列号也相同时,则可以使用校验和比较,和大的认定为新。
-
-
长度(Length)
-
2个字节。一条LSA的总长度(包括包头)。
-
LSA类型
这里只介绍6种常用LSA。
-
Router-LSA(1类)
-
描述区域内部每一个路由器与其直连的路由器的链路信息(包括链路类型、开销值等)。
-
这类LSA仅在区域内传递。
-
每一台路由器都会产生这类LSA。
-
-
Network-LSA(2类)
-
描述区域内的MA网络(广播网络、NBMA网络)链路的路由器及掩码信息,仅在区域内部传输。
-
仅在区域内传输。
-
只由DR产生。
-
-
Summary-LSA(3类)
-
在整个OSPF区域内,描述其他区域的链路信息。
-
以子网形式传播,类似于转递路由信息。
-
只由ABR产生。
-
该类LSA跨区域传播时,因转发时的通告路由器不同,故与非跨区域传输情况下相比,虽然描述的是同样的信息,但不是同一条LSA。
-
-
Asbr-summary-LSA(4类)
-
描述到ASBR的信息。
-
只由ABR产生,且在ASBR本区域内的路由器不会产生到达该ASBR设备的4类LSA。
-
-
AS-extenal-LSA(5类)
-
传递域外路由信息。
-
描述AS外部引入的路由信息,会传播到AS内的所有区域(除特殊区域)。
-
只由ASBR产生。
-
5类LSA生成的路由信息标志为O_ASE,优先级为150。
-
-
NSSA-LSA(7类)
-
描述在NSSA区域引入的AS外部路由信息。
-
由NSSA区域的自治域边界路由器ASBR产生。
-
只出现在NSSA和Totally-NSSA区域,不进入区域0(骨干区域)。
-
7类LSA生成的路由信息标志为O_NSSA,优先级为150。
-
LSA数据包
1类LSA(Router-LSA)
该类型LSA头部中的链路状态ID(Link-State ID)为生成LSA的Router ID。
-
0(无含义)
-
标志位
-
V位(Virtual Link Endpoint Bit):如果该位置为1,表示该路由器为Virtual Link的端点。路由器启用虚链路功能,该位会被置为1。
-
E位(External Bit):该位置为1,则表示该路由器为自治系统边界路由器(ASBR)。
-
B位(Border Bit):该位置为1,则表示该路由器为区域边界路由器(ABR)。
-
-
0(无含义)
-
链路数量(links)
-
该条LSA描述的链路信息数量,包括路由器上处于某区域中的所有链路和接口。
-
-
链路ID(Link ID)
-
路由器所接入的目标,其值取决于连接的类型。
-
当链路类型为Trans net时
-
该字段为本网络的DR的IP地址。
-
-
当链路类型为P2P时
-
该字段为该网段对端的路由器的Router id。
-
-
当链路类型为末梢网络时
-
该字段为该网段的网络地址。
-
-
当链路类型为虚拟链路时
-
该字段为虚链路邻居的Router id。
-
-
-
链路数据(Link Data)
-
连接数据,其值取决于连接的类型。
-
当链路类型为Trans net时
-
该字段为本路由器在该网段的IP地址。
-
-
当链路类型为P2P时
-
该字段为本路由器在该网段的与对端路由器相连的接口IP地址。
-
-
当链路类型为末梢网络时
-
该字段为该网段的子网掩码。
-
-
当链路类型为虚拟链路时
-
该字段为去往该虚连接邻居的本地接口的IP地址。
-
-
-
链路类型(Type)
-
描述该接口的二层类型
-
值为1表示该路由器是点到点连接到另一台路由器,即P2P网络(PPP)。
-
值为2表示该路由器是连接到传输网络,即Trans net网络(NBMA或者广播网络)。
-
值为3表示该路由器是连接到stub网络,即末梢网络(P2P或者环回口,由Data中的子网掩码判断具体类型,只有环回口能有32位的掩码)。
-
值为4表示是虚拟链路(虚链路)。
-
-
-
TOS的数量
-
连接不同的TOS数量。
-
-
度量值(metric)
-
链路的开销值。
-
-
TOS
-
服务类型。
-
-
0(无含义)
-
TOS度量(TOS metric)
-
和指定TOS值相关联的度量。
-
-
链路ID、链路数据……
-
描述下一条链路信息。
-
2类LSA(Network-LSA)
该类型LSA头部中的链路状态ID(Link-State ID)为DR的接口IP地址。
-
网络掩码(Network Mask)
-
该MA网络中的网络地址掩码信息。
-
-
连接路由器(Attached Router)
-
连接在同一个网络上的所有路由器的Router ID。如果有多台路由器接入 MA 网络,就使用多个字段描述。
-
3类LSA(Summary-LSA)和4类LSA(Asbr-summary-LSA)
3类和4类LSA具有相同的格式,它们都是由ABR产生。
Summary-LSA中,LSA头部中的链路状态ID(Link-State ID)为通告的网络地址。
ASBR Summary LSA中,LSA头部中的链路状态ID(Link-State ID)表示ASBR的Router ID。
-
网络掩码(Network Mask)
-
Summary-LSA中,该MA网络中的网络地址掩码信息。
-
ASBR-Summary-LSA中,此字段无意义,设置为0.0.0.0(RFC规定)。
-
-
度量值(metric)
-
Summary-LSA中,为ABR到达目的地址的开销值。
-
ASBR-Summary-LSA中,为ABR 自己到达 ASBR 的开销值。
-
-
TOS
-
服务类型。
-
-
TOS metric
-
和指定TOS值相关联的度量。
-
-
注意
-
在通告缺省路由时,Link State ID和Network Mask都设置为0.0.0.0。
-
5类LSA(AS-External-LSA)
该类型LSA头部中的链路状态ID(Link-State ID)为通告的网络地址。
-
网络掩码(Network Mask)
-
通告的目的地址掩码信息。
-
-
E
-
外部度量值类型
-
0代表为第一类外部路由。
-
1代表为第二类外部路由。
-
-
-
度量值(metric)
-
到达目的地址的开销值。
-
-
转发地址(Forwarding Address)
-
到所通告的目的地址的报文将被转发到这个地址。
-
该字段如果非0,数据包直接发往FA地址(通常为ASBR的下游接口地址),如果为0,数据包发往ASBR的Router ID。
-
-
外部路由标签(External Route Tag)
-
添加到外部路由上的标记。OSPF本身并不使用这个字段,它可以用来对外部路由进行管理(如与路由策略配合等)。
-
-
TOS
-
服务类型。
-
-
TOS metric
-
TOS附加的距离信息。
-
-
注意
-
AS-External-LSA的LSA可以用来通告缺省路由,此时Link State ID和Network Mask都设置为0.0.0.0。
-
7类LSA(NSSA-LSA)
7类和5类LSA的报文格式基本一样。
-
需要要注意的是,NSSA-LSA数据包中具有一个传播位(P-bit),由ASBR设置,该字段置1时,ABR会将此7类LSA转换为5类LSA。为0时,则仅保留在NSSA内部,不转换。