当前位置: 首页 > news >正文

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选举:网络世界的"班级选举"

🎯 选举规则三原则

  1. 资格审核

    • 接口优先级>0(默认以太网接口优先级=1)

    • 接口处于up状态

    • 接口的网络类型为Broadcast

  2. 投票阶段

  1. 任期制度
    • 非抢占特性:即使新设备优先级更高,也不会立即取代现有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状态时,首先检查网络类型是否匹配


五、邻居故障排查手册(基础版)

🚨 四大新手必遇问题


诊断流程图

新手贴士

  1. 每次修改配置后,使用clear ip ospf process(思科)或reset ospf process(华为)重启进程

  2. 优先使用环回口作为RID,避免因物理接口IP变化导致问题

  3. 广播网络必须检查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同步效率


http://www.mrgr.cn/news/97751.html

相关文章:

  • 程序代码篇---时间复杂度空间复杂度
  • 如何在Dify中安装运行pandas、numpy库(离线、在线均支持,可提供远程指导)
  • OminiAdapt:学习跨任务不变性,实现稳健且环境-觉察的机器人操作
  • MCP协议介绍
  • Spring Security 的核心配置项详解,涵盖认证、授权、过滤器链、HTTP安全设置等关键配置,结合 Spring Boot 3.x 版本最佳实践
  • ruby超高级语法
  • DDoS防御与流量优化
  • Java 开发中主流安全框架的详细对比,涵盖 认证、授权、加密、安全策略 等核心功能,帮助开发者根据需求选择合适的方案
  • [C++面试] 初始化相关面试点深究
  • 【C++】 —— 笔试刷题day_13
  • 解锁ChatGPT-4o文生图潜力:精选提示词收集整理更新中
  • LangChain4j(7):Springboot集成LangChain4j实现知识库RAG
  • dify文本生成图片
  • 探索 Shell 中的扩展通配符:从 Bash 到 Zsh
  • Linux: 线程控制
  • 嵌入式系统中如何构建事件响应架构
  • Windows 图形显示驱动开发-WDDM 2.0功能_分配用法跟踪
  • 设计模式之桥接、组合、装饰模式
  • Java BigInteger 详解
  • 蓝桥杯-小明的彩灯(Java-差分)