OSPF报文类型

OSPF报文头格式

OSPF用IP报文直接封装协议报文,协议号为89。OSPF分为5种报文,Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。

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

报文格式:

OSPF报文类型_第1张图片

字段解释:

Version 1字节 版本,OSPF的版本号。对于OSPFv2来说,其值为2。
字段 长度 含义
Type 1字节 类型,OSPF报文的类型,有下面几种类型:1:Hello报文;2:DD报文;3:LSR报文;4:LSU报文;5:LSAck报文。
Packet length 2字节 OSPF报文的总长度,包括报文头在内,单位为字节。
Router ID 4字节 发送该报文的路由器标识。
Area ID 4字节 发送该报文的所属区域。
Checksum 2字节 校验和,包含除了认证字段的整个报文的校验和。
AuType 2字节 验证类型,值有如下几种表示, 0:不验证;1:简单认证;2:MD5认证。
Authentication 8字节 鉴定字段,其数值根据验证类型而定。当验证类型为0时未作定义;类型为1时此字段为密码信息;类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信息。MD5验证数据添加在OSPF报文后面,不包含在Authenticaiton字段中。

hello 报文抓包:

OSPF报文类型_第2张图片

图:OSPF报文头

OSPF Hello报文格式

Hello报文是最常用的一种报文,其作用为建立和维护邻接关系,周期性的在使能了OSPF的接口上发送。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居。

OSPF Hello报文格式:

OSPF报文类型_第3张图片

字段解释:

字段 长度 含义
Network Mask 32比特 发送Hello报文的接口所在网络的掩码。
HelloInterval 16比特 发送Hello报文的时间间隔。
Options 8比特 可选项:E:允许Flood AS-External-LSAs MC:转发IP组播报文 N/P:处理Type-7 LSAs DC:处理按需链路
Rtr Pri 8比特 DR优先级。默认为1。如果设置为0,则路由器不能参与DR或BDR的选举。
RouterDeadInterval 32比特 失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。
Designated Router 32比特 DR的接口地址。
Backup Designated Router 32比特 BDR的接口地址。
Neighbor 32比特 邻居,以Router ID标识。

OSPF Hello 抓包:

OSPF报文类型_第4张图片

图:OSPF报文头

OSPF DD 报文格式

两台路由器在邻接关系初始化时,用DD报文(Database Description
Packet)来描述自己的LSDB,进行数据库的同步。报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA)。LSA
Header只占一条LSA的整个数据量的一小部分,这样可以减少路由器之间的协议报文流量,对端路由器根据LSA
Header就可以判断出是否已有这条LSA。在两台路由器交换DD报文的过程中,一台为Master,另一台为Slave。由Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。

DD 报文格式:

OSPF报文类型_第5张图片

字段解释:

字段 长度 含义
Interface MTU 16比特 在不分片的情况下,此接口最大可发出的IP报文长度。
Options 8比特 可选项:E:允许Flood AS-External-LSAs;MC:转发IP组播报文;N/P:处理Type-7 LSAs;DC:处理按需链路。
I 1比特 当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。
M (More) 1比特 当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。
M/S (Master/Slave) 1比特 当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。
DD sequence number 32比特 DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。
LSA Headers 可变 该DD报文中所包含的LSA的头部信息。

DD 抓包:

OSPF报文类型_第6张图片

图: DD 报文抓包

OSPF LSR报文格式

两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的和哪些LSA是已经失效的,这时需要发送LSR报文(Link State Request Packet)向对方请求所需的LSA。内容包括所需要的LSA的摘要。LSR报文格式如下图所示,其中LS type、Link State ID和Advertising Router可以唯一标识出一个LSA,当两个LSA一样时,需要根据LSA中的LS sequence number、LS checksum和LS age来判断出所需要LSA的新旧。

LDR报文格式:

OSPF报文类型_第7张图片

字段解释:

字段 长度 含义
LS type 32比特 LSA的类型号。
Link State ID 32比特 根据LSA中的LS Type和LSA description在路由域中描述一个LSA。
Advertising Router 32比特 产生此LSA的路由器的Router ID。

LSR抓包:

OSPF报文类型_第8张图片

图:LSR 报文抓包

OSPF LSU报文格式

用来向对端Router发送其所需要的LSA或者泛洪自己更新的LSA,内容是多条LSA(全部内容)的集合。LSU报文(Link State Update
Packet)在支持组播和广播的链路上是以组播形式将LSA泛洪出去。为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认。对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。

LSU报文格式:

OSPF报文类型_第9张图片

字段解释:

字段 长度 含义
Number of LSAs 32比特 LSA的数量。

LSU抓包:

OSPF报文类型_第10张图片

图:LSU 报文抓包

OPSF LSAck报文格式

用来对接收到的LSU报文进行确认。内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)。LSAck(Link State
Acknowledgment Packet)报文根据不同的链路以单播或组播的形式发送。

LSAck报文格式:

OSPF报文类型_第11张图片

字段解释:

字段 长度 含义
LSAs Headers 可变 通过LSA的头部信息确认收到该LSA。

LSAck抓包:

OSPF报文类型_第12张图片

图:LSAck 报文抓包

常见的五种LSA

常用的LSA共有5种,分别为:Router-LSA、Network-LSA、Network-summary-LSA、ASBR-summary-LSA和AS-External-LSA。

所有的LSA都有相同的报文头:
OSPF报文类型_第13张图片

字段 长度 含义
LS age 16比特 LSA产生后所经过的时间,以秒为单位。无论LSA是在链路上传送,还是保存在LSDB中,其值都会在不停的增长。
Options 8比特 可选项:E:允许泛洪AS-External-LSA;MC:转发IP组播报文;N/P:处理Type-7 LSA;DC:处理按需链路。
LS type 8比特 LSA的类型:Type1:Router-LSA Type2:Network-LSA Type3:Network-summary-LSA Type4:ASBR-summary-LSA Type5:AS-External-LSA Type7:NSSA-LSA
Link State ID 32比特 与LSA中的LS Type和LSA description一起在路由域中描述一个LSA。
Advertising Router 32比特 产生此LSA的路由器的Router ID。
LS sequence number 32比特 LSA的序列号。其他路由器根据这个值可以判断哪个LSA是最新的。
LS checksum 16比特 除了LS age外其它各域的校验和。
length 16比特 LSA的总长度,包括LSA Header,以字节为单位。

Router-LSA(1类)

Router-LSA(Type1):每个路由器都会产生,描述了路由器的链路状态和花费,在所属的区域内传播。

OSPF报文类型_第14张图片

字段 长度 含义
Link State ID 32比特 生成LSA的Router ID。
V (Virtual Link) 1比特 如果产生此LSA的路由器是虚连接的端点,则置为1。
E (External) 1比特 如果产生此LSA的路由器是ASBR,则置为1。
B (Border) 1比特 如果产生此LSA的路由器是ABR,则置为1。
# links 16比特 LSA中所描述的链路信息的数量,包括路由器上处于某区域中的所有链路和接口。
Link ID 32比特 路由器所接入的目标,其值取决于连接的类型:1:Router ID;2:DR的接口IP地址;3:网段/子网号;4:虚连接中对端的Router ID。
Link Data 32比特 连接数据,其值取决于连接的类型:unnumbered P2P:接口的索引值;stub网络:子网掩码;其它连接:路由器接口的IP地址。
Type 8比特 路由器连接的基本描述:1:点到点连接到另一台路由器;2:连接到传输网络;3:连接到stub网络;4:虚拟链路。
# TOS 8比特 连接不同的TOS数量。
metric 16比特 链路的开销值。
TOS 8比特 服务类型。
TOS metric 16比特 和指定TOS值相关联的度量。
[AR3]dis ospf 1 lsdb router self-originate  

	 OSPF Process 1 with Router ID 10.0.13.3
		         Area: 0.0.0.0
		 Link State Database 


  Type      : Router
  Ls id     : 10.0.13.3
  Adv rtr   : 10.0.13.3  
  Ls age    : 1128 
  Len       : 36 
  Options   :  E  
  seq#      : 80000003 
  chksum    : 0xd911
  Link count: 1
   * Link ID: 10.0.13.1    
     Data   : 10.0.13.3    
     Link Type: TransNet     
     Metric : 1
       

Network- LSA(2类)

Network-LSA(Type2):由广播网或NBMA网络中的DR产生,Network-LSA中记录了这一网络上所有路由器的Router
ID,描述本网段的链路状态,在所属的区域内传播。

OSPF报文类型_第15张图片

字段 长度 含义
Link State ID 32比特 DR的接口IP地址。
Network Mask 32比特 该广播网或NBMA网络地址的掩码。
Attached Router 32比特 连接在同一个网络上的所有路由器的Router ID,也包括DR的Router ID。
[AR2]dis ospf 1 lsdb network self-originate 

	 OSPF Process 1 with Router ID 10.0.2.2
		         Area: 0.0.0.0
		 Link State Database 

		         Area: 0.0.0.1
		 Link State Database 


  Type      : Network
  Ls id     : 10.0.25.2
  Adv rtr   : 10.0.2.2  
  Ls age    : 925 
  Len       : 32 
  Options   :  E  
  seq#      : 80000004 
  chksum    : 0xbe43
  Net mask  : 255.255.255.0
  Priority  : Low
     Attached Router    10.0.2.2
     Attached Router    10.0.5.5 

Summary-LSA(3类)

Network-summary-LSA(Type3):描述区域内所有网段的路由,并通告给其他相关区域。

ASBR-summary-LSA(Type4):描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。

Type3和Type4的LSA有相同的格式,它们都是由ABR产生。

OSPF报文类型_第16张图片

字段 长度 含义
Link State ID 32比特 通告的网络地址。如果是ASBR Summary LSA,此字段表示ASBR的Router ID。
Network Mask 32比特 该广播网或NBMA网络地址的掩码。如果是ASBR Summary LSA,此字段无意义,设置为0.0.0.0。
metric 24比特 到目的地址的路由开销。
TOS 8比特 服务类型。
TOS metric 24比特 和指定TOS值相关联的度量。

通告缺省路由时,Link State ID和Network Mask都设置为0.0.0.0。

[AR2]dis ospf 1 lsdb summary self-originate 

	 OSPF Process 1 with Router ID 10.0.2.2
		         Area: 0.0.0.0
		 Link State Database 


  Type      : Sum-Net
  Ls id     : 10.0.15.0
  Adv rtr   : 10.0.2.2  
  Ls age    : 199 
  Len       : 28 
  Options   :  E  
  seq#      : 80000005 
  chksum    : 0xda55
  Net mask  : 255.255.255.0
  Tos 0  metric: 2
  Priority  : Low

ASBR-Summary-LSA(4类)

ASBR-Summary-LSA(Type4):描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。

Type3和Type4的LSA有相同的格式,它们都是由ABR产生。

AS-External-LSA(5类)

AS-External-LSA(Type5):由ASBR产生,描述到AS外部的路由,这是五种LSA中,唯一一种通告到所有区域(除了Stub区域和NSSA区域)的LSA。

OSPF报文类型_第17张图片

字段 长度 含义
Link State ID 32比特 通告的网络地址。
Network Mask 32比特 通告的目的地址的掩码。
E 1比特 外部度量值类型:0:第一类外部路由;1:第二类外部路由。
metric 24比特 到目的地址的路由开销。
Forwarding Address 32比特 到所通告的目的地址的报文将被转发到这个地址。
External Route Tag 32比特 添加到外部路由上的标记。OSPF本身并不使用这个字段,它可以用来对外部路由进行管理。
TOS 8比特 服务类型。
TOS metric 24比特 TOS附加距离信息。

Type5的LSA可以用来通告缺省路由,此时Link State ID和Network Mask都设置为0.0.0.0。

<AR3>dis ospf lsdb ase 

	 OSPF Process 1 with Router ID 10.0.13.3
		 Link State Database


  Type      : External
  Ls id     : 192.168.10.0
  Adv rtr   : 10.0.4.4  
  Ls age    : 766 
  Len       : 36 
  Options   :  E  
  seq#      : 80000005 
  chksum    : 0x48fe
  Net mask  : 255.255.255.0 
  TOS 0  Metric: 1 
  E type    : 2
  Forwarding Address : 0.0.0.0 
  Tag       : 1 
  Priority  : Low

OSPF报文类型_第18张图片

图:5类LSA抓包示例

参考文档:华为HedEx文档


你可能感兴趣的:(路由交换,OPSF,路由交换,路由基础,动态路由协议,报文)