4.4.3.2. Router-LSAs (路由器LSA)
路由器-LSA 的 LS 类型设置为值 0x2001. 路由器-LSA 具有区域泛洪范围 (Area Flooding Scope). 路由器可以 (MAY) 为给定区域产生一个或多个路由器-LSA. 每个路由器-LSA 包含整数个接口描述. 综合起来, 路由器为一个区域产生的路由器-LSA 集合描述了该路由器连接到该区域的所有接口的收集状态. 当使用多个路由器-LSA 时, 它们通过其链路状态ID (Link State ID) 字段进行区分.
在选项 (Options) 字段左侧, 路由器能力位 (Router Capability Bits) V, E 和 B 应根据 [OSPFV2] 的第12.4.1节进行设置.
然后, 通过向路由器-LSA 附加"链路描述 (Link Descriptions)"来描述路由器在该区域的每个接口. 每个链路描述长度为16字节, 由五个字段组成: (链路) 类型 (Type), 度量 (Metric), 接口ID (Interface ID), 邻居接口ID (Neighbor Interface ID) 和邻居路由器ID (Neighbor Router ID) (参见附录A.4.3). 处于"Down"或"Loopback"状态的接口不被描述 (尽管回环接口可以向区域内前缀-LSA 贡献前缀), 没有任何完全邻接的接口也不被描述 (除了第4.9节中描述的多个备用接口的情况). 所有其他到该区域的接口添加零个, 一个或多个链路描述. 这些描述的数量和内容取决于接口类型. 在每个链路描述中, 度量 (Metric) 字段始终设置为接口的输出成本 (Output Cost), 接口ID字段设置为接口的OSPF接口ID.
点到点接口 (Point-to-point Interfaces)
如果邻居路由器完全邻接, 则添加一个类型1链路描述 (点到点). 邻居接口ID字段设置为邻居在其Hello数据包中通告的接口ID, 邻居路由器ID字段设置为邻居的路由器ID.
广播和NBMA接口 (Broadcast and NBMA Interfaces)
如果路由器与链路的指定路由器 (Designated Router) 完全邻接, 或者如果路由器本身是指定路由器且与至少一个其他路由器完全邻接, 则添加单个类型2链路描述 (传输网络). 邻居接口ID字段设置为指定路由器在其Hello数据包中通告的接口ID, 邻居路由器ID字段设置为指定路由器的路由器ID.
虚拟链路 (Virtual Links)
如果邻居路由器完全邻接, 则添加类型4链路描述 (虚拟). 邻居接口ID字段设置为邻居在其Hello数据包中通告的接口ID, 邻居路由器ID字段设置为邻居的路由器ID. 请注意, 虚拟链路的输出成本在路由表计算期间计算 (参见第4.7节).
点到多点接口 (Point-to-Multipoint Interfaces)
对于与接口关联的每个完全邻接的邻居, 添加单独的类型1链路描述 (点到点), 将邻居接口ID字段设置为邻居在其Hello数据包中通告的接口ID, 并将邻居路由器ID字段设置为邻居的路由器ID.
作为示例, 考虑路由器RT3将为图1中的区域1产生的路由器-LSA. 只需要描述单个接口, 即连接到传输网络N3的接口. 假设RT4已被选为网络N3的指定路由器.
; RT3的区域1路由器-LSA
LS age = 0 ; 新产生(重新产生)
LS type = 0x2001 ; 路由器-LSA
Link State ID = 0 ; 第一个片段
Advertising Router = 192.0.2.3 ; RT3的路由器ID
bit E = 0 ; 不是AS边界路由器
bit B = 1 ; 区域边界路由器
Options = (V6-bit|E-bit|R-bit)
Type = 2 ; 连接到N3
Metric = 1 ; 到N3的成本
Interface ID = 1 ; RT3在N3上的接口ID
Neighbor Interface ID = 1 ; RT4在N3上的接口ID
Neighbor Router ID = 192.0.2.4 ; RT4的路由器ID
例如, 如果向网络N4添加另一个路由器, RT3将不得不为其连接到(现在的传输)网络N4通告第二个链路描述. 这可以通过重新产生上述路由器-LSA来实现, 这次包含两个链路描述. 或者, 可以使用单独的链路状态ID (例如, 使用链路状态ID为1) 产生单独的路由器-LSA来描述到N4的连接.
末梢网络 (Stub Networks) 的主机路由不再出现在路由器-LSA中. 相反, 它们包含在区域内前缀-LSA中.