OSPF报文分类与格式

OSPF报文介绍和格式:

五种报文类型
在这里插入图片描述
OSPF报头格式
OSPF报文直接封装为IP协议报文,因为OSPF是专为TCP/IP网络而设计的路由协议。以上所说到的五种OSPF报文使用相同的OSPF报头格式,如下图所示:
在这里插入图片描述

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

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

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

  1. Network Mask 4字节 发送Hello报文接口所在的子网掩码。
  2. HelloInterval 2字节 指定发送Hello报文的时间间隔,默认为10秒。
  3. Options 1字节 可选项,包括E:允许泛洪AS-external-LAS;MC:允许转发IP组皤报文;N/P:允许处理Type 7 LSA; DC:允许处理按需链路。
  4. Rtr Pri 1字节 指定DR优先级,默认为1。如果设为0,则表示本路由器不参与DR/BDR选举。
    RouterDeadInterval 4字节 指定路由器失效时间,默认为40秒。如果在此时间内没有收到邻居路由器发来的Hello报文,则认为该邻居路由器已失效。
  5. Designated Router 4字节 指定DR的接口IP地址。
  6. Backup Designated Router 4字节 指定BDR的接口IP地址。
  7. Neighbor 4字节 指定邻居路由器的RID。下面的省略号(…)表示可以指定多个邻居路由器RID。

OSPF DD报文及格式
DD报文是用来描述本地路由器的链路状态数据库(LSDB),在两个OSPF路由器初始化连接时要交换DD报文,进行数据库同步。

DD报文内容部分包括:DD报文序列号和LSDB中每一条LSA的头部等,对端路由器根据所收到的DD报文中的OSPF报头就可以判断出是否已有这条LSA。由于数据库的内容可能相当长,所以可能需要多个数据库描述报文来描述整个数据库。所以有三个专门用于标识数据库描述报文序列的比特位,即DD报文格式中的I、M和M/S这三位。接收方对报文的重新排序使其能够真实地复制数据库描述报文。

DD交换过程按询问/应答方式进行,在DD报文交换中,一台为Master(主)角色,另一台为Slave(从)角色。Master路由器向从路由器发送它的路由表内容,并规定起始序列号,每发送一个DD报文,序列号加1,Slave则使用Master的序列号进行确定应答。但是显然,主从之间的关系会因每个DD交换的不同而不同。网络中的所有路由器会在不同时刻作用,在这个过程中既可能是主路由器又可能是从路由器。
在这里插入图片描述

  1. Interface MTU 2字节 指出发送DD报文的接口在不分段的情况下,可以发出的最大IP报文长度。
  2. Options 1字节 可选项,包括E:允许泛洪AS-external-LAS;MC:允许转发IP组播报文;N/P:允许处理Type 7 LSA; DC:允许处理按需链路。
  3. I 1比特 指定在连续发送多个DD报文,如果是第一个DD报文则置1,其它的均置0。
  4. M 1比特 指定在连续发送多个DD报文,如果是最后一个DD报文则置0,否则均置1。
  5. M/S 1比特 设置进行DD报文双方的主从关系,如果本端是Master角色,则置1,否则置0。
  6. DD Sequence Number 4字节 指定所发送的DD报文序列号。主从双方利用序列号来确保DD报文传输的可靠性和完整性。
  7. LSA Heaader 4字节 指定DD报文中所包括的LSA头部。后面的省略号(…)表示可以指定多个LSA头部。

OSPF LSR报文及格式
LSR报文用于请求相邻路由器链路状态数据库中的一部分数据。当两台路由器互相交换完DD报文后,知道对端路由器有哪些LSA是本LSDB所没有的,以及哪些LSA是已经失效的,则需要发送一个LSR报文,向对方请求所需的LSA。LSR报文内容包括所需的LSA摘要,如图:
在这里插入图片描述

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

如上三个字段可以表示唯一的一个LSA,一个LSR报文可以请求多个LSA。

OSPF LSU报文及格式
LSU报文是应LSR报文的请求,用来向对端路由器发送所需的LSA,内容是多条LSA完整内容的集合,LSU报文内容部分包括此次共发送的LSA数量和每条LSA的完整内容。

LSU报文在支持组播和多路访问的链路上是以组播方式将LSA泛洪出去的,并且对没有收到对方确认应答(就是下面将要介绍的LSAck报文)的LSA进行重传,但重传时的LSA是直接送到没有收到确认应答的邻居路由器上,而不再是泛洪。
在这里插入图片描述

  1. Number of LSA 4字节 指定此报文中共发送的LSA数量。
  2. LSAs 4字节 是一条条具体的LSA完整信息,后面的省略号表示可多条LSA。

OSPF LSAck报文及格式

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

LSA报文格式:

常见LSA报文类型:
在这里插入图片描述
常用的LSA共有6种,分别为:Router-LSA、Network-LSA、Network-summary-LSA、ASBR-summary-LSA、AS-External-LSA和NSSA LSA。 所有的LSA都有相同的报文头:

LSA头部:
在这里插入图片描述

  1. LS age 16比特 LSA产生后所经过的时间,单位是秒。无论LSA是在链路上传输,还是保存在LSDB中,其值都会在不停的增长。
  2. Options 8比特
  3. 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。
  4. Link State ID 32比特 与LS Type一起描述路由域中唯一一个LSA。
  5. Advertising Router 32比特 产生此LSA的路由器的Router ID。
  6. LS sequence number 32比特 LSA的序列号。其他路由器根据这个值可以判断哪个LSA是最新的。
  7. LS checksum 16比特 除了LS age外其它各域的校验和。
  8. length 16比特 LSA的总长度,包括LSA Header,以字节为单位。

Option字段补充:
在这里插入图片描述
DN:用来避免在MPLS VPN中出现环路。当PE向CE发送3类、5类和7类LSA时需要设置DN位,其他PE路由器从CE接收到该LSA时,不能够在它的OSPF路由计算中使用该LSA。
O:该字段指出始发路由器支持Opaque LSA(类型9、类型10和类型11)。
DC位:当始发路由器支持按需链路上的OSPF的能力时,该位将被设置。
EA:当始发路由器具有接收和转发External-Attributes-LSA(type8 LSA)的能力时,该位被置位。
N位:只用在Hello数据包中。N=1表明路由器支持7类LSA。N=0表明该路由器将不接收和发送NSSA LSA。
P位:只用在NSSA LSA。该位将告诉NSSA区域的ABR路由器将7类LSA转换为5类LSA。

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

  1. Link State ID 32比特 生成LSA的Router ID。
    V(Virtual Link) 1比特 如果产生此LSA的路由器是虚连接的端点,则置为1,否则置为0。
    E(External) 1比特 如果产生此LSA的路由器是ASBR(AS Boundary Router),则置为1,否则置为0。
    B(Border) 1比特 如果产生此LSA的路由器是ABR(Area Border Router),则置为1,否则置为0。
  2. links 16比特 LSA中所描述的链路信息的数量,包括路由器上处于某区域中的所有链路和接口。
  3. Link ID 32比特 路由器所接入的目标,其值取决于连接的类型:
    • P2P:点到点连接Router ID。
    • TransNetwork:DR(Designated Router)的接口IP地址。
    • StubNetwork:网段/子网号。
    • Virtual Link:虚连接中对端的Router ID。
  4. Link Data 32比特 连接数据,其值取决于连接的类型:
    • P2P:自己接口IP地址。
    • TransNetwork:自己接口IP地址。
    • StubNetwork:网络掩码。
    • Virtual Link:本地Vlink的IP地址。
  5. Type 8比特 路由器连接的基本描述:
    • 1:点到点(P2P)。
    • 2:连接到传输网络(TransNetwork)。
    • 3:连接到stub网络(StubNetwork)。
    • 4:虚拟链路(Virtual Link)。
  6. #ToS 8比特 服务类型ToS(Type of Service)数量。
  7. metric 16比特 链路的开销值。
  8. ToS 8比特 服务类型ToS。
  9. ToS metric 16比特 和指定ToS值相关联的度量。

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

  1. Link State ID 32比特 DR的接口IP地址。
  2. Network Mask 32比特 该广播网或NBMA网络地址的掩码。
  3. Attached Router 32比特 连接在同一个网络上的所有路由器的Router ID,也包括DR的Router ID。

Network-summary-LSA(Type3)和ASBR-summary-LSA(Type4):
Type3和Type4的LSA有相同的格式,它们都是由ABR产生,为了防止环路,都遵循水平分割原则。
三类LSA描述区域内所有网段的路由,可以通告给其他相关区域。
四类描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域,告知去往ASBR的下一跳是什么,设备与ASBR在同一区域内不需要4类LSA。
在这里插入图片描述

  1. Link State ID 32比特 通告的网络地址。
  2. Network Mask 32比特 该广播网或NBMA网络地址的掩码。
  3. metric 24比特 到目的地址的路由开销。
  4. ToS 8比特 服务类型ToS。
  5. ToS metric 24比特 和指定ToS值相关联的度量。

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

AS-External-LSA(Type5)和NSSA-LSA(Type7):
五类LSA由ASBR产生,描述到AS外部的路由,这是五种LSA中,唯一一种通告到所有区域(除了Stub区域和NSSA区域)的LSA(不遵循水平分割原则)。
七类LSA作用和五类LSA一致,主要是代替5类LSA存在与于NSSA区域中,有相同的格式、包括外部路由及掩码、Forwading-address Tag、Cost-Type及Cost。(具体不同点在特殊区域中分析)
在这里插入图片描述

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

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

其余LSA:
在这里插入图片描述
总结:
在这里插入图片描述
归纳资料:华为hedex文档

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值