eNSP 实战难度 · 进阶
OSPF 邻居状态机图解:两台路由器如何成为邻居
OSPF 邻居建立与邻居状态机图解,一张图看懂 Hello、DR/BDR、LSA 洪泛,附华为 eNSP 单区域配置。
#OSPF#动态路由#eNSP
先看效果

为什么需要 OSPF
静态路由手动配,网络一大就累死人。OSPF(开放最短路径优先)是应用最广的动态路由协议:路由器之间自己交换路由信息,网络拓扑变了自动收敛,不用人管。
OSPF 的核心是邻居关系:两台路由器先把对方变成邻居,再交换各自的链路状态(LSA),最后各自算出一张完整的拓扑图(LSDB),用 Dijkstra 算法算最短路径。
原理图解
看上面这张图——邻居状态机的七个状态:
- Down:初始,还没收到对方消息;
- Init:收到了对方的 Hello,但对方还没收到我的 Hello;
- 2-Way:双方都收到了对方的 Hello,邻居关系确认(广播网里这时开始选 DR/BDR);
- ExStart:开始协商主从关系,决定谁先发送数据库描述;
- Exchange:交换 DBD(数据库描述),列出各自的 LSA 摘要;
- Loading:发现对方有自己缺的 LSA,发 LSR(链路状态请求);
- Full:双方 LSDB 完全同步,邻居建立完成,可以互相转发。
记忆技巧:Down → 2-Way 靠 Hello 刷存在感;ExStart → Full 靠交换数据库同步。广播网多路访问里还要选 DR(指定路由器)和 BDR(备份 DR)来减少 LSA 洪泛。
eNSP 完整配置
两台 AR2220(R1、R2)互联,属于 area 0,各带一个业务网段。以 R1 为例:
# ===== R1 =====
<Huawei> system-view
[Huawei] sysname R1
# 接口 IP
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] ip address 10.1.1.1 24
[R1-GigabitEthernet0/0/0] quit
[R1] interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1] ip address 192.168.1.254 24
[R1-GigabitEthernet0/0/1] quit
# 启用 OSPF,进程号 1,区域 0
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] quit
[R1-ospf-1] quit
[R1] save
R2 对称配置(router-id 2.2.2.2,网段 192.168.2.0/24)。
验证
# 查看邻居,State 应该是 Full
[R1] display ospf peer
# 查看 OSPF 路由
[R1] display ospf routing
# 全链路测试
[R1] ping 192.168.2.1
display ospf peer 能看到邻居 2.2.2.2,State: Full,Mode: -。路由表里 192.168.2.0/24 变成 OSPF 学到的动态路由。
常见问题
Q: 邻居一直卡在 2-Way? A: 广播网里 2-Way 是正常状态——只有 DR/BDR 之间才继续走到 Full。如果你在串行链路上卡 2-Way,多半是网络类型不匹配。
Q: 邻居起不来?
A: 四项必查:① 两端接口 IP 同网段;② network 宣告的网段要覆盖接口 IP;③ area ID 一致;④ router-id 不能相同。
下一步
OSPF 能让网络自动学会路由,但防火墙才管谁能进出。接下来看 ACL 访问控制列表。