8. OSPF 动态路由协议

OSPF (Open Shortest Path First) 是一种链路状态路由协议,是网络中最常用的内部网关协议(IGP)之一。下面我将为您全面介绍 OSPF。

一、OSPF 基本概念

1. OSPF 特点

  • 链路状态协议:维护整个网络的拓扑图
  • 开放标准:RFC 2328定义,多厂商兼容
  • 快速收敛:使用SPF算法快速计算最短路径
  • 分层设计:支持区域(Area)划分
  • 无类路由:支持VLSM和CIDR
  • 高效更新:仅发送变化的部分(增量更新)
  • 认证支持:提供明文和MD5认证

二、OSPF与RIP的详细比较

OSPF (Open Shortest Path First) 和 RIP (Routing Information Protocol) 是两种常见的内部网关协议(IGP),但它们在设计理念和工作方式上有显著差异。以下是它们的详细对比:

1. 协议类型与算法

特性 OSPF RIP
协议类型 链路状态(Link-State)协议 距离矢量(Distance-Vector)协议
算法 Dijkstra的最短路径优先(SPF)算法 Bellman-Ford算法
标准 开放标准(RFC 2328) RIP v1(私有)、RIP v2(RFC 2453)

2. 度量标准与路径选择

特性 OSPF RIP
度量标准 成本(Cost),基于带宽(10^8/BW) 跳数(Hop count)
最大跳数 无限制 15跳(16跳视为不可达)
路径选择 考虑带宽、延迟等多种因素 仅基于跳数

3. 网络规模与收敛速度

特性 OSPF RIP
网络规模 适合大型网络(支持分层设计) 适合小型网络(跳数限制)
收敛速度 快速(秒级) 慢(分钟级),存在路由环路风险
更新方式 触发更新+定期(30分钟)更新 完全定期(30秒)更新

4. 网络设计与区域划分

特性 OSPF RIP
分层设计 支持区域划分(Area 0必须) 平面网络结构
VLSM支持 完全支持 RIPv1不支持,RIPv2支持
认证 支持明文和MD5认证 RIPv2支持明文认证

5. 资源消耗与实现复杂度

特性 OSPF RIP
CPU消耗 较高(SPF计算) 较低
内存消耗 较高(维护拓扑数据库) 较低
配置复杂度 较复杂 非常简单

6. 实际应用场景

特性 OSPF RIP
适用场景 大中型企业网络、ISP骨干网 小型网络、简单拓扑环境
现代应用 广泛使用 逐渐被淘汰,仅用于遗留系统

7. 路由信息处理

特性 OSPF RIP
路由信息 传递链路状态(LSA) 传递整个路由表
更新内容 仅发送变化的部分 发送完整路由表
外部路由 支持多种外部路由类型(Type 5/7 LSA) 简单重分布
逐渐被淘汰。

三、OSPF 区域设计

1. 区域类型

  • 骨干区域(Area 0): 必须存在,连接所有其他区域
  • 常规区域: 非骨干区域(Area 1, Area 2等)
  • 末节区域(Stub Area): 不接收外部路由
  • 完全末节区域(Totally Stubby Area): 只接收默认路由
  • NSSA (Not-So-Stubby Area): 允许有限的外部路由

2. 路由器角色

  • 内部路由器: 所有接口在同一区域
  • 区域边界路由器(ABR): 连接多个区域
  • 骨干路由器: 至少一个接口在Area 0
  • 自治系统边界路由器(ASBR): 连接OSPF域与其他路由域

四、OSPF 配置

1. 基本配置

Router(config)# router ospf <process-id>
Router(config-router)# network <network-address> <wildcard-mask> area <area-id>

示例:

Router(config)# router ospf 1
Router(config-router)# network 192.168.1.0 0.0.0.255 area 0
Router(config-router)# network 10.1.1.0 0.0.0.255 area 1

2. 配置OSPF认证

明文认证:

Router(config-if)# ip ospf authentication
Router(config-if)# ip ospf authentication-key <password>

五、OSPF Cost 计算详解

OSPF使用Cost(成本)作为路由选择的度量标准,Cost值越小路径越优。下面我将详细介绍OSPF Cost的计算方法和相关配置。

Cost的计算原理

1. 基本计算公式

OSPF接口的Cost值计算公式为:

Cost = Reference Bandwidth (参考带宽) / Interface Bandwidth (接口带宽)

2. 默认参考带宽

  • Cisco默认参考带宽为100 Mbps(10^8 bps)
  • 因此默认计算公式为:
    Cost = 10^8 / 接口带宽(bps)
    

3. 常见接口的默认Cost值

接口类型 带宽 默认Cost计算 (10^8/BW) 实际使用Cost
10M Ethernet 10 Mbps 10^7/10^8 = 1 10
Fast Ethernet 100 Mbps 10^8/10^8 = 1 1
Gigabit Ethernet 1 Gbps 10^8/10^9 = 0.1 1 (最小为1)

注意:OSPF Cost值必须为整数,小于1的值会被设为1

修改Cost的方法

直接设置接口Cost(接口配置)

Router(config-if)# ip ospf cost <1-65535>

示例(强制设置GigabitEthernet接口Cost为10):

Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip ospf cost 10

路径Cost的计算

OSPF计算到达目的地的总Cost是路径上所有出站接口Cost的总和。

示例拓扑:

R1--(Cost=10)-->R2--(Cost=5)-->R3--(Cost=8)-->目标网络

则R1到达目标网络的总Cost = 10 + 5 + 8 = 23

Cost调整的实际应用

1. 流量工程

通过调整Cost值可以影响流量路径:

# 使主路径优先
Interface GigabitEthernet0/0 (主链路)
 ip ospf cost 10

Interface GigabitEthernet0/1 (备份链路)
 ip ospf cost 50

image-nsgn.png