OSPF各种数据包结构解析
OSPF数据包结构解析

OSPF数据包结构解析OSPF(开放最短路径优先)是一种用于在计算机网络中进行路由选择的动态路由协议。
它是一种链路状态路由协议,通过建立邻居关系并交换链路状态信息来计算最短路径。
数据头包含了一些与数据传输相关的信息,如源IP地址、目的IP地址、协议类型等。
OSPF报文头包含了OSPF协议的一些基本信息,如版本号、报文类型、报文长度等。
接下来,我将详细介绍OSPF数据包的结构和各个部分的含义。
1.数据头:数据头主要包含了网络层IP协议的相关信息。
包括源IP地址和目的IP地址,通过这两个地址可以确定数据包的源和目的地。
2.OSPF报文头:OSPF报文头是一个8字节的固定长度字段,包含了以下几个字段:-版本号:用来指示OSPF协议的版本,目前使用的版本是OSPFv2- 报文类型:用来指示该数据包的类型,包括Hello报文、LSU(链路状态更新)报文、LSR(链路状态请求)报文等。
-报文长度:表示整个OSPF数据包的长度。
-路由器ID:每个路由器都有一个唯一的路由器ID,用来唯一标识每个OSPF路由器。
-区域ID:将整个网络划分为不同的区域,每个区域都有一个唯一的区域ID。
3.OSPF数据包体:- Hello报文体:包含了路由器在邻居关系建立过程中的一些信息,如路由器ID、邻居路由器的IP地址、对等路由器的优先级等。
-LSU报文体:包含了路由器发送给邻居的链路状态信息,用来描述自己所连接到的网络拓扑结构。
-LSR报文体:用于请求邻居路由器发送其链路状态信息。
-LSA报文体:包含了一条最小的链路状态信息,用来描述网络中一个路由器的邻居关系。
总结起来,OSPF数据包在传输过程中首先通过数据头和OSPF报文头来确定数据包的源和目的地,然后根据报文类型,使用相应的数据包体结构来传输路由协议信息。
通过交换和计算链路状态信息,OSPF可以为网络提供最短路径的路由选择功能,从而实现高效的数据传输。
OSPF_协议的解析及详解

OSPF_协议的解析及详解OSPF协议的解析及详解一、引言OSPF(Open Shortest Path First)是一种开放式最短路径优先协议,用于在IP网络中进行路由选择。
本协议旨在提供高效、可靠、可扩展的路由选择机制,以满足大规模网络的需求。
本文将对OSPF协议进行解析和详解,包括协议的基本原理、工作机制、数据包格式、路由计算算法等内容。
二、OSPF协议基本原理1. 链路状态路由协议OSPF是一种链路状态(Link State)路由协议,它通过交换链路状态信息来构建网络拓扑图,从而计算最短路径。
每个路由器都维护一个链路状态数据库(Link State Database,LSDB),其中存储了整个网络的拓扑信息。
2. OSPF区域划分OSPF将网络划分为多个区域(Area),每个区域内部运行独立的SPF (Shortest Path First)计算,减少了计算复杂度和控制报文的传输量。
区域之间通过区域边界路由器(Area Border Router,ABR)进行连接。
3. OSPF邻居关系建立OSPF邻居关系是通过交换Hello报文来建立的。
当两个路由器在同一广播域内收到对方的Hello报文时,它们可以成为邻居,并交换链路状态信息。
三、OSPF协议工作机制1. Hello报文交换OSPF路由器通过周期性发送Hello报文来探测邻居,并维护邻居关系。
Hello报文包含了路由器的ID、Hello间隔时间等信息。
2. 链路状态信息交换OSPF邻居之间交换链路状态信息,包括链路状态更新报文(LSU)和链路状态请求报文(LSR)。
LSU报文用于广播链路状态信息,LSR报文用于请求缺失的链路状态信息。
3. SPF计算每个OSPF路由器通过收集链路状态信息,构建链路状态数据库,并使用SPF算法计算最短路径树。
SPF算法基于Dijkstra算法,通过计算最短路径树,确定到达目的地的最短路径。
4. 路由表生成根据最短路径树,每个OSPF路由器生成路由表,选择最佳路径并更新转发表。
OSPF各种数据包结构解析Word版

OSPF Packet HeaderOSPF报头为24字节.Version OSPF的版本号.IPv4为OSPFv2,IPv6为OSPFv3. Type OSPF数据包类型.Packet Length OSPF数据包长度.Router ID 始发OSPF数据包的路由器的Router-ID. Area ID 始发OSPF数据包的路由器接口所在的区域. Checksum OSPF数据包的校验和.AuType OSPF认证类型.Authentication AuType为0,不检查该字段.AuType为1,包含最长为64bit的口令.AuType为2,包含Key-ID,消息摘要和不减小的加密序列号. Authentication Data Length 附加在OSPF数据包尾部的消息摘要长度.Cryptographic Sequence Number 一个不会减小的序列号,用于防重放攻击.OSPF Hello PacketHello包用于建立和维护邻接关系,也在MA网络中选举DR/BDR.*Network Mask 发送数据包的接口的网络掩码,必须匹配.*Hello Interval 接口上发送Hello包的时间间隔,BMA和P2P网络中默认为10s,NBMA网络中默认为30s.*OptionsDN MPLS VPN使用.O 用于Opaque LSA.DC按需链路上使用EA 接收和转发具有外部属性LSA的能力.N/P N为1表明支持NSSA LSA,N为0表明不接收和发送NSSA.P(Propagation)为1执行7类到5类LSA转换,P为0不执行转换.MC MOPSF中使用.E E为1接收5类LSA,E为0不接收5类LSA.MT MT-OSPF使用.Router Priority 接口优先级,用于选举DR/BDR.为0将不参与选举,默认接口优先级为1.*Router Dead Interval 将邻居视为down前等待Hello包的时间间隔,默认为Hello Interval的4倍.Designated Router MA网络中的DR接口的IP地址,如果不存在将设置为0.0.0.0. Backup Designated Router MA网络中的BDR接口的IP地址,如果不存在将设置为0.0.0.0.Neighbor 列出了始发路由器保存的邻居列表.* 必须匹配才可建立OSPF邻接关系.OSPF DBD PacketDBD中包含LSA头部信息,用于选举Master/Slave路由器,同步LSDB.Interface MTU 始发路由器接口可发送的最大IP数据包大小,在虚链路上传送时设置为0x0000.I Initial,发送是第一个DBD包时设置为1,后续DBD包设置为0.M More,发送不是最后一个DBD包时,设置为1,如果是最后一个DBD包设置为0.MS Master/Slave,如果设置为1代表是Master路由器,设置为0代表是Slave路由器.DD Sequence Number DBD包的序列号由Master路由器设置.LSA Headers 列出始发路由器LSDB中的全部或部分LSA头部.OSPF LSR Packet用于请求LSBD中不存在或者更新的LSA.Link State Type 用于指出请求的LSA的类型.Link State ID LSA描述的内容.Advertising Router 始发LSA的路由器的Router-ID.OSPF LSU Packet用于LSA的泛洪和响应LSR,组播方式发送.DROTHERS使用组播地址224.0.0.6将LSU发送给DR,DR使用组播地址224.0.0.5发送给DROTHERS.Number of LSAs 指出LSU包含的LSA条目的数量.LSAs 包含的LSA的类型.OSPF LSAck Packet用于确保LSA的泛洪是可靠的.OSPF LSA HeaderLSA报头为20字节.Age LSA的老化时间,默认3600s.OptionType LSA的类型.Link State ID 指出LSA所描述的内容.Advertising Router 始发LSA的路由器的Router-ID.Sequence Number LSA序列号,识别是否为最新,范围是0x80000001 - 0x7FFFFFFF. Checksum 除Age字段的其他信息的校验和.Length 包含LSA头部内的LSA的长度.OSPF Router LSA Packet每个路由器都会产生Router LSA.Link State ID 产生Router LSA的路由器的Router-ID.V(Virtual Link Endpoint bit) 设置为1表明是虚链路的一个端点.E(External bit) 始发Router LSA为ASBR时,设置为1.B(Border bit) 始发Router LSA为ABR时,设置为1.Number of Links 指出LSA所描述的路由器链路数量.Link TypeLink IDLink DataNumber of ToSMetric 一条链路接口的代价.ToS Cisco只支持ToS 0.ToS metricOSPF Network LSA PacketDR为MA网络产生的.Link State ID DR在MA网络中接口的IP地址.Network Mask MA网络中使用的网络掩码.Attached Router 列出了MA网络中和DR建立完全邻接关系的路由器的Router-ID以及DR 自己的Router-ID.OSPF Network & ASBR Summary LSA PacketLink State ID 对于3类LSA,ABR通告的网络或子网的IP地址.对于4类LSA,ABR通告的ASBR的Router-ID.Network Mask 对于3类LSA,为通告的网络的子网掩码或地址.对于4类LSA,被设置为0.0.0.0.Metric 为到达目的网络的路由的cost.OSPF Autonomous System LSA PacketASBR产生的.Link State ID 外部网络的网络地址.Network Mask 外部网络的网络掩码.E(External Metric bit) E为1,O E2. E为0,O E1.Forwarding Address 到达外部网络应该转发的地址,设置为0.0.0.0,则应该转发给ASBR.External Route TagOSPF NSSA LSA PacketASBR产生的(注:可编辑下载,若有不当之处,请指正,谢谢!)。
ospf数据包格式

LSA类型1格式:
8位 老化时间 链路状态 ID 通告路由器 序列号 校验和 0000 0 V E B OXOO 链路ID 链路数据 链路类型 ToS ToS的数量 0x00 第 n 个链路ID…… 度量值 ToS的度量 长度 链路数量 8位 8位 可选项
MD5)
认证(密钥ID,认证数据长度) 认证(加密序列号) 数据包数据
类型:1表示hello,2表示DBD,3表示LSR,4表示LSU,5表示 LSACK.
Hello包格式:
8位 版本 8位 类型=1 Router-id Area id 校验和 认证 认证 子网掩码 Hello间隔 指定路由器 备份指定路由器 邻居 ~ 邻居 可选项 路由器无效时间间隔 路由器优先级 认证类型 8位 数据包长度 8位
Ospf包封装格式:
Ip头部(协议号:89) Ospf数据包
Ospf数据包头部
Ospf数据包数据
数据包特有数据类型
LS LS A A LSA头部
~
LS A LSA数据
OSPF通用包头结构:
8位 版本 8位 8位 8位 类型 数据包长度 Router-id Area id 校验和 认证类型(0无,1 明文,2
LSA类型2格式:
8位 老化时间 链路状态 ID 通告路由器 序列号 校验和 网络掩码 相连的路由器(与DR形成完全邻接) 相连的路由器 ~ 相连的路由器 长度 8位 8位 可选项
8位 类型
LSA类型3和4格式:
8位 老化时间 链路状态 ID 通告路由器 序列号 校验和 网络掩码 0x00 TOS ~ 0x00 TOS 度量 TOS度量 度量 TOS度量 长度 8位 8位 可选项
ospf三张表种包个状态

ospf三张表种包个状态ospf三张表种包个状态OSPF的三张表:邻居表(Show ip ospf neighbor)拓扑表(Show ip ospf database)路由表(Show ip route ospf)OSPF的五种包:Hello包:用于路由器之间发现和维护邻居关系/协商邻接关系等;DBD包:Database Description,有的教材也叫DD包,用于向邻居表述自己已经知道的LSA即LSDB;LSR包:Link State Request,链路状态请求包,用于请求邻接的路由器发送链路状态更新包(LSU);LSU包:Link State Update,链路状态更新包,用于回应链路状态请求包LSR,而发送的更新包;LSAck包:Link State Acknowlegement,链路状态确认包,用于对邻接的路由器发送过来的LSU包的确认回复包.另外,OSPF的八种邻居状态(也有说法是七种状态,未列出Attempt): Down:在失效时间间隔内未收到邻居路由器发送过来的Hello包时的状态;Attempt:在未发送Hello包出去,但是已经已收到某邻居路由器发送过来的Hello包之后的状态;Initiat:初始化状态,已收到邻居的Hello包,但在该Hello包中未发现自己的状态,或Hello参数不匹配时的状态;Two-Way:双向状态,在邻居发送过来的Hello包中发现自己的RID,Hello参数匹配且通过验证时的状态;ExStart:预启动状态,向224.0.0.5发送了第一条DBD包后的状态,直到RID较高的路由器成为主路由器;Exchange:交换状态,选举主路由器完成后进入的状态,两路由器继续交换DBD 包直到双方获悉的LSID相同;Loading:加载状态,所有DBD包交换完成后切换成加载状态,此时发送LSR/LSU/LSA以开始详细的LSA交换;Full:全邻接状态,发送收到并且确认所有的LSA之后,双方路由器LSA完全相同,进入最终的全邻接状态.LSA类型代码描述1路由器LSA2网络LSA3网络汇总LSA4ASBR汇总LSA5AS外部LSA6组成员LSA7NSSA外部LSA8外部属性LSA9Opaque LSA(链路本地范围)10Opaque LSA(本地区域范围)11Opaque LSA(AS范围)●路由器LSA(Router LSA):每一台路由器都会产生路由器LSA 通告。
OSPF数据包结构解析

OSPF数据包结构解析引言OSPF(Open Shortest Path First)是一种内部网关协议(IGP),用于在一组连通的路由器中计算最短路径并进行动态路由选择。
OSPF通过在路由器之间交换数据包来建立和维护路由信息。
本文将介绍OSPF数据包的结构,并解析其各个字段的含义和作用。
OSPF数据包结构一个OSPF数据包由多个字段组成,每个字段负责承载不同的信息。
下面是一个标准OSPF数据包的结构示意图:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+OSPF包头(OSPF Header)-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+OSPF数据(OSPF Data)-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+OSPF包头(OSPF Header)OSPF包头包含以下字段:版本(Version):指定OSPF协议的版本号,通常为2。
类型(Type):指定OSPF数据包的类型,有多种类型,包括Hello、LSA Update、LSA Acknowledgement等。
包体长度(Packet Length):指定整个数据包的长度,单位为字节。
路由器ID(Router ID):唯一标识发送数据包的路由器。
区域ID(Area ID):标识OSPF网络中的区域,用于区分不同的子网。
校验和(Checksum):用于验证数据包的完整性。
OSPF数据(OSPF Data)OSPF数据包的具体内容取决于其类型。
下面是一些常见的OSPF 数据包类型及其相关字段:Hello数据包:用于邻居发现和监测相邻路由器的状态。
包含字段有:网络掩码(Network Mask)、优先级(Priority)、相邻路由器列表(Neighbor List)等。
OSPF报文格式分析

OSPF报文格式分析OSPF(Open Shortest Path First)是一种开放式的最短路径优先(SPF)路由协议,用于在网络中计算最短路径并进行路由选择。
OSPF报文格式定义了在OSPF中用于交换信息的数据包结构。
1. OSPF报文头(OSPF Header):该部分长度为24个字节,包含了OSPF报文的基本信息,如版本号、报文类型、报文长度等。
2. OSPF Hello报文(Hello Packet):Hello报文用于网络中的邻居发现和建立OSPF邻居关系。
其长度为44个字节,包含了发送者的路由器ID、OSPF区域ID以及其他邻居信息。
3. OSPF数据库描述报文(Database Description Packet):该报文用于交换邻居路由器的链路状态数据库(LSDB)的摘要信息。
其长度不定,根据需要而变化。
4. OSPF连通性状态请求报文(Link State Request Packet):该报文用于向邻居请求链路状态信息。
其长度不定,根据需要而变化。
5. OSPF连通性状态更新报文(Link State Update Packet):该报文用于向邻居更新链路状态信息。
其长度不定,根据需要而变化。
6. OSPF连通性状态确认报文(Link State Acknowledgement Packet):该报文用于确认其他OSPF报文的接收情况。
其长度不定,根据需要而变化。
以上是OSPF报文格式的主要部分。
其中,OSPF头部信息在每个报文中都会出现,用于标识报文类型和报文长度等信息。
根据OSPF的设计原则,不同的功能对应不同类型的报文,如Hello报文用于邻居发现,Database Description报文用于数据库同步等。
OSPF报文的格式设计考虑了网络性能和可扩展性的因素。
通过在报文中包含必要的标识和描述信息,OSPF路由器能够根据收到的报文类型和内容做出适当的响应,从而保证网络的正常运行。
(完整word)OSPF协议详解(最终版)

OSPF协议总结(完整版)OSPF的五个包:1. Hello: 9项内容,4个必要2. DBD:数据库描述数据包(主要描述始发路由器数据库中的一些或者全部LSA 信息),主要包括接口的MTU,主从位MS,数据库描述序列号等);3. LSR:链路状态请求数据包(查看收到的LSA是否在自己的数据库,或是更新的LSA,如果是将向邻居发送请求);4. LSU :链路状态更新数据包(用于LSA的泛洪扩散和发送LSA去响应链路状态请求数据包);5. LSACK :链路状态确认数据包(用来进行LSA可靠的泛洪扩散,即对可靠包的确认)。
Hello包作用:1 .发现邻居;2. 建立邻居关系;3. 维持邻居关系;4. 选举DR,BDR5. 确保双向通信。
Hello包所包含的内容:注:1.“ * ”部分全部匹配才能建立邻居关系。
2. 邻居关系为FULL状态;而邻接关系是处于TWO-WAY状态。
Hello时间间隔:在点对点网络与广播网络中为10秒;在NBMA网络与点对多点网络中为30秒。
注:保持时间为hello时间4倍虚电路传送的LSA为DNA,时间抑制,永不老化.OSPF的组播地址:DR将使用组播地址224.0.0.5泛洪扩散更新的数据包到DRothersDRothers使用组播地址224.0.0.6发送更新数据包组播的MAC 地址分别为:0100.5E00.0005 0100.5E00.0006OSPF的包头格式:| 版本| 类型| 长度| 路由器ID | 区域ID | 验证和| 验证类型| 验证| 数据|| 1 byte | 1 | 2 | 4 | 4 | 2 | 2 | 8 | variance |OSPF 支持的验证类型:OSPF 支持明文和md5 认证,用Sniffer 抓包看到明文验证的代码是“ 1”,md5 验证的代码是“ 2”。
OSPF 支持的网络类型:1.广播2.非广播3.点对点(若MTU 不匹配将停留在EX-START 状态)4.点对多点5.虚电路(虚电路的网络类型是点对点)虚链路必须配置在ABR上,虚链路的配置使用的命令是area transit-area-id virtual-link router-id 虚链路的Metric 等同于所经过的全部链路开销之和DR /BDR 选举:1.优先级(0~255; 0 代表不参加选举;默认为1);2.比较Router-id。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OSPF Packet Header
OSPF报头为24字节.
Version OSPF的版本号.IPv4为OSPFv2,IPv6为OSPFv3.
Type OSPF数据包类型.
Packet Length OSPF数据包长度.
Router ID 始发OSPF数据包的路由器的Router-ID.
Area ID 始发OSPF数据包的路由器接口所在的区域.
Checksum OSPF数据包的校验和.
AuType OSPF认证类型.
Authentication AuType为0,不检查该字段.
AuType为1,包含最长为64bit的口令.
AuType为2,包含Key-ID,消息摘要和不减小的加密序列号. Authentication Data Length 附加在OSPF数据包尾部的消息摘要长度. Cryptographic Sequence Number 一个不会减小的序列号,用于防重放攻击.
OSPF Hello Packet
Hello包用于建立和维护邻接关系,也在MA网络中选举DR/BDR.
*Network Mask 发送数据包的接口的网络掩码,必须匹配.
*Hello Interval 接口上发送Hello包的时间间隔,BMA和P2P网络中默认为10s,NBMA网络中默认为30s.
*Options
DN MPLS VPN使用.
O 用于Opaque LSA.
DC按需链路上使用
EA 接收和转发具有外部属性LSA的能力.
N/P N为1表明支持NSSA LSA,N为0表明不接收和发送NSSA.
P(Propagation)为1执行7类到5类LSA转换,P为0不执行转换.
MC MOPSF中使用.
E E为1接收5类LSA,E为0不接收5类LSA.
MT MT-OSPF使用.
Router Priority 接口优先级,用于选举DR/BDR.为0将不参与选举,默认接口优先级为1. *Router Dead Interval 将邻居视为down前等待Hello包的时间间隔,默认为Hello Interval的4倍.
Designated Router MA网络中的DR接口的IP地址,如果不存在将设置为
Backup Designated Router MA网络中的BDR接口的IP地址,如果不存在将设置为Neighbor 列出了始发路由器保存的邻居列表.
* 必须匹配才可建立OSPF邻接关系.
OSPF DBD Packet
DBD中包含LSA头部信息,用于选举Master/Slave路由器,同步LSDB.
Interface MTU 始发路由器接口可发送的最大IP数据包大小,在虚链路上传送时设置为0x0000.
I Initial,发送是第一个DBD包时设置为1,后续DBD包设置为0.
M More,发送不是最后一个DBD包时,设置为1,如果是最后一个DBD包设置为0.
MS Master/Slave,如果设置为1代表是Master路由器,设置为0代表是Slave路由器.
DD Sequence Number DBD包的序列号由Master路由器设置.
LSA Headers 列出始发路由器LSDB中的全部或部分LSA头部.
OSPF LSR Packet
用于请求LSBD中不存在或者更新的LSA.
Link State Type 用于指出请求的LSA的类型.
Link State ID LSA描述的内容.
Advertising Router 始发LSA的路由器的Router-ID.
OSPF LSU Packet
用于LSA的泛洪和响应LSR,组播方式发送.DROTHERS使用组播地址,DR使用组播地址Number of LSAs 指出LSU包含的LSA条目的数量.
LSAs 包含的LSA的类型.
OSPF LSAck Packet
用于确保LSA的泛洪是可靠的.
OSPF LSA Header
LSA报头为20字节.
Age LSA的老化时间,默认3600s.
Option
Type LSA的类型.
Link State ID 指出LSA所描述的内容.
Advertising Router 始发LSA的路由器的Router-ID.
Sequence Number LSA序列号,识别是否为最新,范围是0x - 0x7FFFFFFF. Checksum 除Age字段的其他信息的校验和.
Length 包含LSA头部内的LSA的长度.
OSPF Router LSA Packet
每个路由器都会产生Router LSA.
Link State ID 产生Router LSA的路由器的Router-ID.
V(Virtual Link Endpoint bit) 设置为1表明是虚链路的一个端点.
E(External bit) 始发Router LSA为ASBR时,设置为1.
B(Border bit) 始发Router LSA为ABR时,设置为1.
Number of Links 指出LSA所描述的路由器链路数量.
Link Type
Link ID
Link Data
Number of ToS
Metric 一条链路接口的代价.
ToS Cisco只支持ToS 0.
ToS metric
OSPF Network LSA Packet
DR为MA网络产生的.
Link State ID DR在MA网络中接口的IP地址.
Network Mask MA网络中使用的网络掩码.
Attached Router 列出了MA网络中和DR建立完全邻接关系的路由器的Router-ID以及DR自己的Router-ID.
OSPF Network & ASBR Summary LSA Packet
Link State ID 对于3类LSA,ABR通告的网络或子网的IP地址.对于4类LSA,ABR通告的
ASBR的Router-ID.
Network Mask 对于3类LSA,为通告的网络的子网掩码或地址.对于4类LSA,被设置为Metric 为到达目的网络的路由的cost.
OSPF Autonomous System LSA Packet
ASBR产生的.
Link State ID 外部网络的网络地址.
Network Mask 外部网络的网络掩码.
E(External Metric bit) E为1,O E2. E为0,O E1.
Forwarding Address 到达外部网络应该转发的地址,设置为,则应该转发给ASBR. External Route Tag
OSPF NSSA LSA Packet
ASBR产生的。