您的位置:首页 > 其它

OSPF报头及各种报文格式详解

2013-07-31 08:30 302 查看

以下内容摘自最新上市的“四大金刚”图书之一《Cisco路由器配置与管理完全手册》(第二版)(其它三本分别为《Cisco交换机配置与管理完全手册》(第二版)、《H3C交换机配置与管理完全手册》(第二版)和《H3C路由器配置与管理完全手册》(第二版)),目前这四本新书在当当、京东、卓越和互动等各大书店中均有销售:http://item.jd.com/11273171.htmlhttp://item.jd.com/11273170.htmlhttp://item.jd.com/11273173.htmlhttp://item.jd.com/11273172.html

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

9.2 OSPF报头及各种报文格式

OSPF报文直接封装为IP协议报文,因为OSPF是专为TCP/IP网络而设计的路由协议。以上所说到的五种OSPF报文使用相同的OSPF报头格式,如图9-9所示。


图9-9 OSPF协议报头格式l Version版本字段,占1个字节,指出所采用的OSPF协议版本号,目前最高版本为OSPF v4,即值为4(对应二进制就是0100)。l Packet Type报文类型字段,标识对应报文的类型。前面说了OSPF有5种报文,分别是:Hello报文、DD报文、LSR报文、LSU报文、LSAck报文。具体将在下面各小节介绍。l Packet Length:包长度字段,占2个字节。它是指整个报文(包括OSPF报头部分和后面各报文内容部分)的字节长度。l Router ID:路由器ID字段,占4个字节,指定发送报文的源路由器ID。l Area ID:区域ID字段,占4个字节,指定发送报文的路由器所对应的OSPF区域号。l Checksum:校验和字段,占2个字节,是对整个报文(包括OSPF报头和各报文具体内容,但不包括下面的Authentication字段)的校验和,用于对端路由器校验报文的完整性和正确性。l AuType:认证类型字段,占2个字节,指定所采用的认证类型,0为不认证,1为进行简单认证,2采用MD5方式认证。Authentication:认证字段,占8个字节,具体值根据不同认证类型而定:认证类型为不认证时,此字段没有数据,认证类型为简单认证时,此字段为认证密码,认证类型为MD5认证时,此字段为MD5摘要消息。

9.2.1 OSPF Hello报文及格式

OSPF协议使用一种称之为Hello的报文来建立和维护相邻邻居路由器之间的链接关系。这个报文很简单的,容量很小,仅用来向邻居路由器证明自己的存在,就像人与人之间的打招呼一样。我们在第8章中已经知道,RIP邻居路由器之间的邻接关系建立是都是定期的路由更新报文进行的,通过定期的路由更新来同时向邻居RIP路由器证明自己的存在。显然OSPF的这种Hello报文更简单,可大大减小网络中的报文传输流量。Hello报文被周期性(默认为10)地发向邻居路由器接口发送,如果在设定时间(默认为40秒,通常至少是Hello包发送时间间接4)内没有收到对方OSPF路由器发送来的Hello报文,则本地路由器会认为该对方路由器无效。报文内容包括一些定时器设置、DR、BDR以及本路由器已知的邻居路由器。整个Hello报文格式如图9-10所示,上部分为图9-9所示的OSPF报头部分,下部分为Hello报文内容部分。Hello报文内容部分各字段说明如表9-1所示。表9-1 Hello报文内容部分字段说明
字段名长度功能
Network Mask4字节发送Hello报文接口所在的子网掩码
HelloInterval2字节指定发送Hello报文的时间间隔,默认为10秒
Options1字节可选项,包括E:允许泛洪AS-external-LAS;MC:允许转发IP组皤报文;N/P:允许处理Type 7 LSA; DC:允许处理按需链路
Rtr Pri1字节指定DR优先级,默认为1。如果设为0,则表示本路由器不参与DR/BDR选举
RouterDeadInterval4字节指定路由器失效时间,默认为40秒。如果在此时间内没有收到邻居路由器发来的Hello报文,则认为该邻居路由器已失效
Designated Router4字节指定DR的接口IP地址
Backup Designated Router4字节指定BDR的接口IP地址
Neighbor4字节指定邻居路由器的RID。下面的省略号(…)表示可以指定多个邻居路由器RID


图9-10 Hello报文格式从以上可以看出,在OSPF路由器上可以配置Hello报文的发送周期(相当时Hello报文发送计时器,是基于接口来配置的),具体将在本章后面介绍。

9.2.2 OSPF DD报文及格式

DD报文是用来描述本地路由器的链路状态数据库(LSDB),在两个OSPF路由器初始化连接时要交换DD报文,进行数据库同步。DD报文内容部分包括:DD报文序列号和LSDB中每一条LSA的头部等,如图9-11所示,对于的各字段说明如表9-2所示。对端路由器根据所收到的DD报文中的OSPF报头就可以判断出是否已有这条LSA。由于数据库的内容可能相当长,所以可能需要多个数据库描述报文来描述整个数据库。所以有三个专门用于标识数据库描述报文序列的比特位,即DD报文格式中的I、M和M/S这三位。接收方对报文的重新排序使其能够真实地复制数据库描述报文。DD交换过程按询问/应答方式进行,在DD报文交换中,一台为Master(主)角色,另一台为Slave(从)角色。Master路由器向从路由器发送它的路由表内容,并规定起始序列号,每发送一个DD报文,序列号加1,Slave则使用Master的序列号进行确定应答。但是显然,主从之间的关系会因每个DD交换的不同而不同。网络中的所有路由器会在不同时刻作用,在这个过程中既可能是主路由器又可能是从路由器。


图9-11 DD报文格式表9-2 DD报文内容部分字段说明
字段名长度功能
Interface MTU2字节指出发送DD报文的接口在不分段的情况下,可以发出的最大IP报文长度
Options1字节可选项,包括E:允许泛洪AS-external-LAS;MC:允许转发IP组皤报文;N/P:允许处理Type 7 LSA; DC:允许处理按需链路
I1比特指定在连续发送多个DD报文,如果是第一个DD报文则置1,其它的均置0
M1比特指定在连续发送多个DD报文,如果是最后一个DD报文则置0,否则均置1
M/S1比特设置进行DD报文双方的主从关系,如果本端是Master角色,则置1,否则置0
DD Sequence Number4字节指定所发送的DD报文序列号。主从双方利用序列号来确保DD报文传输的可靠性和完整性
LSA Heaader4字节指定DD报文中所包括的LSA头部。后面的省略号(…)表示可以指定多个LSA头部
因为DD报文仅在两台OSPF路由器初始化连接时才进行DD交换,所以它没有发送周期,以后的数据库存同步是通过LSR、LSU和LSAck报文进行同步的。

9.2.3 OSPF LSR报文及格式

LSR报文用于请求相邻路由器链路状态数据库中的一部分数据。当两台路由器互相交换完DD报文后,知道对端路由器有哪些LSA是本LSDB所没有的,以及哪些LSA是已经失效的,则需要发送一个LSR报文,向对方请求所需的LSA。LSR报文内容包括所需的LSA摘要,具体格式如图9-12所示,LSR报文内容部分各字段说明如表9-3所示。表9-3 LSR报文内容部分字段说明
字段名长度功能
LS type4字节指定所请求的LSA类型,主要共7类,具体参见9.2.5节
Link State ID4字节用于指定ospf所描述的部分区域,该字段的使用方法根据不同的LSA类型而不同:当为LSA 1时,该字段值是产生LSA 1的路由器的Router-ID,当为LSA 2时,该字段值是DR的接口地址,当为LSA 3时,该字段值是目的网络的网络地址,当为LSA 4时,该字段值是ASBR的Router-ID,当为LSA 5时,该字段值是目的网络的网络地址
Advertising Router4字节指定产生此所要请求的LSA的路由器ID


图9-12 LSR报文格式

9.2.4 OSPF LSU报文及格式

LSU报文是应LSR报文的请求,用来向对端路由器发送所需的LSA,内容是多条LSA完整内容的集合,LSU报文内容部分包括此次共发送的LSA数量和每条LSA的完整内容,如图9-13,报文内容部分的丙个字段如表9-4所示。


图9-13 LSU报文格式有关LSA的类型参见本章9.1.5节。LSU报文在支持组播和多路访问的链路上是以组播方式将LSA泛洪出去的,并且对没有收到对方确认应答(就是下面将要介绍的LSAck报文)的LSA进行重传,但重传时的LSA是直接送到没有收到确认应答的邻居路由器上,而不再是泛洪。表9-4 LSU报文内容部分字段说明
字段名长度功能
Number of LSA4字节指定此报文中共发送的LSA数量
LSAs4字节是一条条具体的LSA完整信息,后面的省略号表示可多条LSA

9.2.5 OSPF LSAck报文及格式

LSAck报文是路由器在收到对端发来的LSU报文后所发出的确认应答报文,内容是需要确认的LSA头部(LSA Headers),整个LSAck报文的格式如图9-14所示。LSAck报文根据不同链路以单播或组播形式发送。


图9-14 LSAck报文格式有关LSA报头格式及内容说明参见9.2节最前面的说明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cisco OSPF