文章目录

  • OSPF数据包协议
  • OSPF头部内容
  • 五种数据包
  • Hello包
  • DBD包 --- 链路状态描述报文
  • LSR包 --- 链路状态请求报文
  • LSU包 --- 链路状态更新报文
  • LSACK包 --- 链路状态包(确定包)


OSPF数据包协议

  • OSPF协议是一个跨四层封装协议
  • IP协议中的协议号为89

OSPF头部内容

不管是那种类型的OSPF数据包都需要添加封装的内容

ospf数据包格式_网络

详情

版本 — OSPF版本 — 2

类型 — OSPF数据包的类型

Hell0

1

DBD

2

LSR

3

LSU

4

LSACK

5

报文长度 — OSPF报文的总长度,单位字节

RID — 代表发出数据包的路由器的身份

Area ID — 数据包发出接口所有区域的区域ID

认证类型

null

不认证

0

simple

明文认证

1

MD5

比对摘要值认证

2

OSPF再认证的时候需要比对认证数据,一个对不上则认证失败

五种数据包

序号

包名

1

Hello包

2

DBD包

3

LSR包

4

LSU包

5

LSACK包

Hello包

作用:周期发现,建立和保活邻居关系(DR/BDR的选举也是使用hello包)

ospf数据包格式_链路_02

详情

  • 网络掩码 — 发出数据包的接口配的IP地址所对应的掩码信息
    华为设备要求,邻居之间接口的网路掩码必须相同,否则导致邻居关系无法建立.(这个限制对点到点网路无效)
  • Hello时间和dead time — 邻居之间不相同则将无法正常建立邻居关系.
  • 8为可选择 – 每一位置都将代表路由器满足某种OSPF的特性
    里面包含OSPF特殊区域的标记位. — 邻居之间特殊区域的标志位必须相同 ,否则将无法正常建立邻居关系
  • 路由器优先级 — 发出这个数据包的接口对应的DR/BDR选举的优先级
  • 指定路由器/备份指定路由器 — 携带的是DR和BDR对应的IP地址,在DR和BDR没有选举出来时,将使用0.0.0.0来进行填充
  • 邻居 — 本地已知的邻居RD

邻居关系建立的限制因素

1、网络掩码 — 只针对以太网

2、hello时间

3、死亡时间

4、特殊区域的标记

5、认证信息

DBD包 — 链路状态描述报文

作用

1.可以进行主从关系选举(1.为主的可以优先进入到数据转发;2,为主的可以主导隐形确认)

2.携带LSA信息摘要

ospf数据包格式_序列号_03

接口的最大传输单元

MTU

默认情况下,华为设备没有开启MTU值的检测,所以,会携带0.如果在接口上开启MTU检测功能,则将携带真实的MTU

如果邻居双方的MTU值不同,则将停留在exstart状态.

[r1-GigabitEthernet0/0/1]ospf mtu-enable  在于邻居间直连的接口上开启MTU,检测;若一端开启,另一端也必须开启;

可选项

I – INIT – 如果I位置1,则代表这个DBD包是进行主从关系选举的数据包.则将不携带LSA的头部信息

M — More —该位置1,则代表后面还有DBD包需要发送,如果该位置0,则代表这个DBD包是最后一个DBD包.

Ms — Master — 该位置1,则代表发送方是主,改位置0,则代表发送方为从.

序列号

在DBD报文交互中,会逐次加1,用于确保报文的有序性及可靠性 — 保证DBD包完成隐形确认.

在交互完数据库摘要信息后,从会额外发送一个DBD包,这个DBD包使用主最后发送的序号,但并不携带摘要信息,其主要目的是进行确认

隐形确认 — 主从关系确认后,有主主导序列号,从只能使用主发送的序列号进行回复,起到确认的效果。

LSR包 — 链路状态请求报文

基于DBD包请求本地未知LSA信息

ospf数据包格式_ospf数据包格式_04

LSA三元组(可以唯一的标识出一条LSA信息)

链路状态类型

链路状态ID

通告路由器

LSU包 — 链路状态更新报文

真正携带LSA信息的数据包

ospf数据包格式_OSPF_05

LSACK包 — 链路状态包(确定包)

ospf数据包格式_网络_06