第4章 OSPF基础配置:Router-ID、Network类型、区域划分、邻居建立与维护
好,咱们进入OSPF的实战环节。说实话,OSPF这东西,理论看着挺复杂,但配置起来其实就那么几个关键点。我见过不少新手,配置敲得飞快,结果邻居死活起不来,最后发现是Router-ID冲突了。嗯,咱们今天就一步步把这些坑填平。
4.1 OSPF Router-ID:你的路由器身份证
Router-ID,说白了就是一台路由器在OSPF网络里的唯一标识。它是个32位的数字,写法跟IP地址一样,比如1.1.1.1。但注意,它不一定是接口IP,你可以随便指定。
Router-ID的选举规则(我按优先级排了个序):
- 手动配置的Router-ID(最优先)
- Loopback接口中IP地址最大的那个
- 物理接口中IP地址最大的那个
配置命令很简单:
# 进入OSPF进程,手动指定Router-ID
[Huawei] ospf 1 router-id 1.1.1.1
[Huawei-ospf-1]
# 或者在进程下修改
[Huawei-ospf-1] router-id 2.2.2.2
# 注意:修改后需要重置OSPF进程才能生效
[Huawei] reset ospf 1 process
你想想看,如果两台路由器的Router-ID一样,会发生什么?OSPF会认为它们是同一台设备,邻居关系根本建立不起来。所以,规划阶段就要把Router-ID分配好,我一般习惯用Loopback0的地址作为Router-ID。
4.2 Network类型:选对类型,事半功倍
OSPF的Network类型,决定了它怎么发送Hello报文、怎么选举DR/BDR。常见的就三种:
| Network类型 | 默认接口 | 是否选举DR/BDR | Hello间隔 |
|---|---|---|---|
| Broadcast | 以太网接口 | 是 | 10秒 |
| P2P | PPP/HDLC链路 | 否 | 10秒 |
| NBMA | Frame Relay | 是 | 30秒 |
我个人建议:在IP RAN网络中,能配P2P就配P2P。为什么?因为P2P不需要选举DR/BDR,邻居建立快,收敛也快。我在项目中遇到过,某个接入层用Broadcast类型,结果DR选举失败,导致整网OSPF震荡。后来改成P2P,世界清净了。
配置方法:
# 在接口下修改Network类型
[Huawei-GigabitEthernet0/0/1] ospf network-type p2p
# 查看当前接口的OSPF信息
[Huawei] display ospf interface GigabitEthernet 0/0/1
ospf timer hello 3。
4.3 区域划分:骨干区域是核心
OSPF的区域设计,说白了就是「骨干区域0必须连续」。所有非骨干区域都必须直接连接到Area 0。这是铁律,别想着打破它。
区域划分的好处很明显:
- 减少LSDB规模:每个区域只维护本区域的链路状态
- 隔离故障:一个区域的震荡不会扩散到其他区域
- 简化路由:区域间使用Type 3 LSA传递路由,说白了就是汇总
配置示例:
# 在路由器上创建多个OSPF区域
[Huawei] ospf 1
[Huawei-ospf-1] area 0
[Huawei-ospf-1-area-0.0.0.0] network 10.0.1.0 0.0.0.255
[Huawei-ospf-1] area 1
[Huawei-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
[Huawei-ospf-1] area 2
[Huawei-ospf-1-area-0.0.0.2] network 172.16.1.0 0.0.0.255
注意:这里的network命令用的是反掩码,不是子网掩码。0.0.0.255表示匹配前24位。我刚开始学的时候,老是把反掩码和子网掩码搞混,后来记住一个规律:反掩码 = 255.255.255.255 - 子网掩码。
4.4 邻居建立与维护:从Down到Full的旅程
OSPF邻居状态机,一共7个状态。但咱们实战中,只需要关注几个关键状态:
- Down:初始状态,啥都没有
- Init:收到对方的Hello报文,但没看到自己
- 2-Way:双方都看到了对方,邻居关系建立(广播网络开始选举DR/BDR)
- ExStart:协商主从关系,确定DD报文的序列号
- Exchange:交换DD报文,描述各自的LSDB
- Loading:请求缺失的LSA
- Full:LSDB同步完成,邻接关系建立
🔑 核心要点: 邻居状态卡在某个阶段,通常意味着配置有问题。
- 卡在Init:检查Hello报文是否互通(ACL、MTU)
- 卡在2-Way:广播网络中,DR选举失败(检查优先级)
- 卡在ExStart/Exchange:MTU不匹配(最常见!)
我曾经遇到过一个经典案例:两台设备直连,OSPF邻居一直卡在ExStart状态。查了半天,发现是接口MTU不一致——一端是1500,另一端是1492。OSPF的DD报文如果超过接口MTU,会被丢弃。解决办法:要么统一MTU,要么在接口下配ospf mtu-ignore。
查看邻居状态的命令:
# 查看所有OSPF邻居
[Huawei] display ospf peer
# 查看指定邻居的详细信息
[Huawei] display ospf peer GigabitEthernet 0/0/1
# 查看OSPF接口状态
[Huawei] display ospf interface
输出示例:
OSPF Process 1 with Router-ID 1.1.1.1
Neighbors
Area 0.0.0.0 interface 10.0.12.1(GigabitEthernet0/0/1) neighbors
Router ID: 2.2.2.2 Address: 10.0.12.2
State: Full Mode: Nbr is Master Priority: 1
DR: 10.0.12.1 BDR: 10.0.12.2 MTU: 1500
Dead timer due in 00:00:36
Neighbor is up for 00:12:34
看到State是Full,心里就踏实了。如果看到的是其他状态,嗯,那就得排查了。
4.5 邻居维护:Keepalive与Dead Timer
OSPF通过Hello报文来维护邻居关系。默认情况下:
- Broadcast/P2P网络:Hello间隔10秒,Dead间隔40秒
- NBMA网络:Hello间隔30秒,Dead间隔120秒
Dead间隔是Hello间隔的4倍。也就是说,如果连续4个Hello报文没收到,邻居就Down了。
我建议:在IP RAN这种对可靠性要求高的场景,可以把Hello间隔调小。比如:
# 在接口下调整定时器
[Huawei-GigabitEthernet0/0/1] ospf timer hello 3
[Huawei-GigabitEthernet0/0/1] ospf timer dead 12
最后,分享一个排查邻居问题的思路:
- 先看物理层:接口UP了吗?
- 再看网络层:能Ping通对端吗?
- 然后看OSPF:Router-ID冲突吗?区域ID一致吗?
- 最后看细节:MTU、认证、Network类型
按照这个顺序查,90%的问题都能定位。剩下的10%,嗯,那就得抓包分析了。
好了,OSPF的基础配置就这些。下一章咱们聊聊OSPF的高级特性——LSA类型和路由选路。到时候我会分享一些我在现网中遇到的奇葩案例,保证让你印象深刻。