OSPF基础入门篇②:OSPF邻居建立篇-网络设备的“社交礼仪“
Hello,大家好~
我是网络工程师白夕 🌞
OSPF建立邻接关系,就像陌生人成为朋友需要经历握手、自我介绍、交换礼物等步骤,OSPF设备建立邻接关系的过程堪称一部精密的社交礼仪指南。
本文将用电话沟通的完整流程,带您解密DR/BDR选举的"班级政治"和七种状态的"对话艺术"。
一、五种报文:OSPF的"通信语言"
📞 电话沟通 vs 报文交互
通话步骤 | OSPF报文 | 作用 | 组播地址 |
---|---|---|---|
拨号音 | Hello | 发现邻居/维持关系 | 224.0.0.5 |
自我介绍 | DBD | 交换数据库摘要 | 224.0.0.5/6 |
询问详细信息 | LSR | 请求缺失的LSA | 单播 |
传递资料 | LSU | 发送完整的LSA | 单播 |
确认收到 | LSACK | 确保信息可靠传输 | 单播 |
实验截图:
Wireshark抓包
-
Hello报文结构
-
DBD报文结构
-
LSR报文结构
-
LSU报文结构
-
LSACK报文结构
二、七种状态机:从陌生到信任的旅程
📱 电话社交礼仪映射
深度解析:
① 2-way状态:
-
DR和BDR选举完成
-
存在活跃的邻居字段
② ExStart状态:
-
相当于确定谁先发言(主从关系选举)
-
通过比较RID决定Master/Slave
-
由双方首个DBD报文进行确认
-
主从选举完成
③ Loading状态:
-
类似核对购物清单:"请问第三项资料能否再发一遍?"
-
使用LSR/LSU精准补全缺失信息
拓扑图示意:状态转换时序图(可能不是那么准确,但这个是大概的一个各个阶段做的事情,以及相关细节,若有问题,可以在评论区里面说,后面再出修改版,一起进步啦)
OSPF的建立过程中,报文交互情况
三、DR/BDR选举:网络世界的"班级选举"
🎯 选举规则三原则
-
资格审核:
-
接口优先级>0(默认以太网接口优先级=1)
-
接口处于up状态
-
接口的网络类型为Broadcast
-
-
投票阶段:
- 任期制度:
-
非抢占特性:即使新设备优先级更高,也不会立即取代现有DR
-
只有重启或DR故障时才会重新选举
-
配置对比:
查看DR、BDR的配置命令
思科:
华为华三:
四、多场景选举实验
🌐 实验1:以太网环境选举
拓扑:
配置:
#i 思科
R1(config)#int e0/0
R1(config-if)#no shutdown
R1(config-if)#ip address 192.168.100.1 255.255.255.0
R1(config-if)#exitR1(config-if)#int lo0
R1(config-if)#ip address 1.1.1.1 255.255.255.255
R1(config-if)#exit#i 接口下通告OSPF
R1(config)#int range e0/0,lo0
R1(config-if-range)#ip ospf 1 area 0
R1(config-if-range)#exit#i 保存配置
R1(config)#do wr
Building configuration...
[OK]#i 华为、华三
[R3]int g1/0
[R3-GigabitEthernet1/0]ip address 192.168.100.3 24
[R3-GigabitEthernet1/0]quit[R3]int lo0
[R3-LoopBack0]ip address 3.3.3.3 32
[R3-LoopBack0]quit[R3]int range g1/0 lo0
[R3-if-range]ospf 1 area 0
[R3-if-range]quit
现象:
在R4上查看OSPF邻居表,就可以发现以下信息
-
R1成为BDR,R2成为DR
-
R3、R4作为DROther只维护邻居关系
关键结论:
-
DRother和DRother之间的状态是2-way,就只建立邻居关系,不交互LSA
-
DR和BDR、DRother和DR、BDR之间都是full状态,建立邻接关系,DRother将自身LSA发送给DR、BDR进行同步
角色问题:
可能大家就会有问题了,为啥R4的RID最大,但它是DRother啊?(默认接口OSPF优先级都为1,优先级相同)
-
① DR和BDR是非抢占的,选举完成就不再进行DR、BDR选举
-
② 我是按照R1、R2、R3、R4的顺序启动OSPF,所以R1、R2启动OSPF时间相差不大,所以能进行DR、BDR选举;R1、R2的接口优先级一致,而R2的RID大于R1,所以R2成为DR、R1成为BDR;后面R3、R4再启动OSPF时,192.168.100.0/24的广播域中已经存在DR、BDR了,所以它们只能成为DRother了
如果要修改成R4成为DR、R3为BDR,R1、R2为DRother也没问题,很简单
-
先修改接口优先级,R4为10,R3为5,R1、R2默认为1
-
再四台设备在10s内同时重启即可(可用CRT一键发送) 一键发送命令到所有会话窗口
-
尽量来说,同厂商设备会更好一些,华三起OSPF邻居比思科较快,即使接口优先级小于R4,但它还是提前完成OSPF收敛,角色就变成DR了,我是思科先重启,过个两三秒再重启华三设备即可
配置
#i 华三修改接口优先级
[R3]int g1/0
[R3-GigabitEthernet1/0]ospf dr-priority 5
[R3-GigabitEthernet1/0]qu#i 思科修改接口优先级
R4(config)#int e0/0
R4(config-if)#ip ospf priority 10
R4(config-if)#ex
效果
查看OSPF的接口网络类型
📡 实验2:串行链路场景
实验拓扑:
现象:
关键结论:
-
点对点链路不需要DR/BDR选举
-
所有邻居直接建立邻接关系
查看OSPF的接口网络类型
排错锦囊:当发现邻居卡在2-Way状态时,首先检查网络类型是否匹配
五、邻居故障排查手册(基础版)
🚨 四大新手必遇问题
诊断流程图
新手贴士:
-
每次修改配置后,使用
clear ip ospf process
(思科)或reset ospf process
(华为)重启进程 -
优先使用环回口作为RID,避免因物理接口IP变化导致问题
-
广播网络必须检查DR/BDR选举,点对点链路无需关注
六、技术冷知识
冷知识1:为什么OSPF需要Area 0?
类比解释:
就像城市的主干道必须贯穿市中心(Area 0),所有支路(非骨干区域)必须连接到主干道。如果支路直接相连而不通过市中心,就会导致"交通规则混乱"(路由环路)。
技术本质:
-
防止区域间路由环路
-
确保Type-3 LSA的规范传递
冷知识2:为什么Hello/Dead时间默认是10s/40s?
类比解释:
如同朋友间的定期问候:
-
Hello间隔10s:每隔10秒发短信"在吗?"
-
Dead时间40s:如果连续4次未回复(4×10s),判定对方失联
设计考量:
-
平衡检测速度和网络负载
-
4倍关系便于计算(Dead = 4 × Hello)
冷知识3:为什么DR要使用224.0.0.6?
类比解释:
班级通知流程优化:
-
224.0.0.5:全班群聊(所有成员接收)
-
224.0.0.6:班委专属群(仅DR/BDR接收)
-
单播:私下单独问题讨论(LSR/LSU)
网络价值:
-
减少广播域内冗余流量
-
提升LSA同步效率