学习回顾——OSPF路由协议(0x06)-OSPF报文格式

学习回顾——OSPF路由协议(0x06)-OSPF报文格式Hello DD LSR LSU LSAck 这 5 中 OSPF 报文的格式 1 OSPF Hello 报文格式 OSPF 使用 Hello 报文来建立和维护相邻邻居路由器之间的邻居或邻接关系 Hello 报文很小 仅用来向邻居路由器证明自己的存在

欢迎大家来到IT世界,在知识的湖畔探索吧!

Hello、DD、LSR、LSU、LSAck这5中OSPF报文的格式。

1) OSPF Hello报文格式

OSPF使用Hello报文来建立和维护相邻邻居路由器之间的邻居或邻接关系。Hello报文很小,仅用来向邻居路由器证明自己的存在。

在P2P网络和广播型网络中Hello报文是以helloInterval为周期(缺省为10s),以组播方式发送224.0.0.5组播组发送。

在P2MP和NBMA类型网络中OSPF路由器是以PollInterval为周期(缺省为30s)发送Hello报文(P2MP类型网络是以组播方式发送,NBMA网络是以单播方式发送)。

【补充知识】

OSPF根据链路层协议类型,将网络分为如下四种类型:

l 广播类型(Broadcast)

当链路层协议是Ethernet或FDDI(Fiber Distributed Digital Interface)时,缺省情况下,OSPF认为网络类型是Broadcast。

在该类型的网络中:

o 通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF设备的预留IP组播地址;224.0.0.6的组播地址为OSPF DR/BDR的预留IP组播地址。

o 以单播形式发送DD报文和LSR报文。

l NBMA类型(Non-Broadcast Multi-Access)

当链路层协议是帧中继或X.25时,缺省情况下,OSPF认为网络类型是NBMA

在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。

l 点到多点P2MP类型(Point-to-Multipoint)

没有一种链路层协议会被缺省的认为是P2MP类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。

在该类型的网络中:

o 以组播形式(224.0.0.5)发送Hello报文。

o 以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。

l 点到点P2P类型(Point-to-Point)

当链路层协议是PPP、HDLC或LAPB时,缺省情况下,OSPF认为网络类型是P2P。

在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。

如果正在设定的DeadInterval时间(通常至少是Hello报文发送时间间隔的4倍)内没有对方OSPF路由器发来的Hello报文,则本地路由器会认为该路由器无效。

Hello报文内容包括一些定时器设置、DR、BDR以及本路由器已知的邻居路由器信息。整个Hello报文格式分为OSPF报头部分和Hello报文内容部分。

学习回顾——OSPF路由协议(0x06)-OSPF报文格式

学习回顾——OSPF路由协议(0x06)-OSPF报文格式

Hello报文内容部分字段说明

字段名

长度

功能

Network Mask

4字节

发送Hello报文接口的IP地址所对应的子网掩码

HelloInterval

2字节

指定发送Hello报文的时间间隔。P2P、Broadcast类型接口发送Hello报文的时间讲个的值为10s;P2MP、NBMA类型接口发送Hello报文的时间间隔的的值为30s。

Options

1字节

可选项,置“1”时代表具有相应特性,置“0”时代表不具备相应特性。1字节的8位中每一位代表一种特性。

1) DN:Down比特位,仅在MPLS VPN环境中应用,且仅在LSA报文中可以置1,Hello报文中总是置0。在LSA中,置1时,则指示对端仅可将该LSA放进LSDB,而不能利用该LSA计算出OSPF路由装载进对端OSPF路由表,也不会传播至OSPF MPLS VPN骨干网上,用于避免环路。置0时,其他PE才会将从CE收到的该LSA传播给OSPF MPLS VPN骨干网上。

2) O:Opaque比特位,描述当前路由器是否有能力转发和接收opaque LSA。当我们部署MPLS TE,且使用OSPF作为TE的时候(参见《华为MPLS技术学习指南》和《华为MPLS VPN学习指南》两书),OSPF就需要扩展以便支持MPLS TE,这时候可以看到0bit的的置位了,而其它报文中的option里0bit仍然为0。

3) DC:Demand Circuit(按需电路)比特位,描述当前路由器按需拨号链路的处理方式。使用OSPF按需电路选项可以抑制Hello和LSA的刷新功能。OSPF可以建立按需链路,以形成邻接并完成初始数据库同步,而该邻接关系即使在按需电路的二层协议关闭之后仍可保持活跃。

4) L:LLS(Link Local Signaling,链路本地信令)Data Block比特位,包括Extended Options TLV和Cryptographic Authentication TLV两种新的TLV,带有这两种TLV的OSPF报文置1,否则置0。

5) NP:N或P比特位,分别只出现在hello及LSA报文中。在Hello报文中为N bit,指示当前路由器为NSSA区域路由器。当N bit被置1时E bit就必须被清零。在LSA报文中为Pbit,表示当前路由器支持处理Type-7 LSA,即位于NSSA区域。

6) MC:Multicast(组播)比特位,描述当前路由器是否允许转发IP组播报文,置1时允许。

7) E:External Routing(外部路由)比特位,描述当前路由器是否有接受AS外部LSA的能力,置1时具有,但仅在LSA报文中有效,在Hello报文中总为0。在所有的SA外部LSA和所有始发于骨干区域以及非末梢区域的LSA中该位将置1。而在所有始发于末梢区域的LSA中该位置0。另外,可以在Hello数据包中使用该位来表明一个接口具有接受和和发送Type-5的LSA的能力。E位配置错误的邻居路由器将不能形成邻接关系,这个限制可以确保一个区域的所有路由器都同样地具有支持末梢区域的能力。

8) MT:muli-Topology(多拓扑)比特位,描述当前路由器是否支持多拓扑路由,置1时支持

Rtr Pri

1字节

指定本路由器的DR优先级值,缺省为1。如果设为0,则表示本路由器不参与DR/BDR选举

RouterDeadInterval

4字节

指定检测本地路由器失效的的时间。P2P、Broadcast类型接口的OSPF邻居失效时间为40s,P2MP、NBMA类型接口的OSPF邻居失效时间为120s。指示当收到此Hello报文的路由器在此事件内没有收到本路由器再次发送的Hello报文,则认为本路由器已失效。

Designated Router

4字节

指定DR的接口IP地址

Backup Designated Router

4字节

指定BDR的接口IP地址

Neighbor

4字节

指定已发现的邻居路由器的Router ID。图11-13最下面的省略号(…)表示可以指定多个邻居路由器的RouterID,即图11-14最下面的多个“Active Neighbor”

2) OSPF DD报文格式

DD报文是用来描述本地路由器的链路状体数据库(LSDB),即在本地LSDB中包括哪些LSA。在两个OSPF路由器初始化连接时要交换DD报文(除了P2P网络中是以组播方式发送外,其他网络类型均以单播方式发送),以便进行LSDB同步。

DD报文的内容部分包括DD报文序列号和本地LSDB中每一条LSA的头部。

学习回顾——OSPF路由协议(0x06)-OSPF报文格式

学习回顾——OSPF路由协议(0x06)-OSPF报文格式

DD报文内容部分字段说明

字段名

长度

功能

Interface MTU

2字节

指出发送DD报文的接口在不分段的情况下,可以发出的最大IP报文长度

Options

1字节

选项,置“1”时代表具有相应特性,置“0”时代表不具备相应特性。1字节的8位中每一位代表一种特性。

1) DN:Down比特位,仅在MPLS VPN环境中应用,且仅在LSA报文中可以置1,Hello报文中总是置0。在LSA中,置1时,则指示对端仅可将该LSA放进LSDB,而不能利用该LSA计算出OSPF路由装载进对端OSPF路由表,也不会传播至OSPF MPLS VPN骨干网上,用于避免环路。置0时,其他PE才会将从CE收到的该LSA传播给OSPF MPLS VPN骨干网上。

2) O:Opaque比特位,描述当前路由器是否有能力转发和接收opaque LSA。当我们部署MPLS TE,且使用OSPF作为TE的时候(参见《华为MPLS技术学习指南》和《华为MPLS VPN学习指南》两书),OSPF就需要扩展以便支持MPLS TE,这时候可以看到0bit的的置位了,而其它报文中的option里0bit仍然为0。

3) DC:Demand Circuit(按需电路)比特位,描述当前路由器按需拨号链路的处理方式。使用OSPF按需电路选项可以抑制Hello和LSA的刷新功能。OSPF可以建立按需链路,以形成邻接并完成初始数据库同步,而该邻接关系即使在按需电路的二层协议关闭之后仍可保持活跃。

4) L:LLS(Link Local Signaling,链路本地信令)Data Block比特位,包括Extended Options TLV和Cryptographic Authentication TLV两种新的TLV,带有这两种TLV的OSPF报文置1,否则置0。

5) NP:N或P比特位,分别只出现在hello及LSA报文中。在Hello报文中为N bit,指示当前路由器为NSSA区域路由器。当N bit被置1时E bit就必须被清零。在LSA报文中为Pbit,表示当前路由器支持处理Type-7 LSA,即位于NSSA区域。

6) MC:Multicast(组播)比特位,描述当前路由器是否允许转发IP组播报文,置1时允许。

7) E:External Routing(外部路由)比特位,描述当前路由器是否有接受AS外部LSA的能力,置1时具有,但仅在LSA报文中有效,在Hello报文中总为0。在所有的SA外部LSA和所有始发于骨干区域以及非末梢区域的LSA中该位将置1。而在所有始发于末梢区域的LSA中该位置0。另外,可以在Hello数据包中使用该位来表明一个接口具有接受和和发送Type-5的LSA的能力。E位配置错误的邻居路由器将不能形成邻接关系,这个限制可以确保一个区域的所有路由器都同样地具有支持末梢区域的能力。

MT:muli-Topology(多拓扑)比特位,描述当前路由器是否支持多拓扑路由,置1时支持

I

1比特

指定在连续发送多个DD报文,如果第一个DD报文则置1,否则均置1。在图11-16中的“DB Description”部分。

M

1比特

指定在连续发送多个DD报文,如果最后一个DD报文则置0,其他的均置0。在图11-16中的“DB Description”部分。

M/S

1比特

设置进行DD报文双方的主从关系,如果本端是Master(主)角色,则置1,Slave(从)角色置0。在图11-16总的“DB Description”部分

DD Sequence Number

4字节

指定所发送的DD报文序列号。主、从双方利用主端设备的DD报文序列号来确保DD报文传输的可靠性和完整性。即图11-16中的“DB Sequence”字段

LSA Header

4字节

指定DD报文中所包含的LSA头部。后面的省略号(…)表示可以指定多个LSA头部

对端路由器根据手动的DD报文内容部分所列出的LSA头部,可以判断出本地是发已有这条LSA。由于LSDB的内容可能想当长,所以可能需要多个DD报文的交互来完成双方LSDB的同步。所以有3个专门用于标识DD报文序列的比特位,即DD报文格式中的I、M和M/S这3位。接收方对接收到的连续DD报文重新排序,使其能还原所接收到的DD报文。

DD交换过程按查询/应答方式进行,在DD报文交换中,一台为Master(主)角色,另一台为Slave(从)角色。Master路由器向Slave路由器发送它的LSDB的LSA头部,并规定其实序列号,每发送一个DD报文,序列号加1,Slave路由器则使用Master路由器的序列号进行确定应答。但是显示,主、从之间的关系会因每个DD交换的不同而不同,因为双方可能都有对方没有的LSA,网络中的所有路由器会在不同时刻担当不同角色。

3) OSPF LSR报文格式

LSR报文用于请求邻居路由器LSDB中存在,而本地LSDB中不存在的LSA(通过对DD报文中所包括的LSA头部与本地LSDB中的LSA进行比对得出)。当两台路由器互相交换完DD报文后,知道对端路由器有哪些LSA是本地LSDB所没有的,以及哪些LSA是已经失效的,则需要发送一个LSR更新报文,向对方请求所需的LSA。

LSR报文内容包括本端需要向相对端请求(除了P2P网络中是以组播方式发送外,其他网络类型均以单播方式发送)的LSA摘要(即仅包括LSA头部),

学习回顾——OSPF路由协议(0x06)-OSPF报文格式

LSR报文内容部分字段说明

字段名

长度

功能

LS Type

4字节

指定所请求的LSA类型,主要有6类

Link State ID

4字节

用于指定OSPF所描述的部分区域,该字段的使用方法根据LSA类型不同而不同:

当为Type-1 LSA时,该字段值是产生该LSA的路由器的Router-ID;

当为Type-2 LSA时,该字段是DR的接口IP地址;

当为Type-3 LSA时,该字段是目的网络的网络IP地址;

当为Type-4 LSA时,该字段值是ASBR的Router-ID

当为Type-5 LSA和Type-7时,该字段值是目的网络的网络IP地址

Advertising Router

4字节

指定发送此LSR报文的路由器的Router ID

4) OSPF LSU报文格式

LSU报文是LSR请求报文的应答报文,用来向对端路由器所发送所需的真正LSA内容或者泛洪本端更新的LSA,可以是多条完整LSA内容计划。LSU报文内容部分格式

学习回顾——OSPF路由协议(0x06)-OSPF报文格式

学习回顾——OSPF路由协议(0x06)-OSPF报文格式

只包含一个Router-LSA

LSU报文内容部分字段说明

字段名

长度

功能

Number of LSA

4字节

指定此报文中共发送的LSA数量如图11-20中的“Number of LSAs”为8,表示此LSU报文中包含8个完成的LSA信息,但图中仅显示了一条LSA内容

LSAs

4字节

是一条条具体的LSA完整信息,后面的省略号表示可有多跳LSA

LSU报文在P2P网络和广播网络中以组播方式发送(非DR设备向DR和BDR设备发送LSU报文的目的IP地址为224.0.0.6,其他所有OSPF组播报文的目的IP地址均为224.0.0.5)。

LSU报文在NBMA网络和P2MP网络中以单播方式发送,并且对没有收到对方确认应答(LSAck报文)的LSA进行重传,但重传时的LSA是以直接发送到没有收到确认应答的邻居路由器上,即采用单播发送的方式,而不再是泛洪

5) OSPF LSAck报文格式

LSAck报文是路由器在收到对端发来的LSU报文后发出的确认报文,内容是需要确认的LSA头部。LSAck报文在P2P网络和广播网络中以组播方式发送,在NBMA网络和P2MP网络中以单播方式发送。

学习回顾——OSPF路由协议(0x06)-OSPF报文格式

学习回顾——OSPF路由协议(0x06)-OSPF报文格式

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/87501.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信