OSPF 报文类型

前 言

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

OSPF 报文详解

OSPF用IP报文直接封装协议报文,协议号为89。

OSPF分为5种报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。

OSPF这五种报文具有相同的报文头格式,长度为24字节。

OSPF 报文类型_第1张图片

报头图

  Version版本字段,占1个字节,指出所采用的OSPF协议版本号,目前最高版本为OSPF v4,即值为4(对应二进制就是0100)。

Type报文类型字段,标识对应报文的类型。前面说了OSPF有5种报文,分别是:Hello报文、DD报文、LSR报文、LSU报文、LSAck报文。具体将在下面各小节介绍。

Packet Length包长度字段,占2个字节。它是指整个报文(包括OSPF报头部分和后面各报文内容部分)的字节长度。

Router ID路由器ID字段,占4个字节,指定发送报文的源路由器ID。

Area ID区域ID字段,占4个字节,指定发送报文的路由器所对应的OSPF区域号。

 Checksum校验和字段,占2个字节,是对整个报文(包括OSPF报头和各报文具体内容,但不包括下面的Authentication字段)的校验和,用于对端路由器校验报文的完整性和正确性。

  AuType认证类型字段,占2个字节,指定所采用的认证类型,0为不认证,1为进行简单认证,2采用MD5方式认证。

Authentication认证字段,占8个字节,具体值根据不同认证类型而定:认证类型为不认证时,此字段没有数据,认证类型为简单认证时,此字段为认证密码,认证类型为MD5认证时,此字段为MD5摘要消息。

 

Hello报文: OSPF协议使用一种称之为Hello的报文来建立和维护相邻邻居路由器之间的链接关系。这个报文很简单的,容量很小,仅用来向邻居路由器证明自己的存在,就像人与人之间的打招呼一样。我们在第8章中已经知道,RIP邻居路由器之间的邻接关系建立是都是定期的路由更新报文进行的,通过定期的路由更新来同时向邻居RIP路由器证明自己的存在。显然OSPF的这种Hello报文更简单,可大大减小网络中的报文传输流量。

Hello报文被周期性(默认为10秒)地发向邻居路由器接口发送,如果在设定时间(默认为40秒,通常至少是Hello包发送时间间接4倍)内没有收到对方OSPF路由器发送来的Hello报文,则本地路由器会认为该对方路由器无效。报文内容包括一些定时器设置、DR、BDR以及本路由器已知的邻居路由器。

OSPF 报文类型_第2张图片

Hello报文图

Network Mask:4字节,发送Hello报文接口所在的子网掩码。

HelloInterval:2字节,指定发送Hello报文的时间间隔,默认为10秒。

Options:1字节,可选项,包括E:允许泛洪AS-external-LAS;MC:允许转发IP组皤报文;N/P:允许处理Type 7 LSA; DC:允许处理按需链路。

Rtr Pri:1字节,指定DR优先级,默认为1。如果设为0,则表示本路由器不参与DR/BDR选举。

RouterDeadInterval:4字节,指定路由器失效时间,默认为40秒。如果在此时间内没有收到邻居路由器发来的Hello报文,则认为该邻居路由器已失效。

Designated Router:4字节,指定DR的接口IP地址。

Backup Designated Router:4字节,指定BDR的接口IP地址。

Neighbor:4字节,指定邻居路由器的RID。下面的省略号(…)表示可以指定多个邻居路由器RID。

数据库描述报文(DD—Databasa Description):进行主从路由器的选举,并用来向邻居路由器描述本地链路状态数据库,使得邻居路由器识别出数据库中的LSA是否完整。

OSPF 报文类型_第3张图片

DD报文格式

Interface MTU:2字节,指出发送DD报文的接口在不分段的情况下,可以发出的最大IP报文长度。

Options:1字节,可选项,包括E:允许泛洪AS-external-LAS;MC:允许转发IP组播报文;N/P:允许处理Type 7 LSA; DC:允许处理按需链路。

I:1比特,指定在连续发送多个DD报文,如果是第一个DD报文则置1,其它的均置0。

M1比特,指定在连续发送多个DD报文,如果是最后一个DD报文则置0,否则均置1。

M/S:1比特,设置进行DD报文双方的主从关系,如果本端是Master角色,则置1,否则置0。

DD Sequence Number:4字节,指定所发送的DD报文序列号。主从双方利用序列号来确保DD报文传输的可靠性和完整性。

LSA Header:4字节,指定DD报文中所包括的LSA头部。后面的省略号(…)表示可以指定多个LSA头部。

因为DD报文仅在两台OSPF路由器初始化连接时才进行DD交换,所以它没有发送周期,以后的数据库存同步是通过LSR、LSU和LSAck报文进行同步的。

 

链路状态请求报文(LSR——Link State Request):路由器根据邻居的DD报文,判断本地数据库是否完整,如不完整,路由器把这些LSA记录进链路状态请求列表中,然后发送一个LSR给邻居路由器。

OSPF 报文类型_第4张图片

 LSR报文格式

LS type:4字节,指定所请求的LSA类型,主要共7类。

Link State ID:4字节,用于指定ospf所描述的部分区域,该字段的使用方法根据不同的LSA类型而不同:当为LSA 1时,该字段值是产生LSA 1的路由器的Router-ID,当为LSA 2时,该字段值是DR的接口地址,当为LSA 3时,该字段值是目的网络的网络地址,当为LSA 4时,该字段值是ASBR的Router-ID,当为LSA 5时,该字段值是目的网络的网络地址。

Advertising Router:4字节,指定产生此所要请求的LSA的路由器ID。

 

链路状态更新报文(LSU——Link State Update):LSU报文是应LSR报文的请求,用来向对端路由器发送所需的LSA,内容是多条LSA完整内容的集合,LSU报文内容部分包括此次共发送的LSA数量和每条LSA的完整内容。

OSPF 报文类型_第5张图片

 LSU报文格式

Number of LSA4字节,指定此报文中共发送LSA的数量。

链路状态确认报文(LSAck——Link State Ack):用来对收到的LSA进行确认,保证同步过程的可靠性。LSAck报文是路由器在收到对端发来的LSU报文后所发出的确认应答报文,内容是需要确认的LSA头部(LSA Headers)。LSAck报文根据不同链路以单播或组播形式发送。

OSPF 报文类型_第6张图片

LSAck报文格式

LSAs Headers: 可变, 通过LSA的头部信息确认收到该LSA。

DD、LSR、LSU、LSAck与LSA的关系:

DD报文中包含LSA头部信息,包括LS Type、LS ID、Advertising Router 、LS Sequence Number、LS Checksum。

LSR中包含LS Type 、LS ID和Advertising Router 。

LSU中包含完整的LSA信息。

LSAck中包含LSA头部信息,包括LS Type、LS ID、Advertising Router、LS Sequence Number、LS Checksum。


本期讲师,奥斯科数通朱老师,下期讲解:OSPF邻居建立过程。

你可能感兴趣的:(培训教育,华为认证,网络,计算机)