ospf 协议

ospf 协议

一、分类

ospf 属于动态路由协议、IGP(内部网关协议)使用 ls 算法

ospf 根据链路开销选择最优路径

二、为什么要使用 ospf

rip 的缺点

  1. 收敛速度慢: 网络改变后收敛速度慢, 需要经过刷新计时器后才会删除
  2. 可扩展性不高: rip 跳数限制为 16, 最大中间路由数量 15 个
  3. 带宽消耗大: rip 每隔 30 秒发送更新报文, 带宽消耗高
  4. 度量值不科学: 使用距离作为度量值

三、ospf 原理

实验拓扑图

1、收敛过程

步骤 过程描述 相关机制
1. 初始化路由表 路由器启动后,基于直连接口生成初始类型 1 LSA(Router LSA),并加入 LSDB。同时自动通过 Hello 报文发现邻居。 路由器开机后自动触发 Hello 报文检测邻居并更新初始路由表。
2. 邻居发现 使用 Hello 报文检测相邻路由器。邻居关系从 Down -> Init -> 2-Way 状态。 - Down:未收到对方 Hello- Init:收到 Hello,但未建立双向通信- 2-Way:双向通信已建立。Hello 间隔(默认 10 秒),Dead 间隔(默认 40 秒)。在广播网络中,达到 2-Way 状态后,进行 DR 和 BDR 的选举。
3. 邻接建立 2-Way 状态后,确定是否需要建立邻接关系。需要建立邻接的路由器关系进入 ExStartExchangeLoading,最终达到 Full 状态。 - ExStart:协商主从关系,初始化 DD 序列号。
- Exchange:交换 DD(Database Description)报文,包含 LSA 头部摘要信息。
- Loading:通过 LSR(Link State Request)和 LSU(Link State Update)请求和接收完整的 LSA 信息。
- Full:邻接关系完全建立,LSDB 同步完成。
4. LSA 生成和传播 路由器根据网络拓扑生成 LSA,包括类型 1(Router LSA)、类型 2(Network LSA)等。通过 LSU 报文将 LSA 传播给邻居,更新 LSDB。 - LSA 类型: - 类型 1(Router LSA):描述路由器自身的链路信息。 - 类型 2(Network LSA):由 DR 生成,描述多访问网络的信息。- 使用 DD、LSR、LSU、LSAck 报文完成 LSA 的交换和确认。
5. 路由计算(SPF算法) 基于最新的 LSDB,运行 SPF 算法计算最短路径树,生成路由表。 SPF 计算触发条件:LSDB 发生变化时触发。
6. 路由表更新 SPF 计算完成后,将结果写入路由表,供数据转发使用。 数据转发优先选用 OSPF 计算的路由。
7. 刷新计时器 当 LSA 的 Age 字段达到 30 分钟(1800 秒),即使拓扑未发生变化,也会重新生成(序列号加 1,Age 重置)并发布自己的 LSA。 更新 LSA 的 Age 字段为 0,序列号加 1,重新传播。
8. LSA 老化 当 LSA 的 Age 字段达到 3600 秒(1 小时),LSA 被标记为过期并从 LSDB 中删除。 老化后删除记录。
9. 拓扑变化检测 如果链路或邻居状态发生变化,路由器生成新的 LSA,并通过 LSU 更新邻居的 LSDB,触发 SPF 重新计算。 更新 LSA 的 Age 字段为 0,序列号加 1,重新传播。
10. 收敛 全部路由器同步 LSDB,运行 SPF 算法后,OSPF 网络完成状态更新并达到一致性。 收敛速度与网络大小和拓扑变化复杂度有关。

2、ospf 特点

功能 描述
发送数据包 224.0.0.5 用于所有OSPF路由器的通信,如Hello包和DR的LSA通告。
224.0.0.6 用于非DR路由器向DR/BDR发送LSA更新。
基于 ip 协议号 89
支持 支持vlsm, 认证
节省流量 使用增量更新
快速收敛 支持自动触发更新, 没有rip的抑制更新, rip在抑制状态下会导致收敛过慢

3、OSPF 邻居状态机状态表

状态 描述
Down 初始状态,路由器尚未收到邻居的任何 OSPF 报文。在此状态下,路由器开始在接口上发送 Hello 报文以发现邻居。
Attempt 仅适用于非广播多访问(NBMA)网络。路由器主动尝试与邻居建立通信,定期发送 Hello 报文,但尚未收到邻居的回应。
Init 路由器收到了邻居的 Hello 报文,但自己的 Router ID 未出现在邻居的 Hello 报文中,表示单向通信,尚未建立双向通信。
2-Way 路由器在邻居的 Hello 报文中看到了自己的 Router ID,确认双向通信已建立。在多访问网络中,处于此状态的路由器将参与 DR 和 BDR 的选举。
ExStart 开始与邻居建立邻接关系,协商主从(Master/Slave)关系,准备交换数据库描述(DD)报文。
Exchange 交换 DBD 报文,分享各自的链路状态摘要信息,以了解对方的链路状态数据库内容。
Loading 路由器通过发送链路状态请求(LSR)报文,向邻居请求所需的链路状态信息,并接收链路状态更新(LSU)报文,更新本地链路状态数据库。
Full 邻接关系完全建立,链路状态数据库已同步。路由器与邻居之间达到了最高级别的邻接状态,可以正常进行路由计算和数据转发。
邻居的状态

4、接口在 ospf 网络的角色

状态 描述
Down 接口未启用或未运行 OSPF,或物理/数据链路层故障,OSPF 不在此接口上发送或接收报文。
Loopback 接口被设置为环回状态,OSPF 将其视为稳定的 Point-to-Point 接口,常用于测试或管理。
Waiting 接口等待 DR/BDR 选举完成,在多访问网络中启动时进入此状态,等待计时器到期或收到包含 DR/BDR 信息的 Hello 报文后退出。
Point-to-Point 接口被配置为点对点网络类型,直接连接两个路由器,不进行 DR/BDR 选举,邻居关系建立过程简化。
DR 接口被选举为指定路由器,负责在多访问网络中泛洪链路状态信息,减轻网络负担。
BDR 接口被选举为备份指定路由器,当 DR 失效时接替其角色,确保网络稳定性。
DROther 接口既不是 DR,也不是 BDR,与 DR/BDR 建立完全的邻接关系,与其他 DROther 路由器保持 2-Way 状态。
Point-to-Multipoint 接口被配置为点到多点网络类型,适用于 NBMA 网络,将每个连接视为独立的点对点链接,不进行 DR/BDR 选举。
Point-to-Multipoint Non-Broadcast 类似于 Point-to-Multipoint,但需要手动配置邻居,适用于不支持广播或多播的网络。
接口角色

5、配置

配置接口 Ip

1
2
R1(config-if)#int fa0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.252
1
2
3
4
R2(config)#int fa0/0
R2(config-if)#ip address 192.168.1.2 255.255.255.252
R2(config)#int fa0/1
R2(config-if)#ip address 192.168.1.5 255.255.255.252
1
2
3
R3(config)#int fa0/0
R3(config-if)#ip ad
R3(config-if)#ip address 192.168.1.6 255.255.255.252

配置 ospf

1
2
R1(config)#router ospf 10
R1(config-router)#network 192.168.1.0 0.0.0.3 area 0
1
2
3
R2(config)#router ospf 10
R2(config-router)#network 192.168.1.0 0.0.0.3 area 0
R2(config-router)#network 192.168.1.4 0.0.0.3 area 0
1
2
R3(config)#router ospf 10
R3(config-router)#network 192.168.1.4 0.0.0.3 area 0
字段 描述
Link ID Link ID 是该链路状态广告(LSA)的标识符。通常,对于 Router LSA,它是广告此信息的路由器的 Router ID, 不同类型Link ID不同
ADV Router Advertising Router是生成并发布此 LSA 的路由器的 Router ID
Age Age 表示 LSA 在网络中存活的时间(以秒为单位)。初始值为 0,每秒递增。最大值为 3600 秒(1 小时),到达该值后 LSA 将被刷新或从数据库中删除。LSA更新后会清空
Seq# Sequence Number 是 LSA 的序列号,用于确保最新的 LSA 覆盖旧的 LSA。较大的序列号表示更新的 LSA。初始序列号为 0x80000001,之后逐渐递增。链路状态状态变化或者周期性刷新会更新seq
Checksum Checksum 是用于验证 LSA 完整性的校验和,确保 LSA 数据未在传输过程中被更改。
Link count Link count 表示此 LSA 中描述的链路数量,在 Router LSA 中,这个值表示该路由器的链路总数
1
2
3
4
5
6
7
R1#show ip ospf database 
OSPF Router with ID (192.168.1.1) (Process ID 10)

Router Link States (Area 0)

Link ID ADV Router Age Seq# Checksum Link count
192.168.1.1 192.168.1.1 10 0x80000001 0x008491 1

上面R1已经生成了一条LSA条目类型为1, Type 2需要在邻居建立Full后生成

可以通过查看具体的类型和直接连接router是LSA类型

1
show ip ospf database router
LSA类型 描述 生成者 链路状态 ID 传递范围
类型1 路由器 LSA(Router LSA) 每个路由器 包含路由器的 Router ID 仅在同一区域内传播
类型2 网络 LSA(Network LSA) 指定路由器(DR) DR接口的 IP 地址 仅在同一区域内传播
类型3 摘要 LSA(Summary LSA) 区域边界路由器(ABR) 区域内网络的 网络地址 跨区域传播
类型4 摘要 ASBR LSA(Summary ASBR LSA) 区域边界路由器(ABR) ASBR的 Router ID 跨区域传播
类型5 外部 LSA(External LSA),也称为 自治系统外部 LSA(AS External LSA) ASBR(自治系统边界路由器) 外部路由的目标网络地址 跨区域传播
类型6 多播 LSA(Multicast LSA) 不支持 不使用 不支持
类型7 NSSA LSA(Not-so-Stubby Area LSA),用于 NSSA 区域,类似于类型5的外部 LSA ASBR(自治系统边界路由器) 外部网络的 网络地址 NSSA 区域内传播

选举 routerID(Down)

选举规则

查看接口 ospf 信息, 这里可以看到选举出来的 router id 为 192.168.1.1,

Process ID 10 ospf使用进程号

State WAITING接口角色为WAITING 表示正在等待选举DR/BDR

Hello 10, Dead 40, Wait 40, Retransmit 5

1
R1#show ip ospf interface  fa0/0

FastEthernet0/0 is up, line protocol is up
Internet address is 192.168.1.1/30, Area 0
Process ID 10 , Router ID 192.168.1.1, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State WAITING , Priority 1
No designated router on this network
No backup designated router on this network
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:10
Index 1/1, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 1
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 0, Adjacent neighbor count is 0
Suppress hello for 0 neighbor(s)

通过选举规则可以推断出R2和R3的路由id为192.168.1.5和192.168.1.6

6、建立邻居的过程(Init -> 2-Way)

发送组播Hello报文

建立邻居的过程会检查以下参数是否一致:

区域 ID(Area ID)

认证类型和密码

Hello 间隔

死区间隔

子网掩码

ospf 报文头格式

ospf 报文头
字段 长度 说明
Version 8 位 表示 OSPF 协议的版本号,OSPFv2 用于 IPv4,OSPFv3 用于 IPv6。
Type 8 位 表示 OSPF 包的类型,包括 Hello 包、DBD 包、LSR 包、LSU 包、LSAck 包。
Packet Length 16 位 表示整个 OSPF 包的长度,包括头部和数据部分,单位是字节。
Router ID 32 位 唯一标识发送该 OSPF 包的路由器的 ID,通常为一个 IP 地址格式。
Area ID 32 位 表示 OSPF 区域的 ID,主干区域的 ID 为 0。
Checksum 16 位 用于验证 OSPF 包头的完整性,接收方通过校验和检查数据传输的准确性。
Autype 16 位 指示认证类型,包括无认证(0)、简单密码认证(1)、MD5 认证(2)等。
Authentication 64 位 包含认证信息,具体内容取决于认证类型,用于 OSPF 消息的安全性保证。

hello 报文

ospf hello 包格式
字段 长度 说明
Network Mask 32 位 网络掩码,指定 OSPF 接口的子网掩码。
HelloInterval 16 位 Hello 间隔,指定 Hello 包的发送频率(秒)。
Options 8 位 OSPF 选项字段,表示路由器支持的 OSPF 特性。
Rtr Pri (Router Priority) 8 位 路由器优先级,用于 DR/BDR 选举,优先级越高越有可能成为 DR。
RouterDeadInterval 32 位 死间隔,表示在该时间(秒)内未收到邻居的 Hello 包即认为其不可达。
Designated Router 32 位 指定路由器(DR)的 IP 地址。
Backup Designated Router 32 位 备份指定路由器(BDR)的 IP 地址。
Neighbor 32 位 邻居的 Router ID,用于记录在网络上直接相连的邻居路由器。
可能有多个 Neighbor 字段,每个字段表示一个邻居的 Router ID。

路由器启动后会自动发送一个 hello 包, 之后会以 10 秒的默认间隔发送 hello 包, 死间隔时间一般为 hello 包间隔的 4 倍

R1->R2的第一次hello报文

上面包由ospf头和hello报文和本地链路信令数据块(LLS))组成

**本地链路信令数据块(LLS):**用于扩展ospf, 会在发送的ospf数据包后面加上LLS Data Block,上面R1->R2发送的hello报文也被加上了LLS, 启用扩展选项LR, 主要用于在优雅重启期间通知 OSPF 邻居进行 链路状态数据库的重新同步

字段 长度 说明
LLS Checksum 16 位 LLS Data Block 的校验和,用于数据完整性验证。
LLS Data Length 16 位 LLS Data Block 的总长度(字节数,不包括 OSPF 报文的其他部分)。
TLVs 可变 TLV(Type-Length-Value)结构,包含多个控制信息,每个 TLV 传递特定类型的 OSPF 控制数据。
LLS报文格式
字段 长度 说明
Type 16 位 TLV 类型,标识该 TLV 的类型(例如 EO-TLV、NC-TLV 等)。
Length 16 位 TLV 值的长度(不包括 Type 和 Length 字段的长度),单位为字节。
Value 可变 TLV 的具体内容,根据类型不同而不同。例如 EO-TLV 中的选项标志,NC-TLV 中的邻居控制标志等。
TLVs字段格式
TLV 名称 类型编号 长度 说明
Extended Options and Flags (EO-TLV) 1 4 字节 包含 OSPF 的扩展选项和标志位,用于启用特定的 OSPF 功能。
Neighbor Control (NC-TLV) 2 4 字节 邻居控制标志,用于防止 OSPF 邻居关系因 Hello 包丢失而过期,适用于高丢包环境。
OSPF Restart Signaling (RS-TLV) 3 4 字节 在优雅重启(Graceful Restart)过程中,通知邻居路由器当前处于重启状态,避免邻居关系被中断。
Cryptographic Authentication TLV 5 可变 用于在 LLS 数据块中实现加密认证,增强 OSPF 报文的安全性。
Checksum TLV 7 4 字节 提供对 LLS Data Block 的额外校验,用于确保数据传输的完整性。
TLVs类型表
1
2
3
4
R2#show ip ospf neighbor 
Neighbor ID Pri State Dead Time Address Interface
192.168.1.1 1 INIT/DROTHER 00:00:40 192.168.1.1 FastEthernet0/0
192.168.1.6 1 INIT/DROTHER 00:00:40 192.168.1.1 FastEthernet0/1

R2收到R1的hello报文后, R2 上已经有了邻居 R1, 但是状态为 init 因为在接收数据包的时候, R1 发送的数据包没有带有 R2 的 router-id, 但是在 R1 下一次发送数据包会带上 R2 的 router-id 因为第一次接收的时候已经加入了邻居 R2, 这个时候 R2 接收第二个 R1 的 hello 报文后 R2 上的邻居状态就会为 2-Way

第二次R1->R2的hello报文

上面数据包已经在邻居字段带上R2的router-id了

这里R2第二次收到R1的数据包后接口状态改为了2WAY, 因为这次R1发送的数据包有了R2的router-id

1
2
3
4
R2#show ip ospf neighbor 
Neighbor ID Pri State Dead Time Address Interface
192.168.1.1 1 2WAY/DROTHER 00:00:40 192.168.1.1 FastEthernet0/0
192.168.1.6 1 2WAY/DROTHER 00:00:40 192.168.1.1 FastEthernet0/1

然后同样的步骤R1和R2建立了邻居, R2和R3建立了邻居关系

后续默认每隔10s发送一次hello报文keeplive

7、建立邻接关系(ExStart)

选举BR和BDR

在选举DR和BDR的时候接口状态为ExStart

只有广播网络会选取 DR 和 BDR, p2p 类型网络不需要选举

选举DR和BDR的作用: 减少链路状态更新的冗余, 集中管理LSA

如果没有DR的话 邻接关系有n(n-1)/2个, 有DR的话只需要2(n-2)+1个

路由器通过收到的邻居选举dr和bdr

R1[fa0/0] -> R2[fa0/0]网络需要选举出一个BR和BDR R2[fa0/1] -> R3[fa0/0]也需要选举一个BR和BDR

R1[fa0/0] -> R2[fa0/0]网络

由于R2的路由id 192.168.1.5 > 192.168.1.1 所以指定路由为R2, 备份指定路由为R1

1
2
3
R1#show ip ospf neighbor 
Neighbor ID Pri State Dead Time Address Interface
192.168.1.5 1 EXSTART/DR 00:00:30 192.168.1.2 FastEthernet0/0
1
2
3
4
R2#show ip ospf neighbor 
Neighbor ID Pri State Dead Time Address Interface
192.168.1.1 1 EXSTART/BDR 00:00:39 192.168.1.1 FastEthernet0/0
192.168.1.6 1 EXSTART/DR 00:00:30 192.168.1.6 FastEthernet0/1

R2[fa0/1] -> R3[fa0/0]网络

由于R3的路由id 192.168.1.6 > 192.168.1.5 所以指定路由为R3, 备份指定路由为R2

1
2
3
4
R2#show ip ospf neighbor 
Neighbor ID Pri State Dead Time Address Interface
192.168.1.1 1 EXSTART/BDR 00:00:39 192.168.1.1 FastEthernet0/0
192.168.1.6 1 EXSTART/DR 00:00:30 192.168.1.6 FastEthernet0/1
1
2
3
R3#show ip ospf neighbor 
Neighbor ID Pri State Dead Time Address Interface
192.168.1.5 1 EXSTART/BDR 00:00:40 192.168.1.5 FastEthernet0/0

选举完成后会在DR上生成LSA记录 类型为2

1
2
3
4
5
6
7
8
9
10
11
12
13
R2#show ip ospf database

OSPF Router with ID (192.168.1.5) (Process ID 10)

Router Link States (Area 0)

Link ID ADV Router Age Seq# Checksum Link count
192.168.1.5 192.168.1.5 294 0x80000003 0x009C4B 2

Net Link States (Area 0)

Link ID ADV Router Age Seq# Checksum
192.168.1.2 192.168.1.5 630 0x80000002 0x009AEA

8、邻接关系初始化(Exchange)

只和DR和BDR建立邻接关系

主从选举(单播DD报文)

DD报文格式

DD报文格式
字段 长度 描述
Interface MTU 16 位 接口的最大传输单元(MTU),用于防止发送超过邻居接口可处理的最大数据大小。
Options 8 位 OSPF 的选项字段,包含一些协议扩展位,用于表明发送方支持的 OSPF 功能。
00000 5 位 保留字段,值通常为 0。
I(Initial) 1 位 初始位,表示这是第一个 DD 报文,用于邻居状态初始化。
M(More) 1 位 更多位,指示是否还有更多的 DD 报文需要发送。M 位为 1 表示后续还有 DD 报文,为 0 表示这是最后一个。
M/S(Master/Slave) 1 位 主/从位,值为 1 表示发送方为 Master,值为 0 表示 Slave(router-id大的为master)。
DD Sequence Number 32 位 数据库描述报文的序列号,用于主从之间的报文同步和确认。
LSA Headers 可变 链路状态广告(LSA)头部,包含路由器的链路状态信息摘要,帮助邻居快速同步链路状态数据库。

R1-> R2的第一次DD报文

上面数据包用来和R2协商主从关系和建立序列号, I表示这是第一个包用来, M表示这不是最后一个报文后续还会有DD报文, MS在这里表示假设成为Master

R2-> R1的DD报文

这里由于R2的router-id比R1大所以R2是Master, R1是Slave, 协商好后之后R1和R2就使用Master发送的序列号作为后续序列号(DB Sequence)并且每次+1

1
2
3
R1#show ip ospf neighbor 
Neighbor ID Pri State Dead Time Address Interface
192.168.1.5 1 EXCHANGE/DR 00:00:35 192.168.1.2 FastEthernet0/0

R1的接口状态已经为EXCHANGE这是因为邻接关系和主从关系已经建立成功开始准备发送带有LSA的DD报文了

发送LSA信息(单播DD报文)

字段名称 长度 说明
LSA Age 16 位 表示 LSA 已在网络中存在的时间(以秒为单位)。这个字段的值每秒递增,最大值为 3600 秒(1 小时)。
Options 8 位 指定此 LSA 支持的 OSPF 特性和选项,例如多播、优雅重启等。
LSA Type 8 位 指定 LSA 的类型,用于标识不同的 OSPF LSA 类型(如 Router LSA、Network LSA、External LSA 等)。
Link State ID 32 位 标识该 LSA 的链路状态 ID,对于不同类型的 LSA,此字段的含义不同。
Advertising Router 32 位 生成并发布此 LSA 的路由器的 Router ID,用于标识 LSA 的来源。
Sequence Number 32 位 此字段用于判断 LSA 的新旧版本。更高的序列号表示更新的 LSA。
Checksum 16 位 LSA 的校验和,用于确认 LSA 数据的完整性,确保 LSA 在传输过程中未被修改。
Length 16 位 此 LSA 的总长度(以字节为单位),包括头部和数据。
LSA Header格式

发送的DB Sequence为R2第一次发送给R1DD数据包里面的DB Sequence字段, M表示不是最后一个数据包, 这个数据包已经没有MS, 因为在选举的结果R1是Slave

这里发送了一条LSA Header给R2, 这是R1 LSDB 摘要信息, 主要用来让R2选择什么信息是它需要的

R1->R2的第二次DD报文

R2->R1的第二次DD报文

发送的DB Sequence在3384的基础上增加了1, M表示后面还有DD报文, MS表示是Master

之后还会发送一个DD报文用来确认同步完成

9、请求LSA(Loading)

发送LSR报文(单播)

LSR报文格式

字段 长度 含义
LS type 32比特 LSA的类型号。
Link State ID 32比特 LSA 的链接状态 ID,标识链路状态的具体对象。
Advertising Router 32比特 生成并发布该 LSA 的路由器的 ID。

R1->R2的LSR报文

R1会根据收到的DD报文的LSA Header来请求自己需要的路由信息

R2->R1的LSR报文

10、回复LSA(Loading)

发送LSU报文(单播)

收到LSR后根据请求的LSA返回对应的LSU, 对端接收到后如果seq大于本地就进行更新, 更新后又会自动触发LSU报文

  • 非DR路由器将LSU发送到224.0.0.6,仅由DR/BDR接收。
  • DR会将LSU发送到224.0.0.5,让所有非DR路由器接收。

LSU报文格式

LSU报文格式

R1->R2的LSU报文

R2->R1的LSU报文

11、确认LSU(Loading)

发送LSAck报文(单播)

当路由器收到LSA后会返回LSAck报文, 如果多个LSA会打包到一个LSAck里面, 不管更新LSA没都会返回, 按原路返回

LSAck报文格式

R1->R2的LSAck报文

LSAck报文不只有回复的那几条, 因为在期间触发了多次更新报文(链路状态变化, 例如R1的link id的链路类型变化Stub Network->Transit Network), 因为R2中LSA条目Seq变化自动触发发送LSU报文

R2->R1的LSAck报文

12、计算最佳路径(Full)

路由器根据收到的LSDB计算出最佳路径, 使用SPF算法

13、常见LSA类型

类型一

I类

字段 长度 含义
Link State ID 32比特 生成LSA的Router ID。
V (Virtual Link) 1比特 如果产生此LSA的路由器是虚连接的端点,则置为1。
E (External) 1比特 如果产生此LSA的路由器是ASBR,则置为1。
B (Border) 1比特 如果产生此LSA的路由器是ABR,则置为1。
# links 16比特 LSA中所描述的链路信息的数量,包括路由器上处于某区域中的所有链路和接口。
Link ID 32比特 路由器所接入的目标,其值取决于连接的类型:1:Router ID;2:DR的接口IP地址;3:网段/子网号;4:虚连接中对端的Router ID。
Link Data 32比特 连接数据,其值取决于连接的类型:unnumbered P2P:接口的索引值;stub网络:子网掩码;其它连接:路由器接口的IP地址。
Type 8比特 路由器连接的基本描述:1:点到点连接到另一台路由器;2:连接到传输网络;3:连接到stub网络;4:虚拟链路。
# TOS 8比特 连接不同的TOS数量。
metric 16比特 链路的开销值。
TOS 8比特 服务类型。
TOS metric 16比特 和指定TOS值相关联的度量。

LSA类型1还分为4个类型

链接类型 描述 Link ID
1 与另一个路由器的点对点连接。 邻居路由器ID
2 连接到交通网络。 DR的IP地址
3 连接到存根网络。 IP网络
4 虚拟链接 邻居路由器ID
LSA类型一格式

类型二

2累

LSA类型二格式
字段 长度 含义
Link State ID 32比特 DR的接口IP地址。
Network Mask 32比特 该广播网或NBMA网络地址的掩码。
Attached Router 32比特 连接在同一个网络上的所有路由器的Router ID,也包括DR的Router ID。

类型三和类型四

3类

LSA类型三和四格式
字段 长度 含义
Link State ID 32比特 通告的网络地址。如果是ASBR Summary LSA,此字段表示ASBR的Router ID。
Network Mask 32比特 该广播网或NBMA网络地址的掩码。如果是ASBR Summary LSA,此字段无意义,设置为0.0.0.0。
metric 24比特 到目的地址的路由开销。
TOS 8比特 服务类型。
TOS metric 24比特 和指定TOS值相关联的度量。

类型五

4类

LSA类型五格式
字段 长度 含义
Link State ID 32比特 通告的网络地址。
Network Mask 32比特 通告的目的地址的掩码。
E 1比特 外部度量值类型:0:第一类外部路由;1:第二类外部路由。
metric 24比特 到目的地址的路由开销。
Forwarding Address 32比特 到所通告的目的地址的报文将被转发到这个地址。
External Route Tag 32比特 添加到外部路由上的标记。OSPF本身并不使用这个字段,它可以用来对外部路由进行管理。
TOS 8比特 服务类型。
TOS metric 24比特 TOS附加距离信息。