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

OSPF协议:核心概念与配置要点解析

OSPF协议:核心概念与配置要点解析

OSPFOpen Shortest Path First)是一种非常重要的链路状态路由协议

链路状态协议
  • 每个路由器广播整个路由表。
  • 每个路由表负责描述自己直连链路的状态(如:连接到哪些网络、邻居路由器是谁、链路开销等),并将这些信息封装在LSA(链路状态通告)中。
  • 这些LSA会在区域内泛洪,使得区域内的每个路由最终都拥有一个完全相同的链路状态数据库
  • 路由器基于这个数据库,使用Dijkstra(一种经典的最短路径算法)独立计算出一个以自己为根的、无环的最短路径树,从而得到到达所有已知目标网络的最优路径(路由表)。
快速收敛:
  • 链路状态发生变化会触发快速更新(仅发送变化的LSA),迅速重新计算路由,收敛速度快。
  • 30分钟周期性更新,确保数据库中包含最新的链路状态记录,证lsdb(链路状态数据库)的同步,提高可靠性。
分层设计(区域):
  • 核心优势!将大型网络划分为更小的管理单元——区域
  • 骨干区域:必须是 Area 0。所有其他非骨干区域必须直接连接到 Area 0。区域间路由信息必须通过骨干区域传递。
  • 减少 LSA 泛洪范围:大多数 LSA 只在区域内泛洪,大大减少了路由器的 LSDB 大小和 SPF 计算复杂度。
  • 提高稳定性:一个区域内的拓扑变化不会影响其他区域内的路由器进行 SPF 计算(区域边界路由器会进行汇总和过滤)。
  • 优化资源使用:降低路由器 CPU 和内存消耗。
路由器类型:
  • 内部路由器:所有接口都在同一个区域内。
  • 区域边界路由器:连接多个区域(其中一个是 Area 0),负责汇总区域内的路由信息(3 类 LSA)并注入到骨干区域,反之亦然。
  • 骨干路由器:至少有一个接口在 Area 0。
  • 自治系统边界路由器:将 OSPF 域外部的路由(如静态路由、RIP、EIGRP、BGP 路由)重分布到 OSPF 域中(5 类/7 类 LSA)。
通信类型:
  • 区域内通信——在同一个区域内的路由器之间的通信。
  • 区域间通信——不同区域的路由器断之间的通信。
  • 区域外部通信——OSPF域内路由器之间域另一个自治系统内的各区域及路由器进行任务分工。
度量值:
  • OSPF 使用 开销 作为度量值。
  • 开销主要基于接口的带宽计算(参考带宽 / 接口带宽,参考带宽默认 100 Mbps)。
  • 开销值越低,路径越优。
  • 路径总开销是到达目标网络路径上所有出站接口开销的总和

DR/BDR选举的详细流程

  1. 邻居发现(Hello 协议)
    • 路由器通过发送 Hello 包发现同一网段上的 OSPF 邻居。
    • Hello 包中包含字段:
      Router IDNeighbor ListPriorityDRBDR
  2. 参与选举的条件
    • 只有 OSPF 邻居状态进入 2-Way 或更高 的路由器才参与选举。
    • 每个路由器的 OSPF 接口优先级(默认=1,范围 0-255):
      • 优先级=0 → 不参与选举(永远为 DROther)
      • 优先级>0 → 参与选举
  3. 选举规则(严格优先级顺序)
    • 最高接口优先级
      • 比较所有邻居的 Priority 值(数值越高越优先)。
    • 最高 Router ID(若优先级相同)
      • 手动配置的 Router ID > 最大 Loopback IP > 最大活动物理接口 IP
  4. 选举过程(非抢占性)
    • 始化选举(网络首次启动时):
      • 路由器在 Hello 包中宣告自己为 DR=0.0.0.0, BDR=0.0.0.0
      • 等待 Wait Timer(默认=40秒),收集所有邻居的 Hello 包。
      • 根据收集到的邻居优先级和 RID,选举出:
        • **BDR先选举:**从所有宣告自己为 BDR 或优先级>0的路由器中选最优者。
        • **DR再选举:**从所有宣告自己为 DR 或优先级>0的路由器中选最优者(通常 BDR 升级为 DR)。
    • 最终结果
      • 最优者 → DR
      • 次优者 → BDR
      • 其余 → DROther
    • 关键特性:非抢占性
      • 一旦选举完成,新加入的高优先级路由器不会抢占现有 DR/BDR
      • 除非 DR/BDR 失效(Dead Timer 超时),否则角色不变。

    在这里插入图片描述

实验:

一、实验拓扑

在这里插入图片描述

二、实验需求
  1. 按照图示配置IP地址
  2. 按照图示分区配置OSPF,实现全网互通
  3. 路由器使用环回口作为 Router-id,ABR 的环回口宣告进骨干区域
  4. 测试,查看路由表和关系表
三、实验步骤
  1. 按照图示配置IP地址

    [R1]int g0/0
    [R1-GigabitEthernet0/0]ip add 10.1.12.1 24
    [R1-GigabitEthernet0/0]int g0/1
    [R1-GigabitEthernet0/1]ip add 10.1.14.1 24
    [R1-GigabitEthernet0/1]int lo0
    [R1-LoopBack0]ip add 1.1.1.1 32
    [R1-LoopBack0]qu
    
    [R2]int g0/0
    [R2-GigabitEthernet0/0]ip add 10.1.12.2 24
    [R2-GigabitEthernet0/0]int g0/1
    [R2-GigabitEthernet0/1]ip add 10.1.23.2 24
    [R2-GigabitEthernet0/1]int lo0
    [R2-LoopBack0]ip add 2.2.2.2 32
    [R2-LoopBack0]qu
    
    [R3]int g0/0
    [R3-GigabitEthernet0/0]ip add 10.1.23.3 24
    [R3-GigabitEthernet0/0]int g0/1
    [R3-GigabitEthernet0/1]ip add 10.1.35.3 24
    [R3-GigabitEthernet0/1]int lo0
    [R3-LoopBack0]ip add 3.3.3.3 32
    [R3-LoopBack0]qu
    
    [R4]int g0/0
    [R4-GigabitEthernet0/0]ip add 10.1.14.4 24
    [R4-GigabitEthernet0/0]int lo0
    [R4-LoopBack0]ip add 4.4.4.4 32
    [R4-LoopBack0]qu
    
    [R5]int g0/0
    [R5-GigabitEthernet0/0]ip add 10.1.35.5 24
    [R5-GigabitEthernet0/0]int lo0
    [R5-LoopBack0]ip add 5.5.5.5 32
    [R5-LoopBack0]qu
    
  2. 按照图示分区配置OSPF,实现全网互通

    #进入ospf 1,配置router-id
    #进入area 0
    #宣告网段10.1.12.0、1.1.1.1
    #进入area 1
    #宣告网段10.1.14.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.12.0 0.0.0.255
    [R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
    [R1-ospf-1-area-0.0.0.0]dis th
    #area 0.0.0.0network 1.1.1.1 0.0.0.0network 10.1.12.0 0.0.0.255
    #
    return
    [R1-ospf-1-area-0.0.0.0]area 1
    [R1-ospf-1-area-0.0.0.1]network 10.1.14.0 0.0.0.255
    [R1-ospf-1-area-0.0.0.1]dis th
    #area 0.0.0.1network 10.1.14.0 0.0.0.255
    #
    return
    [R1-ospf-1-area-0.0.0.1]qu
    [R1-ospf-1]qu
    [R1]
    
    #进入ospf 1,配置router-id
    #进入area 0
    #宣告网段10.1.12.0、10.1.23.0、2.2.2.2[R2]ospf 1
    [R2]ospf 1 router-id 2.2.2.2
    [R2-ospf-1]area 0
    [R2-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255
    [R2-ospf-1-area-0.0.0.0]network 10.1.23.0 0.0.0.255
    [R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
    [R2-ospf-1-area-0.0.0.0]dis th
    #area 0.0.0.0network 2.2.2.2 0.0.0.0network 10.1.12.0 0.0.0.255network 10.1.23.0 0.0.0.255
    #
    return
    [R2-ospf-1-area-0.0.0.0]qu
    [R2-ospf-1]qu
    
    #进入ospf 1,配置router-id
    #进入area 0
    #宣告网段10.1.23.0、3.3.3.3
    #进入area 2
    #宣告网段10.1.35.0[R3]ospf 1 router-id 3.3.3.3
    [R3-ospf-1]area 0
    [R3-ospf-1-area-0.0.0.0]network 10.1.23.0 0.0.0.255
    [R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
    [R3-ospf-1-area-0.0.0.0]dis th
    #area 0.0.0.0network 3.3.3.3 0.0.0.0network 10.1.23.0 0.0.0.255
    #
    return
    [R3-ospf-1-area-0.0.0.1]area 2
    [R3-ospf-1-area-0.0.0.2]network 10.1.35.0 0.0.0.255
    [R3-ospf-1-area-0.0.0.2]dis th
    #area 0.0.0.2network 10.1.35.0 0.0.0.255
    #
    return
    [R3-ospf-1-area-0.0.0.2]qu
    [R3-ospf-1]qu
    
    #进入ospf 1,配置router-id
    #进入area 1
    #宣告网段10.1.14.0、4.4.4.4[R4]ospf 1 router-id 4.4.4.4
    [R4-ospf-1]area 1
    [R4-ospf-1-area-0.0.0.1]network 10.1.14.0 0.0.0.255
    [R4-ospf-1-area-0.0.0.1]network 4.4.4.4 0.0.0.0
    [R4-ospf-1-area-0.0.0.1]dis th
    #area 0.0.0.1network 4.4.4.4 0.0.0.0network 10.1.14.0 0.0.0.255
    #
    return
    [R4-ospf-1-area-0.0.0.1]qu
    [R4-ospf-1]qu
    
    #进入ospf 1,配置router-id
    #进入area 2
    #宣告网段10.1.35.0、5.5.5.5[R5]ospf 1 router-id 5.5.5.5
    [R5-ospf-1]area 2
    [R5-ospf-1-area-0.0.0.2]network 10.1.35.0 0.0.0.255
    [R5-ospf-1-area-0.0.0.2]network 5.5.5.5 0.0.0.0
    [R5-ospf-1-area-0.0.0.2]dis th
    #area 0.0.0.2network 5.5.5.5 0.0.0.0network 10.1.35.0 0.0.0.255
    #
    return
    [R5-ospf-1-area-0.0.0.2]qu
    [R5-ospf-1]qu
    
  3. 查看邻居关系表

    [R1]display ospf peerOSPF Process 1 with Router ID 1.1.1.1Neighbor Brief InformationArea: 0.0.0.0        Router ID       Address         Pri Dead-Time  State             Interface2.2.2.2         10.1.12.2       1   31         Full/BDR          GE0/0Area: 0.0.0.1        Router ID       Address         Pri Dead-Time  State             Interface4.4.4.4         10.1.14.4       1   31         Full/BDR          GE0/1
    
    [R2]display ospf peerOSPF Process 1 with Router ID 2.2.2.2Neighbor Brief InformationArea: 0.0.0.0        Router ID       Address         Pri Dead-Time  State             Interface1.1.1.1         10.1.12.1       1   30         Full/DR           GE0/03.3.3.3         10.1.23.3       1   39         Full/BDR          GE0/1
    
    [R3]display ospf peerOSPF Process 1 with Router ID 3.3.3.3Neighbor Brief InformationArea: 0.0.0.0        Router ID       Address         Pri Dead-Time  State             Interface2.2.2.2         10.1.23.2       1   36         Full/DR           GE0/0Area: 0.0.0.2        Router ID       Address         Pri Dead-Time  State             Interface5.5.5.5         10.1.35.5       1   40         Full/BDR          GE0/1
    
    [R4]display ospf peerOSPF Process 1 with Router ID 4.4.4.4Neighbor Brief InformationArea: 0.0.0.1        Router ID       Address         Pri Dead-Time  State             Interface1.1.1.1         10.1.14.1       1   37         Full/DR           GE0/0
    
    [R5]display ospf peerOSPF Process 1 with Router ID 5.5.5.5Neighbor Brief InformationArea: 0.0.0.2        Router ID       Address         Pri Dead-Time  State             Interface3.3.3.3         10.1.35.3       1   35         Full/DR           GE0/0
    
  4. 查看路由表

    [R1]dis ip routing-table Destinations : 20       Routes : 20Destination/Mask   Proto   Pre Cost        NextHop         Interface
    0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
    1.1.1.1/32         Direct  0   0           127.0.0.1       InLoop0
    2.2.2.2/32         O_INTRA 10  1           10.1.12.2       GE0/0
    3.3.3.3/32         O_INTRA 10  2           10.1.12.2       GE0/0
    4.4.4.4/32         O_INTRA 10  1           10.1.14.4       GE0/1
    5.5.5.5/32         O_INTER 10  3           10.1.12.2       GE0/0
    10.1.12.0/24       Direct  0   0           10.1.12.1       GE0/0
    10.1.12.1/32       Direct  0   0           127.0.0.1       InLoop0
    10.1.12.255/32     Direct  0   0           10.1.12.1       GE0/0
    10.1.14.0/24       Direct  0   0           10.1.14.1       GE0/1
    10.1.14.1/32       Direct  0   0           127.0.0.1       InLoop0
    10.1.14.255/32     Direct  0   0           10.1.14.1       GE0/1
    10.1.23.0/24       O_INTRA 10  2           10.1.12.2       GE0/0
    10.1.35.0/24       O_INTER 10  3           10.1.12.2       GE0/0
    127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
    127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
    127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
    224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
    224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
    255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
    
    [R2]dis ip routing-table Destinations : 20       Routes : 20Destination/Mask   Proto   Pre Cost        NextHop         Interface
    0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
    1.1.1.1/32         O_INTRA 10  1           10.1.12.1       GE0/0
    2.2.2.2/32         Direct  0   0           127.0.0.1       InLoop0
    3.3.3.3/32         O_INTRA 10  1           10.1.23.3       GE0/1
    4.4.4.4/32         O_INTER 10  2           10.1.12.1       GE0/0
    5.5.5.5/32         O_INTER 10  2           10.1.23.3       GE0/1
    10.1.12.0/24       Direct  0   0           10.1.12.2       GE0/0
    10.1.12.2/32       Direct  0   0           127.0.0.1       InLoop0
    10.1.12.255/32     Direct  0   0           10.1.12.2       GE0/0
    10.1.14.0/24       O_INTER 10  2           10.1.12.1       GE0/0
    10.1.23.0/24       Direct  0   0           10.1.23.2       GE0/1
    10.1.23.2/32       Direct  0   0           127.0.0.1       InLoop0
    10.1.23.255/32     Direct  0   0           10.1.23.2       GE0/1
    10.1.35.0/24       O_INTER 10  2           10.1.23.3       GE0/1
    127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
    127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
    127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
    224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
    224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
    255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
    
    [R3]dis ip routing-table Destinations : 20       Routes : 20Destination/Mask   Proto   Pre Cost        NextHop         Interface
    0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
    1.1.1.1/32         O_INTRA 10  2           10.1.23.2       GE0/0
    2.2.2.2/32         O_INTRA 10  1           10.1.23.2       GE0/0
    3.3.3.3/32         Direct  0   0           127.0.0.1       InLoop0
    4.4.4.4/32         O_INTER 10  3           10.1.23.2       GE0/0
    5.5.5.5/32         O_INTRA 10  1           10.1.35.5       GE0/1
    10.1.12.0/24       O_INTRA 10  2           10.1.23.2       GE0/0
    10.1.14.0/24       O_INTER 10  3           10.1.23.2       GE0/0
    10.1.23.0/24       Direct  0   0           10.1.23.3       GE0/0
    10.1.23.3/32       Direct  0   0           127.0.0.1       InLoop0
    10.1.23.255/32     Direct  0   0           10.1.23.3       GE0/0
    10.1.35.0/24       Direct  0   0           10.1.35.3       GE0/1
    10.1.35.3/32       Direct  0   0           127.0.0.1       InLoop0
    10.1.35.255/32     Direct  0   0           10.1.35.3       GE0/1
    127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
    127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
    127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
    224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
    224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
    255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
    
    [R4]dis ip routing-table Destinations : 18       Routes : 18Destination/Mask   Proto   Pre Cost        NextHop         Interface
    0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
    1.1.1.1/32         O_INTER 10  1           10.1.14.1       GE0/0
    2.2.2.2/32         O_INTER 10  2           10.1.14.1       GE0/0
    3.3.3.3/32         O_INTER 10  3           10.1.14.1       GE0/0
    4.4.4.4/32         Direct  0   0           127.0.0.1       InLoop0
    5.5.5.5/32         O_INTER 10  4           10.1.14.1       GE0/0
    10.1.12.0/24       O_INTER 10  2           10.1.14.1       GE0/0
    10.1.14.0/24       Direct  0   0           10.1.14.4       GE0/0
    10.1.14.4/32       Direct  0   0           127.0.0.1       InLoop0
    10.1.14.255/32     Direct  0   0           10.1.14.4       GE0/0
    10.1.23.0/24       O_INTER 10  3           10.1.14.1       GE0/0
    10.1.35.0/24       O_INTER 10  4           10.1.14.1       GE0/0
    127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
    127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
    127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
    224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
    224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
    255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
    
    [R5]dis ip routing-table Destinations : 18       Routes : 18Destination/Mask   Proto   Pre Cost        NextHop         Interface
    0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
    1.1.1.1/32         O_INTER 10  3           10.1.35.3       GE0/0
    2.2.2.2/32         O_INTER 10  2           10.1.35.3       GE0/0
    3.3.3.3/32         O_INTER 10  1           10.1.35.3       GE0/0
    4.4.4.4/32         O_INTER 10  4           10.1.35.3       GE0/0
    5.5.5.5/32         Direct  0   0           127.0.0.1       InLoop0
    10.1.12.0/24       O_INTER 10  3           10.1.35.3       GE0/0
    10.1.14.0/24       O_INTER 10  4           10.1.35.3       GE0/0
    10.1.23.0/24       O_INTER 10  2           10.1.35.3       GE0/0
    10.1.35.0/24       Direct  0   0           10.1.35.5       GE0/0
    10.1.35.5/32       Direct  0   0           127.0.0.1       InLoop0
    10.1.35.255/32     Direct  0   0           10.1.35.5       GE0/0
    127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
    127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
    127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
    224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
    224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
    255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
    
  5. 在PC_4上 ping PC_5

    [R4]ping 5.5.5.5
    Ping 5.5.5.5 (5.5.5.5): 56 data bytes, press CTRL+C to break
    56 bytes from 5.5.5.5: icmp_seq=0 ttl=252 time=2.119 ms
    56 bytes from 5.5.5.5: icmp_seq=1 ttl=252 time=2.179 ms
    56 bytes from 5.5.5.5: icmp_seq=2 ttl=252 time=1.936 ms
    56 bytes from 5.5.5.5: icmp_seq=3 ttl=252 time=1.791 ms
    56 bytes from 5.5.5.5: icmp_seq=4 ttl=252 time=2.031 ms--- Ping statistics for 5.5.5.5 ---
    5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
    round-trip min/avg/max/std-dev = 1.791/2.011/2.179/0.137 ms
    [R4]%Jul  9 20:22:33:614 2025 R4 PING/6/PING_STATISTICS: Ping statistics for 5.5.5.5: 5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 1.791/2.011/2.179/0.137 ms.
    
http://www.lryc.cn/news/584026.html

相关文章:

  • 栈题解——有效的括号【LeetCode】两种方法
  • ACL协议:核心概念与配置要点解析
  • LlamaFactory Demo
  • 强缓存和协商缓存详解
  • SQL进阶:自连接的用法
  • 深度探索:实时交互与增强现实翻译技术(第六篇)
  • 【郑大二年级信安小学期】Day9:XSS跨站攻击XSS绕过CSRF漏洞SSRF漏洞
  • 医院多部门协同构建知识库-指南库-预测模型三维网络路径研究
  • 【C++】第十四节—模版进阶(非类型模版参数+模板的特化+模版分离编译+模版总结)
  • OSPF实验以及核心原理全解
  • vue引入应用通义AI大模型-(一)前期准备整理思路
  • Vue+Element Plus 中按回车刷新页面问题排查与解决
  • Scala实现网页数据采集示例
  • AI 智能体:开启自动化协作新时代
  • 2025.07.09华为机考真题解析-第三题300分
  • CentOs 7 MySql8.0.23之前的版本主从复制
  • 树莓派5+Ubuntu24.04 LTS ROS2 N10P镭神激光雷达 保姆级教程
  • ubuntu server配置静态IP
  • java(2025/7/10)
  • 【LeetCode 热题 100】19. 删除链表的倒数第 N 个结点——双指针+哨兵
  • 如何把Arduino IDE中ESP32程序bin文件通过乐鑫flsah_download_tool工具软件下载到ESP32中
  • 【音视频】HTTP协议介绍
  • 文心大模型4.5开源测评:保姆级部署教程+多维度测试验证
  • day11-微服务面试篇
  • 20.4 量子安全加密算法
  • k8s集群中控制节点处于NotReady,怎么办?
  • 32多串300A保护板测试仪:新能源电池安全的核心守护者
  • RFID 系统在医疗行业的深度应用:从安全溯源到效率革命
  • 【K8S】Kubernetes 使用 Ingress-Nginx 基于 Cookie 实现会话保持的负载均衡
  • 突破传统局限:60G 3D毫米波雷达如何实现精准人体全状态检测?