OSPF之建立邻居教程

📘 OSPF 第一阶段实验笔记(邻居建立)

适用场景:两台华为路由器(或三层交换机)通过以太网直连,运行OSPF协议,建立邻居关系。

一、实验拓扑与IP规划

设备 接口 IP地址/掩码 所属OSPF区域
AR1 GigabitEthernet0/0/0 10.0.12.1/24 Area 0
AR2 GigabitEthernet0/0/0 10.0.12.2/24 Area 0

连线方式:AR1的G0/0/0口 直连 AR2的G0/0/0口。

二、配置步骤(每一步附带白话解释)

第一步:进入系统视图并给设备命名

1
2
<AR1> system-view
[AR1] sysname AR1
命令 解释
system-view 从用户视图(< >)进入系统配置视图([ ]),这是所有配置动作的前提。
sysname AR1 修改设备的主机名,便于识别。在真实网络和排障时,看日志能立刻知道是哪台设备出了问题。

第二步:配置物理接口的IP地址(让链路“活起来”)

1
2
3
4
[AR1] interface GigabitEthernet0/0/0
[AR1-GigabitEthernet0/0/0] ip address 10.0.12.1 255.255.255.0
[AR1-GigabitEthernet0/0/0] undo shutdown
[AR1-GigabitEthernet0/0/0] quit
命令 解释
interface GigabitEthernet0/0/0 进入千兆以太网接口的配置视图。0/0/0 表示第1个槽位、第0个卡、第1号端口。
ip address 10.0.12.1 255.255.255.0 给该接口配置IP地址和子网掩码。/24(即255.255.255.0)表示这个接口所在的网段是 10.0.12.0/24。注意:对端AR2的接口必须配置同一网段的IP(如10.0.12.2),否则IP层无法通信。
undo shutdown 开启该接口(华为接口默认开启,但养成习惯敲这一句可以避免因误操作shutdown导致的故障)。
quit 退出当前接口视图,返回系统视图。

验证这一步是否成功:

1
[AR1] display ip interface brief

查看 GigabitEthernet0/0/0 行的 Physical 和 Protocol 是否都是 UP。如果显示 DOWN,说明网线没插好、对端设备没开机或IP地址配错了。


第三步:启动OSPF进程并配置Router ID

1
[AR1] ospf 1 router-id 1.1.1.1
命令 解释
ospf 1 在设备上创建一个OSPF进程,进程号(1)仅具有本地意义(相当于给这个OSPF实例起个名字)。在同一台设备上可以运行多个OSPF进程,用于隔离不同的网络域。
router-id 1.1.1.1 设置这台路由器在OSPF网络中的唯一标识符。必须手动指定,且全网唯一。如果不手动指定,设备会从所有接口IP中自动选一个最大的作为Router ID,这样会导致网络不稳定(如果接口IP变了,Router ID也跟着变)。建议使用环回口(Loopback)地址作为Router ID,因为它永远不down。

注意:Router ID 虽然看起来像IP地址,但它不是IP地址(不用于路由转发),它只是一个标识符。你可以写成 1.1.1.1,也可以写成 10.0.0.1,只要全网唯一即可。它不会在路由表里出现,你只能在 display ospf peer 输出里看到它。


第四步:进入OSPF区域视图并宣告网段

1
2
3
4
[AR1-ospf-1] area 0
[AR1-ospf-1-area-0.0.0.0] network 10.0.12.0 0.0.0.255
[AR1-ospf-1-area-0.0.0.0] quit
[AR1-ospf-1] quit
命令 解释
area 0 进入OSPF区域0(即骨干区域)的配置视图。所有OSPF网络必须有一个Area 0,其他区域必须直接或间接连接到Area 0。你以后配多区域时,Area 0是“总枢纽”。
network 10.0.12.0 0.0.0.255 这是最关键的一句。
- 10.0.12.0:要宣告的网段地址。
- 0.0.0.255:通配符掩码(Wildcard Mask),不是子网掩码!它是子网掩码的“反码”(即 255.255.255.255 - 255.255.255.0 = 0.0.0.255)。
- 效果:告诉OSPF,“任何IP地址落在 10.0.12.0/24 这个范围内的接口,都在Area 0里运行OSPF”。
新手常见错误:把 0.0.0.255 写成 255.255.255.0,这是错的!OSPF的network语句用的是通配符掩码。

AR2 配置(完全对称,只需改IP和Router ID):

1
2
3
4
5
6
7
8
9
10
11
<AR2> system-view
[AR2] sysname AR2
[AR2] interface GigabitEthernet0/0/0
[AR2-GigabitEthernet0/0/0] ip address 10.0.12.2 255.255.255.0
[AR2-GigabitEthernet0/0/0] undo shutdown
[AR2-GigabitEthernet0/0/0] quit
[AR2] ospf 1 router-id 2.2.2.2
[AR2-ospf-1] area 0
[AR2-ospf-1-area-0.0.0.0] network 10.0.12.0 0.0.0.255
[AR2-ospf-1-area-0.0.0.0] quit
[AR2-ospf-1] quit

配置完成后,敲 display ospf peer brief 验证:

1
[AR1] display ospf peer brief

你应该看到:

1
2
3
4
5
6
OSPF Process 1 with Router ID 1.1.1.1
Peer Statistic Information
-------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 2.2.2.2 Full
-------------------------------------------------------------------

State 为 Full 表示邻居关系建立成功,OSPF已开始交换路由信息。


三、OSPF 邻居建立状态机(供笔记记录)

状态 含义 排障切入点
Down 尚未收到对方的Hello报文 检查物理链路(接口是否UP、IP是否配通)
Init 收到了Hello报文,但未确认双向通信 检查区域ID(Area)是否一致
2-Way 双向通信建立,开始选举DR/BDR 检查Hello/Dead间隔是否一致
Exstart 开始主从协商,决定谁先发送数据库摘要 检查MTU是否一致(华为默认忽略MTU检查,但在某些场景下需要手动开启)
Exchange 交换数据库摘要(DD报文),描述本地LSDB的目录 检查是否收到DD报文(display ospf statistics)
Loading 请求并接收对方详细的链路状态信息(LSR/LSU报文) 检查网络是否丢包
Full 完全邻接,双方LSDB已同步 ✅ 成功状态

关键约束条件(邻居建立必须匹配的“三要素”):

  • Area ID 必须一致。
  • Hello 间隔(Hello Interval)和 Dead 间隔(Dead Interval)必须一致。
  • 认证类型和认证密码必须一致(如果配置了认证)。

四、新手常见排错场景与解决办法

❌ 场景1:display ospf peer 没有输出(邻居没建立)

排查步骤:

  1. 检查物理层:display interface GigabitEthernet0/0/0,确认 current state 是 UP。
  2. 检查IP层:ping 10.0.12.2,确认能通。
  3. 检查OSPF是否宣告正确:在AR1上敲 display ospf interface,看 GigabitEthernet0/0/0 的 State 是否为 DR 或 BDR 或 DROther。如果该接口未出现在此输出中,说明 network 宣告的网段与接口IP不在同一范围。

❌ 场景2:邻居状态卡在 Exstart 或 Exchange 不动

排查步骤:

  1. 检查MTU是否一致:在接口视图下敲 display this,看 mtu 值(华为默认不强制MTU检查,但某些场景下需要手动关闭MTU检测:ospf mtu-enable)。
  2. 检查是否启用了认证:如果一侧配了 ospf authentication-mode md5,另一侧没配,邻居会一直起不来。

❌ 场景3:邻居状态在 2-Way 和 Full 之间反复震荡

排查步骤:

  • 检查 Hello 间隔 和 Dead 间隔 是否一致。在接口视图下敲 ospf timer hello 10 可以修改(默认为10秒),Dead 默认为 Hello 的4倍(40秒)。如果一侧改了Hello为5秒,另一侧仍为10秒,则Dead时间会不一致(10秒 vs 40秒),邻居建立失败。

五、你已有的命令速查表(放在笔记末尾)

目的 命令
查看OSPF邻居状态 display ospf peer brief
查看OSPF邻居详细信息 display ospf peer GigabitEthernet0/0/0
查看OSPF接口状态 display ospf interface
查看OSPF错误统计 display ospf error(排障神器)
查看OSPF路由表 display ospf routing
查看当前所有OSPF配置 `display current-configuration