3.HCIP OSPF补充知识(优化版)

OSPF补充知识

一、DD报文的MTU检查机制

1.1 MTU检查的基本原理

在OSPF邻居建立过程中,当两台路由器进入Exstart状态后,会开始协商主从关系,并确定DD报文的初始序列号。进入Exchange状态后,它们开始交换DD报文,以描述各自的LSDB摘要。

DD报文(Database Description Packet,数据库描述报文)中携带了一个关键字段:Interface MTU。根据RFC 2328定义,该字段应填充接口的MTU值(虚拟链路为0)。如果从对端接收的DD报文中Interface MTU大于本端,该DD报文将被丢弃,邻居状态会卡在Exstart状态。

1.2 华为设备的默认行为

为提高设备兼容性,华为OSPF缺省有以下特性:

  • 接口发送DD报文时MTU值为0,即不填充接口的实际MTU值
  • 接收DD报文时不检查邻居DD报文所携带的MTU值
  • 这使得当邻居两端设备配置的接口MTU不一致时,OSPF邻居也能正常建立

但这种行为存在潜在风险:其他厂商收到实际长度大于MTU的OSPF报文时,可能会丢弃该报文。如果LSU报文被丢弃,就会发生OSPF邻居正常建立,但LSU报文携带的路由无法学习的问题,导致业务中断。

1.3 MTU检查的开启与效果

建议使用ospf mtu-enable命令手工设定接口在发送DD报文时填充MTU值,同时检查邻居DD报文所携带的MTU是否超过本端的MTU值。这样,当邻居两端设备配置的接口MTU不一致时,OSPF邻居无法达到Full状态,从而提前识别接口MTU值不一致的问题。

开启MTU检测后:

  • 如果两端均开启了检查,且两端MTU值不一致,邻居状态会卡在Exstart状态(不是Exchange状态)
  • 如果仅一端开启检查,另一端未开启(MTU值为0),邻居关系仍可正常建立
  • 配置ospf mtu-enable命令后,系统会自动重启OSPF进程

考试要点提醒 :在HCIP考试中,MTU问题是非常常见的考点。重点注意:华为设备缺省不检查MTU,只有开启ospf mtu-enable后才检查;MTU不一致导致邻居卡在Exstart状态,而不是Exchange状态;不同厂商设备互联时需特别注意MTU兼容性问题。

1.4 配置与排障命令

bash 复制代码
# 开启接口MTU检测
[Huawei] interface GigabitEthernet0/0/0
[Huawei-GigabitEthernet0/0/0] ospf mtu-enable

# 修改接口MTU值(需与对端保持一致)
[Huawei-GigabitEthernet0/0/0] mtu 1500

# 查看接口MTU和OSPF信息
[Huawei] display ospf interface GigabitEthernet0/0/0

# 查看OSPF邻居状态(若卡在Exstart,需检查MTU配置)
[Huawei] display ospf peer

# 重启OSPF进程(MTU修改后可能需执行)
[Huawei] reset ospf process

二、OSPF网络类型

2.1 四种网络类型的定义

OSPF根据链路层协议类型将网络分为四种不同的类型。华为官方文档对这四种网络类型的规定如下:

网络类型 报文发送方式 缺省依据
广播类型(Broadcast) Hello、LSU、LSAck以组播发送;DD、LSR以单播发送 Ethernet、FDDI
NBMA类型(Non-broadcast multiple access) 全部以单播发送 ATM;NBMA网络必须全连通
点到点P2P类型(point-to-point) 全部以组播形式发送 PPP、HDLC和LAPB
点到多点P2MP类型(Point-to-Multipoint) Hello组播;DD、LSR、LSU、LSAck单播 没有缺省类型,必须强制更改

2.2 网络类型配置原则

一般情况下,链路两端的OSPF接口的网络类型必须一致,否则双方不可以建立起邻居关系。

华为官方给出了以下网络类型修改场景的推荐配置:

  • 如果接口网络类型为广播,但路由器不支持组播地址,可改为NBMA类型
  • 如果接口网络类型为NBMA,且网络是全连通的,可改为广播类型,这样不必再配置邻居
  • 如果接口网络类型为NBMA,但网络不是全连通的,可改为P2MP类型,改为P2MP后,不必再配置邻居
  • 如果同一网段内只有两台设备运行OSPF协议,建议将接口网络类型改为P2P,以节省DR/BDR选举开销

2.3 网络类型配置命令

bash 复制代码
# 查看当前接口OSPF网络类型
[Huawei] display ospf interface GigabitEthernet0/0/0

# 修改网络类型
[Huawei] interface GigabitEthernet0/0/0
[Huawei-GigabitEthernet0/0/0] ospf network-type broadcast
[Huawei-GigabitEthernet0/0/0] ospf network-type nbma
[Huawei-GigabitEthernet0/0/0] ospf network-type p2mp
[Huawei-GigabitEthernet0/0/0] ospf network-type p2p

# 恢复到缺省网络类型
[Huawei-GigabitEthernet0/0/0] undo ospf network-type

# NBMA网络中手动配置邻居
[Huawei] ospf 1
[Huawei-ospf-1] peer 192.168.1.2

三、DR/BDR选举与组播地址

3.1 DR/BDR选举规则

DR/BDR选举仅在广播网络(Broadcast)或NBMA网络中进行,选举规则如下:

  1. 对比接口优先级------越大越优先,默认值为1,范围为0-255;当优先级为0时代表放弃选举,不能成为DR或BDR
  2. 优先级相同则对比设备Router ID------越大越优先

优先级配置使用命令 ospf dr-priority <priority>

3.2 DR/BDR的不可抢占特性

OSPF DR/BDR的选举属于非抢占模式,即一旦选举成功,不会因为新加入的设备而重新选举。

当修改了DR优先级后,网络中的DR或BDR不会立即重新选举。如果需要重新选举DR或BDR,可以通过以下两种方法实现,但这会导致设备之间的OSPF邻接关系中断,一般情况下不推荐使用:

  • 重启所有设备的OSPF进程
  • 在建立了OSPF邻居的接口上按顺序执行shutdown和undo shutdown命令

重要:DR/BDR选举不可抢占,新加入的高优先级路由器不会抢占现有角色。

3.3 组播地址的使用

OSPF在广播网络中使用两个组播地址:

组播地址 用途 侦听设备
224.0.0.5(AllSPFRouters) 通用OSPF组播通信 所有OSPF路由器
224.0.0.6(AllDRouters) DR/BDR专用通信 仅DR和BDR

DR和BDR同时监听224.0.0.5和224.0.0.6;DR-OTHER只监听224.0.0.5。

3.4 不同角色的LSU更新与LSAck确认流程

LSU更新组播通信流程总结:

发送方 目标地址 接收方 LSAck确认方式
DROther 224.0.0.6 DR、BDR ---
DR 224.0.0.5 所有OSPF路由器 BDR用224.0.0.5回复,DROther用224.0.0.6回复
BDR 224.0.0.5 所有OSPF路由器 DR用224.0.0.5回复,DROther用224.0.0.6回复

四、LSA生命周期管理

4.1 老化时间与刷新时间

OSPF中每条LSA都有两个关键的时间参数:

时间参数 默认值 作用
刷新时间 1800秒(30分钟) LSA的定期刷新周期,防止LSA过期
最大老化时间 3600秒(60分钟) LSA的生存上限,到达后LSA将被删除

每一条LSA在产生后都会逐渐老化,当老化时间达到1800秒时,始发路由器会重新生成该LSA(序列号加1),再次泛洪。如果LSA在3600秒内未被刷新,该LSA将被从数据库中删除,即老化掉。

4.2 LSA的接收与新旧判断

当OSPF路由器收到一条LSA后,会根据以下规则判断新旧,并决定是否采用:

比较优先级序列号 → 校验和 → 老化时间

  1. 序列号:序列号越大表示LSA越新(取值范围0x80000001~0x7FFFFFFF)
  2. 校验和:如果序列号相同,校验和越大表示LSA越新
  3. 老化时间 :如果校验和也相同,则比较老化时间
    • 若某条LSA的Age=3600秒(MaxAge),视为最新(用于触发删除)
    • 若Age差值>900秒(15分钟),选择Age数值较小的(更新鲜的)
    • 若Age差值<900秒,两条LSA视为相同,保持不变

4.3 LSA更新机制

OSPF中LSA的更新分为两种类型:

更新类型 触发条件 行为
周期更新 每30分钟超时 Seq递增,Checksum重算,Age置1秒
触发更新 链路/网络状态变化 Seq重置,Age置1秒
LSA主动删除 路由撤销 Seq/Checksum不变,Age置3600秒泛洪删除

4.4 LSDB同步原则

  • 触发更新:当路由条目发生变化(新增或删除)时,设备会立即将这一变化通过LSU报文告知自己的邻居,实现快速收敛
  • 周期更新:当LSA老化时间达到1800秒时,始发路由器会重新生成该LSA,序列号加1,再次泛洪,刷新所有路由器上的LSDB

五、DD报文格式

DD报文(Database Description Packet)在OSPF邻居建立过程中,当主从关系协商完毕后用于描述LSDB中LSA的摘要信息。DD报文中包含的关键字段:

字段 长度 含义
Interface MTU 16比特 发送接口的MTU值,华为缺省为0(不检查)
Options 8比特 标记特殊区域类型
I-bit 1比特 I=1表示第一个DD报文,用于协商主从关系
M-bit 1比特 M=0表示最后一个报文,M=1表示后续还有报文
MS-bit 1比特 MS=1表示主路由器,MS=0表示从路由器
DD Sequence Number 32比特 DD报文序列号,用于隐式确认

DD报文序列号在主从协商阶段由Master设备决定初始值,在Exchange阶段主设备每发送一个DD报文序列号加1,从设备必须使用Master设备的序列号来确认收到的DD报文。这种隐式确认机制保证了DD报文传输的可靠性。

六、OSPF状态机详解

6.1 OSPF邻居状态机(8种状态)

OSPF共有8种邻居状态:

状态 含义 说明
Down 邻居会话初始状态 未收到邻居的Hello报文
Attempt 仅发生在NBMA网络中 尝试状态,设备启动后从Down切换到该状态,尝试向外发送Hello报文
Init 收到邻居Hello报文 邻居的Hello报文中尚未包含自己的Router ID
2-Way 双向通信建立 收到的Hello报文中包含有自己的Router ID,邻居关系建立的标志
Exstart 预启动状态 使用未携带LSA摘要的DD报文进行主从关系选举,RID大的为主设备
Exchange 准交换状态 使用携带LSA摘要信息的DD报文进行信息共享
Loading 加载状态 使用LSR/LSU/LSAck三种报文获取完整的拓扑信息
Full 完全邻接状态 拓扑交换完成后进入该状态,标志着邻接关系建立

在广播网络中,路由器只与DR和BDR建立Full状态,与其他路由器(DROther之间)仅保持在2-Way状态。

6.2 OSPF工作过程

OSPF的工作过程可以分为以下步骤:

  1. 设备启动并配置OSPF后,向本地所有运行了OSPF协议的接口以组播224.0.0.5的方式发送Hello报文,Hello报文中携带本地的Router ID以及已知晓的邻居Router ID
  2. 当收到的Hello报文中存在本地的Router ID,则进入2-Way状态,并将邻居关系加入到邻居表中
  3. 进行条件匹配,匹配成功开始建立邻接关系
  4. 开始建立邻接关系:首先使用未携带数据的DD报文进行主从关系选举,主设备先进入下一个状态,从设备先发送下一个报文;之后使用DD报文来共享LSA摘要信息;之后双方通过LSR/LSU/LSAck报文完成未知LSA的获取过程,完成本地数据库的搭建(LSDB)
  5. 基于本地数据库中的LSA信息,通过SPF算法计算出有向图和最短路径树,计算出所有到达节点的路由信息,将计算出的路由信息加载到OSPF路由表中
  6. 基于OSPF路由表以及其他协议路由表,共同选择出最优路由,并将最优路由加载到全局路由表中,以供后续指导数据包的转发过程

七、OSPF基本配置命令

7.1 启动OSPF进程与宣告网络

bash 复制代码
# 进入系统视图
<Huawei> system-view

# 创建OSPF进程,手动指定Router ID(强烈推荐)
[Huawei] ospf 1 router-id 1.1.1.1

# 创建区域(骨干区域必须为Area 0)
[Huawei-ospf-1] area 0

# 宣告接口所属网段
[Huawei-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255

# 退出OSPF进程视图
[Huawei-ospf-1] quit

7.2 接口下直接使能OSPF(推荐方式)

bash 复制代码
# 在接口视图下直接使能OSPF
[Huawei] interface GigabitEthernet0/0/0
[Huawei-GigabitEthernet0/0/0] ospf enable 1 area 0

7.3 配置接口OSPF优先级

bash 复制代码
# 设置接口在选举DR时的优先级(范围0-255,默认1)
[Huawei] interface GigabitEthernet0/0/0
[Huawei-GigabitEthernet0/0/0] ospf dr-priority 100

7.4 查看OSPF运行状态命令汇总

bash 复制代码
# 查看OSPF进程概要信息(含Router ID)
[Huawei] display ospf brief

# 查看OSPF邻居状态
[Huawei] display ospf peer
[Huawei] display ospf peer brief

# 查看OSPF接口信息(含MTU、网络类型、DR优先级)
[Huawei] display ospf interface

# 查看OSPF路由表
[Huawei] display ospf routing

# 查看链路状态数据库
[Huawei] display ospf lsdb

7.5 维护OSPF

bash 复制代码
# 重启OSPF进程(Router ID修改后需执行)
[Huawei] reset ospf process

# 清除OSPF计数器
[Huawei] reset ospf counters

# 复位OSPF邻居
[Huawei] reset ospf peer GigabitEthernet0/0/0 1.1.1.1

执行reset ospf process会导致设备之间的OSPF邻接关系中断,需要谨慎操作。其重要用途包括:

  • 当Router ID有变化时,执行该命令可以使新的Router ID生效
  • 会导致重新选举DR、BDR
相关推荐
运筹vivo@2 小时前
Python ContextVar 底层机制与内存模型拆解
前端·数据库·python
志栋智能2 小时前
超自动化巡检:知识沉淀与团队协作的新载体
大数据·运维·网络·数据库·人工智能·自动化
syt_biancheng3 小时前
Redis初识
数据库·redis·缓存
酣大智3 小时前
策略路由PBR--企业双出口实验
网络·智能路由器·策略路由·pbr
袁小皮皮不皮3 小时前
1.HCIP BFD 学习笔记(优化版)
服务器·网络·笔记·网络协议·学习·智能路由器·ip
cmes_love3 小时前
股票逐笔level2历史行情下载十档订单薄五档tick分钟下载分享
数据库·区块链
仙俊红3 小时前
SQL 调优需要掌握的知识
数据库·sql
梁辰兴4 小时前
计算机网络基础:数据加密模型
网络·计算机网络·计算机·数据加密·计算机网络基础·梁辰兴·数据加密模型
fofantasy4 小时前
NSK LH12AN 微型导轨技术手册
运维·网络·数据库·经验分享·规格说明书