OSPF报文格式.docx
《OSPF报文格式.docx》由会员分享,可在线阅读,更多相关《OSPF报文格式.docx(8页珍藏版)》请在冰豆网上搜索。
OSPF报文格式
OSPF报文格式(总6页)
OSPF的报文格式
OSPF用IP报文直接封装协议报文,协议号为89。
OSPF分为5种报文:
Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。
报文头格式
OSPF这五种报文具有相同的报文头格式,长度为24字节。
如图3-1所示。
OSPF报文头格式
OSPF报文头格式字段解释
字段名
长度
含义
Version
8比特
OSPF的版本号。
对于OSPFv2来说,其值为2。
Type
8比特
OSPF报文的类型。
1:
Hello报文;
2:
DD报文;
3:
LSR报文;
4:
LSU报文;
5:
LSAck报文。
Packetlength
16比特
OSPF报文的总长度,包括报文头在内,单位为字节。
RouterID
32比特
发送该报文的路由器标识。
AreaID
32比特
发送该报文的所属区域。
Checksum
16比特
包含除了认证字段的整个报文的校验和。
AuType
16比特
验证类型:
0:
不验证;
1:
简单认证;
2:
MD5认证。
Authentication
64比特
其数值根据验证类型而定。
当验证类型为0时未作定义;类型为1时此字段为密码信息;类型为2时此字段包括KeyID、MD5验证数据长度和序列号的信息。
说明:
MD5验证数据添加在OSPF报文后面,不包含在Authenticaiton字段中。
Hello报文
最常用的一种报文,其作用为建立和维护邻接关系,周期性的在使能了OSPF的接口上发送。
报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居。
Hello报文格式如图3-2所示。
Hello报文格式
Hello报文格式字段解释
字段名
长度
含义
NetworkMask
32比特
发送Hello报文的接口所在网络的掩码。
Hellointerval
16比特
发送Hello报文的时间间隔。
默认为10秒。
Options
8比特
可选项:
E:
允许FloodAS-external-LSAs;
MC:
转发IP组播报文;
N/P:
处理Type-7LSAs;
DC:
处理按需链路。
RtrPri
8比特
DR优先级。
默认为1。
说明:
如果设置为0,则路由器不能参与DR/BDR的选举。
RouterDeadInterval
32比特
失效时间。
如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。
默认为40秒。
DesignatedRouter
32比特
DR的接口地址。
BackupDesignatedRouter
32比特
BDR的接口地址。
peer
32比特
邻居,以RouterID标识。
在同一网段上的路由器,其Hellointerval和RouterDeadInterval必须分别一致,否则不能形成邻居关系。
NBMA网络上多一种PollInterval
Hello报文在不同链路上的发送:
在广播链路上,Hello报文每Hellointerval发送往组播地址;
在虚连接链路上,Hello报文以单播形式每Hellointerval发送到对端;
在P2P和P2MP链路上,Hello报文每Hellointerval发送往组播地址;
在NBMA链路上,Hello报文以单播发送:
DR、BDR、有能力成为DR的路由器,Hello报文每Hellointerval发送给每个邻居;
Hello报文发送的间隔取决于邻居的状态:
只有当邻居的状态为Down时,发送间隔为Pollinterval;其它情况为Hellointerval。
Hellointerval缺省间隔为10秒,Pollinterval缺省间隔为120秒。
DD报文
两台路由器在邻接关系初始化时,用DD报文(DatabaseDescriptionPacket)来描述自己的LSDB,进行数据库的同步。
报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA)。
LSAHeader只占一条LSA的整个数据量的一小部分,这样可以减少路由器之间的协议报文流量,对端路由器根据LSAHeader就可以判断出是否已有这条LSA。
在两台路由器交换DD报文的过程中,一台为Master,另一台为Slave。
由Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。
DD报文格式如图3-3所示。
DD报文格式
DD报文格式字段解释
字段名
长度
含义
InterfaceMTU
16比特
在不分片的情况下,此接口最大可发出的IP报文长度。
Options
8比特
可选项:
E:
允许FloodAS-external-LSAs;
MC:
转发IP组播报文;
N/P:
处理Type-7LSAs;
DC:
处理按需链路。
I
1比特
当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。
M(More)
1比特
当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。
否则置为1,表示后面还有其他的DD报文。
M/S(Master/Slave)
1比特
当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,RouterID大的一方会成为Master。
当值为1时表示发送方为Master。
DDsequencenumber
32比特
DD报文序列号。
主从双方利用序列号来保证DD报文传输的可靠性和完整性。
LSAHeaders
-
该DD报文中所包含的LSA的头部信息。
LSR报文
两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的和哪些LSA是已经失效的,这时需要发送LSR报文(LinkStateRequestPacket)向对方请求所需的LSA。
内容包括所需要的LSA的摘要。
LSR报文格式如图3-4所示。
LStype、LinkStateID和Advertising
Router可以唯一标识出一个LSA,当两个LSA一样时,需要根据LSA中的LSsequencenumber、LSchecksum和LSage来判断出所需要LSA的新旧。
LSR报文格式
LSR报文格式字段解释
字段名
长度
含义
LStype
32比特
LSA的类型号。
LinkStateID
32比特
根据LSA中的LSType和LSAdescription在路由域中描述一个LSA。
AdvertisingRouter
32比特
产生此LSA的路由器的RouterID。
LSU报文
用来向对端路由器发送所需要的LSA,内容是多条LSA(全部内容)的集合。
LSU报文(LinkStateUpdatePacket)在支持组播和广播的链路上是以组播形式将LSA泛洪出去。
为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认。
对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。
LSU格式如图3-5所示。
LSU报文格式
LSU报文格式字段解释
字段名
长度
含义
NumberofLSAs
32比特
LSA的数量。
LSAck报文
用来对接收到的LSU报文进行确认。
内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)。
LSAck(LinkStateAcknowledgmentPacket)报文根据不同的链路以单播或组播的形式发送格式如图3-6所示。
LSAck报文格式
LSAck报文格式字段解释
字段名
长度
含义
LSAsHeaders
-
通过LSA的头部信息确认收到该LSA。