要理解OSPF路由协议的工作原理,特别是路由更新机制,首先就要对它的各种报文格式有一个全面的了解。OSPF报文主要有5种:Hello报文、DD (Database Description,数据库描述)报文、LSR (LinkState Request,链路状态请求)报文、LSU(LinkState Update,链路状态更新)报文和LSAck(LinkState Acknowledgment,链路状态应答)报文。它们各自在OSPF路由更新中所担当的用途不一样,报文格式也存在比较大的差别。

OSPF 的报文格式

OSPF 的报文直接封装在IP 数据包 协议号为89 一个比较完整的OSPF 报文格式如下

IP header

Ospf packet header

Number LAS s

LSA header

lsa Data

1.       OSPF 报文头

OSPF 有五种报文类型 它们有相同的报头

version(8)

Type(8)

Packet length(16)

Router-id(32)

Area-id(32)

Checksum(16)            

Autype(24)

Authentication(32)

Authentication(32)

字段解释如下

Version 是ospf 的版本 ospfv2 其值为 2

Type :ospf 类型有五种报文 分别为 1: hello 2:dd 3:lsr 4 :lsu 5 lsack

Packet length ospf 报文的总长度 包括报头在内 单位是字节

Router-id 始发该LSA的路由器ID

Area-id 始发该LSA 的区域ID

Checksum :对整个报文校验

Autype :验证类型 可分为不验证、明文验证、MD5验证 值分别为 0 1 2

Authenication :其值根据验证类型来定义, 验证为0时未作定义 为1是为密码验证 为2时为KEY-ID 和密码的MD5 验证

MD5数据添加在OSPF 报文后面不在authentication 字段里

二:hello 报文 (hello packet)

它是周期性的发送 来维持邻居关系 和dr /bdr 选举内容主要包括:定时器数值、DR BDR 以及自己已知的邻居 起报文格式如下图

 

Version(8)

1

Packet length(16)

Router-id(32)

Area-id(32)

Checksum(16)     

Autype(24)

Authentication(32)

Authentication(32)

Network mask(32)

Hellointerval   (16)                            options  (8)              RTR pri

Routerdeadtimeinterval(32)

DR(32)

BDR(32)

Neighbor (32)

--------

Network mask 发送hello 包 时 接口下的子网掩码不同不能建立邻居关系

Hellointerval 发送hello 报的时间间隔不同不能建立邻居关系

RTr pri :路由器的本地优先级

Routerdeadtimeinterval:失效时间 如果在规定的时间内没有收到来自邻居的hello包则视为失效,失效时间间隔不同不能建立邻居

Designated router 指路由器本地接口的IP

Neighbor 指邻居路由器的Ip

DD 报文(database description packet )

两台路由器进行数据库同步时,用DD报文来描述自己的LSDB 内容包括LSDB中每一条LSA 的header   LSA header 只占一个条LSA的整个数据流的一小部分 这样可以减少路由器之间的协议报文流量,对端的路由器可以根据LSA 的头部 能够判断是否有这条LSA

Version(8)

2

Packet length(16)

Router-id(32)

Area-id(32)

Checksum(16)            

Autype(24)

Authentication(32)

Authentication(32)

interface MTU

option

i=1   M=1   ms=1 

DD Sequence number

LSA header

 主要字段解释如下:

Interface MTU :在不分片情况下 在接口处容许最大发出的IP报文长度

I(initial)当发送连续的DD 时 如果是第一个报文则为1

M(more) 表示多个DD 连续发送报文,如果是最后一个dd 则表示为0 反则为1

MS :在双方交换DD 时还要确认他们的主从关系 ms=1 表示发送方为主位

Dd sequence number :双方用序列号来确认DD 收发的持续性和完整性

三:LSR报文(link state request)

两台路由器互相交换数据到最后一个LSA 时 如果一方发现自己还有很多不知道的DD 时就会请求对方 lsr 来继续更新自己的DATABASE

Version(8)

3

Packet length(16)

Router-id(32)

Area-id(32)

Checksum(16)            

Autype(24)

Authentication(32)

Authentication(32)

LS TYPE

Link state ID

Advertising  router

 LS Type :LSA 的类型 例如Type 1表示router lsa

Link state ID 链路状态标识

Advertising router: 产生此lsa 的路由器

5.LSU 报文

LSU 是对LSR 寻求的回答

Version(8)

4

Packet length(16)

Router-id(32)

Area-id(32)

Checksum(16)            

Autype(24)

Authentication(32)

Authentication(32)

Number of LSAs

LSAs

Number of LSAs 该报文包含LSA 的数量

LASs :包含所有的LSA

6.LSAck 

LSACK 报文是用来对接收到的LSU 报文的进行确认的 内容是需要确认LSA 的header

Version(8)

Type(8)

Packet length(16)

Router-id(32)

Area-id(32)

Checksum(16)            

Autype(24)

Authentication(32)

Authentication(32)

LSA header

LSA header :该报文包含LSA 的头部

7.LSA 头格式

所有的LSA 都有相同的报文头

LS age

Options

LS type

Linke state ID

Adbertising router

LS sequence number

Ls checksum

length

LS age :LSA 产生后所经过的时间 LSA 会在LSDB中有老化时间 但在传输过程中不会

LS type :LSA 类型 3 4 5 7

LS sequence number 其他路由器可以根据其值来判断是否是最新的LSA

Length:LSA 的总长度 以字节为单位

LS checksum 对LSA 的报文检查出了LS age

LSA 类型

LS age

Options

1

Linke state ID

Adbertising router

LS sequence number

Ls checksum

length

0

V

E

B

0

#links

Link id


Type

Tos

metric



TOS

0

TOS metric

Link ID


Link data


Link state id :产生此LSA 的路由器的router id

V(virtual link) 如果产生此LSA 的路由器是虚连接的端点 则 值为1

E (external): 如果产生此LSA 的路由器是ASBR 值为1

B (border):如果产生此LSA 的路由器是ABR 值为1

#links:LSA 中所描述的链路信息的数量,包括路由器处于某区域中所有链路和接口

Link ID :链路标识 具体的数值根据链路类型而定

Link data 链路数据具体的值根据类型而定

Type :链路类型 取值为1表示通过点对点链路与另一个路由器相连,取值为2 表示连接到传送网络,取值为3 表示连接到STUB 网络 取值为4 表示虚电路

#TOS 链路不同方式的数量

Metric :链路开销

Tos :服务类型

Tos metric :指定服务类型的链路开销

2.       network LSA

它是由广播或NBMA 网络中的DR 发出,LSA 中记录了这一段上所以路由器的router-id

LS age

Options

2

Linke state ID

Adbertising router

LS sequence number

Ls checksum

length

Network mask

Attached router

Link state id :DR 的IP 地址

Network mask :BMA/NBMA 网络地址的掩码

Attached router:连接在同一网段上的所有与DR 建立邻接关系的router-id 也包括自身的router-id

3.       summary LSA

network summary LSA(type3) 和ASBR summary LSA (type4)

LS age

Options

3 or 4

Linke state ID

Adbertising router

LS sequence number

Ls checksum

length

Network mask

0

metric 

Tos

tos metric

Link state id :对于type3来说 它是通告到区域外的网络地址 对于type4来说 它是通告到区域外的ASBR的router id

Network mask :BMA/NBMA 网络地址的掩码

Attached router:连接在同一网段上的所有与DR 建立邻接关系的router-id 也包括自身的router-id

4.       AS external LSA

由ASBR 产生 描述到AS 外部的路由信息

LS age

Options

3 or 4

Linke state ID

Adbertising router

LS sequence number

Ls checksum

Length

Network mask

E

0

metric

Forwarding address

External route lag

E

tos

tos metric

Forwarding address

External route lag

主要字段解释

Link state id :所要通告的其他外部AS 的目的地址,如果通告的是一条是缺省路由则LS ID和子网掩码都为0.0.0.0

Network mask :所通告的目的地址掩码

E: 外部度量值

5.       NSSA external LSA

由NSSA 区域内的ASBR产生 并且在NSSA 内部传送和type5 相似






转载于:https://blog.51cto.com/12633577/1901361