您的位置:首页 > 其它

OSPF 报文格式详解

2012-11-28 12:32 232 查看
OSPF 的报文格式
OSPF 的报文直接封装在IP 数据包 协议号为89 一个比较完整的OSPF 报文格式如下

IP header
Ospf packet header
Number LAS s
LSA header
lsa Data
1. OSPF 报文头
OSPF 有五种报文类型 它们有相同的报头

[align=center]Version(8)[/align]
[align=center]Type(8)[/align]
[align=center]Packet length(16)[/align]
[align=center]Router-id(32)[/align]
[align=center]Area-id(32)[/align]
[align=center]Checksum(16) [/align]
[align=center]Autype(24)[/align]
[align=center]Authentication(32)[/align]
[align=center]Authentication(32)[/align]
字段解释如下
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 以及自己已知的邻居 起报文格式如下图

[align=center]Version(8)[/align]
[align=center]1[/align]
[align=center]Packet length(16)[/align]
[align=center]Router-id(32)[/align]
[align=center]Area-id(32)[/align]
[align=center]Checksum(16) [/align]
[align=center]Autype(24)[/align]
[align=center]Authentication(32)[/align]
[align=center]Authentication(32)[/align]
[align=center]Network mask(32)[/align]
Hellointerval (16) options (8) RTR pri
[align=center]Routerdeadtimeinterval(32)[/align]
[align=center]DR(32)[/align]
[align=center]BDR(32)[/align]
[align=center]Neighbor (32)[/align]
[align=center]--------[/align]
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

[align=center]Version(8)[/align]
[align=center]2[/align]
[align=center]Packet length(16)[/align]
[align=center]Router-id(32)[/align]
[align=center]Area-id(32)[/align]
[align=center]Checksum(16) [/align]
[align=center]Autype(24)[/align]
[align=center]Authentication(32)[/align]
[align=center]Authentication(32)[/align]
[align=center]Interface MTU[/align]
[align=center]option[/align]
i=1 M=1 ms=1
[align=center]DD Sequence number[/align]
[align=center]LSA header[/align]
主要字段解释如下:
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

[align=center]Version(8)[/align]
[align=center]3[/align]
[align=center]Packet length(16)[/align]
[align=center]Router-id(32)[/align]
[align=center]Area-id(32)[/align]
[align=center]Checksum(16) [/align]
[align=center]Autype(24)[/align]
[align=center]Authentication(32)[/align]
[align=center]Authentication(32)[/align]
[align=center]LS TYPE[/align]
[align=center]Link state ID[/align]
[align=center]Advertising router[/align]
LS Type :LSA 的类型 例如Type 1表示router lsa
Link state ID 链路状态标识
Advertising router: 产生此lsa 的路由器
5.LSU 报文
LSU 是对LSR 寻求的回答

[align=center]Version(8)[/align]
[align=center]4[/align]
[align=center]Packet length(16)[/align]
[align=center]Router-id(32)[/align]
[align=center]Area-id(32)[/align]
[align=center]Checksum(16) [/align]
[align=center]Autype(24)[/align]
[align=center]Authentication(32)[/align]
[align=center]Authentication(32)[/align]
[align=center]Number of LSAs[/align]
[align=center]LSAs[/align]
Number of LSAs 该报文包含LSA 的数量
LASs :包含所有的LSA
6.LSAck
LSACK 报文是用来对接收到的LSU 报文的进行确认的 内容是需要确认LSA 的header

[align=center]Version(8)[/align]
[align=center]Type(8)[/align]
[align=center]Packet length(16)[/align]
[align=center]Router-id(32)[/align]
[align=center]Area-id(32)[/align]
[align=center]Checksum(16) [/align]
[align=center]Autype(24)[/align]
[align=center]Authentication(32)[/align]
[align=center]Authentication(32)[/align]
[align=center]LSA header[/align]
LSA header :该报文包含LSA 的头部
7.LSA 头格式
所有的LSA 都有相同的报文头

[align=center]LS age[/align]
[align=center]Options[/align]
[align=center]LS type[/align]
[align=center]Linke state ID[/align]
[align=center]Adbertising router[/align]
[align=center]LS sequence number[/align]
[align=center]Ls checksum[/align]
[align=center]length[/align]
LS age :LSA 产生后所经过的时间 LSA 会在LSDB中有老化时间 但在传输过程中不会
LS type :LSA 类型 3 4 5 7
LS sequence number 其他路由器可以根据其值来判断是否是最新的LSA
Length:LSA 的总长度 以字节为单位
LS checksum 对LSA 的报文检查出了LS age
LSA 类型

[align=center]LS age[/align]
[align=center]Options[/align]
[align=center]1[/align]
[align=center]Linke state ID[/align]
[align=center]Adbertising router[/align]
[align=center]LS sequence number[/align]
[align=center]Ls checksum[/align]
[align=center]length[/align]
[align=center]0[/align]
[align=center]V[/align]
[align=center]E[/align]
[align=center]B[/align]
[align=center]0[/align]
[align=center]#links[/align]
[align=center]Link id[/align]
[align=center] [/align]
[align=center]Type[/align]
[align=center]Tos[/align]
[align=center]metric[/align]
[align=center] [/align]
[align=center] [/align]
[align=center]TOS[/align]
[align=center]0[/align]
[align=center]TOS metric[/align]
[align=center]Link ID[/align]
[align=center] [/align]
[align=center]Link data[/align]
[align=center] [/align]
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

[align=center]LS age[/align]
[align=center]Options[/align]
[align=center]2[/align]
[align=center]Linke state ID[/align]
[align=center]Adbertising router[/align]
[align=center]LS sequence number[/align]
[align=center]Ls checksum[/align]
[align=center]length[/align]
[align=center]Network mask[/align]
[align=center]Attached router[/align]
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)

[align=center]LS age[/align]
[align=center]Options[/align]
[align=center]3 or 4[/align]
[align=center]Linke state ID[/align]
[align=center]Adbertising router[/align]
[align=center]LS sequence number[/align]
[align=center]Ls checksum[/align]
[align=center]length[/align]
[align=center]Network mask[/align]
[align=center]0[/align]
[align=center]metric [/align]
[align=center]Tos[/align]
[align=center]tos metric[/align]
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 外部的路由信息

[align=center]LS age[/align]
[align=center]Options[/align]
[align=center]3 or 4[/align]
[align=center]Linke state ID[/align]
[align=center]Adbertising router[/align]
[align=center]LS sequence number[/align]
[align=center]Ls checksum[/align]
[align=center]Length[/align]
[align=center]Network mask[/align]
[align=center]E[/align]
[align=center]0[/align]
[align=center]metric[/align]
[align=center]Forwarding address[/align]
[align=center]External route lag[/align]
[align=center]E[/align]
[align=center]tos[/align]
[align=center]tos metric[/align]
[align=center]Forwarding address[/align]
[align=center]External route lag[/align]
主要字段解释
Link state id :所要通告的其他外部AS 的目的地址,如果通告的是一条是缺省路由则LS ID和子网掩码都为0.0.0.0
Network mask :所通告的目的地址掩码
E: 外部度量值
5. NSSA external LSA
由NSSA 区域内的ASBR产生 并且在NSSA 内部传送和type5 相似本文出自 “С” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: