目录
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内部,不转换。