OSPF报文类型

OSPF报文类型OSPF 报文头格式 OSPF 用 IP 报文直接封装协议报文 协议号为 89 OSPF 分为 5 种报文 Hello 报文 DD 报文 LSR 报文 LSU 报文和 LSAck 报文 OSPF 这五种报文具有相同的报文头格式 长度为 24 字节 报文格式 字段解释 Version1 字节版本 OSPF 的版本号 对于 OSPFv2 来说 其值为 2 字段长度含义

OSPF报文头格式

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

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

报文格式:

这里写图片描述

字段解释:

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报文头


OSPF Hello报文格式

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

OSPF Hello报文格式:

这里写图片描述

字段解释:

字段 长度 含义
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报文头


OSPF DD 报文格式

DD 报文格式:

这里写图片描述

字段解释:

字段 长度 含义
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 抓包:

这里写图片描述


图: 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报文格式:

这里写图片描述

字段解释:

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

LSR抓包:

这里写图片描述


图:LSR 报文抓包


OSPF LSU报文格式

LSU报文格式:

这里写图片描述

字段解释:

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

LSU抓包:

这里写图片描述


图:LSU 报文抓包


OPSF LSAck报文格式

LSAck报文格式:

这里写图片描述

字段解释:

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

LSAck抓包:

这里写图片描述


图:LSAck 报文抓包


常见的五种LSA

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

字段 长度 含义
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):每个路由器都会产生,描述了路由器的链路状态和花费,在所属的区域内传播。

这里写图片描述

字段 长度 含义
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# :  chksum : 0xd911 Link count: 1 * Link ID: 10.0.13.1 Data : 10.0.13.3 Link Type: TransNet Metric : 1 

Network- LSA(2类)

这里写图片描述

字段 长度 含义
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# :  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产生。

这里写图片描述

字段 长度 含义
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# :  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。

这里写图片描述

字段 长度 含义
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# :  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 

这里写图片描述


图:5类LSA抓包示例



参考文档:华为HedEx文档


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231628.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js选项卡效果

    js选项卡效果documentAPI getElementBy 返回具有指定 ID 属性值的第一个对象的一个引用 getElementsB 返回带有指定标签名的对象的集合 返回元素的顺序是它们在文档中的顺序 getElementsB 属性设置或返回元素的 class 属性 body 导航栏部分 HTML 代码 divclass box lt divclass box body

    2025年8月24日
    4
  • oracle查询结果替换指定字符串_oracle按字符截取

    oracle查询结果替换指定字符串_oracle按字符截取1、拼接字符串格式一:可以使用”||”来拼接字符串select’拼接’||’字符串’asstrfromdual格式二:通过concat()函数实现selectconcat(‘拼接’,’字符串’)asstrfromdual注:oracle的concat函数只支持两个参数的方法,即只能拼接两个参数,如要拼接多个参数则嵌套使用concat可实现,如:selectconcat(concat(‘拼接’,’多个’),’字符串’)fromdual2.1、截取字符串

    2026年1月28日
    5
  • YYModel高性能 iOS数据模型转换

    YYModel高性能 iOS数据模型转换处理GithubUser数据10000次耗时统计(iPhone6):特性:高性能:模型转换性能接近手写解析代码。自动类型转换:对象类型可以自动转换,详情见下方表格。类型安全:转换过程中,所有的数据类型都会被检测一遍,以保证类型安全,避免崩溃问题。无侵入性:模型无需继承自其他基类。轻量:该框架只有5个文件(包括.h文件)。文档和单元测试:文档覆盖…

    2025年6月28日
    3
  • linux中文镜像文件iso下载地址,linux系统镜像iso文件下载

    linux中文镜像文件iso下载地址,linux系统镜像iso文件下载Asp&period;NetCore–基于声明的授权翻译如下:当创建身份时,其可以被分配由可信方发布的一个或多个声明.索赔是名称值对,表示主题是什么,而不是主体可以做什么.例如,您可能有驾驶执照,由当地驾驶执照颁发.您的驾驶执照上有您的出生日期…优秀IT技术文章集&lpar;最新&rpar;&lpar;高质量&rpar;作者:赵磊博客:h…

    2022年5月10日
    52
  • Day03,Python文件的常见操作

    Day03,Python文件的常见操作Day03,Python文件的常见操作

    2022年4月21日
    57
  • setPositiveButton和setNegativeButton

    setPositiveButton和setNegativeButtonhttp://bbs.csdn.net/topics/380241826看看下面的回答

    2022年6月29日
    22

发表回复

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

关注全栈程序员社区公众号