一、RIP协议的不足与OSPF的引入
网络规模限制 RIP最大跳数限制为15跳,超过即视为不可达,导致大型网络无法扩展。 示例:若数据需经16台路由器中转,RIP直接判定目标网络不可达
资源消耗问题
- 定期全路由表更新:每30秒广播整个路由表,占用带宽。 计算示例:1000条路由 × 20字节/条 × 2台设备 = 单向消耗160Kb带宽/次
- 慢收敛:路由失效需180秒(失效计时器) + 60秒(清除计时器)才能更新,易形成环路
- 定期全路由表更新:每30秒广播整个路由表,占用带宽。 计算示例:1000条路由 × 20字节/条 × 2台设备 = 单向消耗160Kb带宽/次
路由选择不智能 仅依据跳数,忽略实际链路质量。 场景对比:
- RIP:选跳数少(1跳)但带宽低(10Mbps)的路径;
- OSPF:选跳数多(2跳)但带宽高(1000Mbps)的路径,因开销更低
(Cost=100/1000≈0.1)
二、基本概念与工作原理
基本工作过程:先通过Hello报文发现邻居,把自己的直连拓扑信息打包成链路状态通过LSA存放到自己的链路状态数据库里,然后同一个区域同步链路状态数据库,然后所有路由器以自己为根,计算去往所有网段的路由
- Router ID:唯一标识路由器,优先选择Loopback接口最大IP,次选物理接口最大IP
。 示例:若路由器有192.168.1.1/24
(GE0/0)和192.168.2.1/24
(GE0/1),Router ID为192.168.2.1
。 - 链路状态(LS)与LSA:
- LS:描述直连网段(网段+掩码+开销)及邻居(Router ID+接口开销)
- LSA类型:
- LSA 1:路由器LSA,描述自身直连拓扑(每台路由器产生)。
- LSA 2:网络LSA,由DR描述广播型网络中的设备列表
- LS:描述直连网段(网段+掩码+开销)及邻居(Router ID+接口开销)
- LSDB与SPF计算:
- 每台OSPF路由器都有一个LSDB,用于存储LSA。
- 同一区域内所有路由器LSDB一致,通过洪泛(Flooding)同步LSA
- LSA在洪泛过程中内容保持不变。
- 各路由器独立以自身为根运行SPF算法,生成最短路径树,计算路由表
- 各OSPF路由器单独进行SPF计算,互不影响。
2. 开销(Cost)计算
- 公式:
Cost = 参考带宽 / 接口带宽
,默认参考带宽100Mbps 出接口开销之和 - 实例:
- 以太网(100Mbps):
100/100 = 1
- 串行链路(2Mbps):
100/2 = 50
- 计算端到端开销时累加路径值(如R1→R2→R3:
10+10=20
) - 注:现代网络需调整参考带宽(如设为1000Mbps)避免高速链路cost均为1
- 以太网(100Mbps):
3. OSPF报文类型与封装
4. 邻居建立与DR/BDR选举
- 邻居状态机:
Down → Init → 2-Way → ExStart → Exchange → Loading → Full
关键点:-
2-Way
状态确认双向通信,广播网络需选举DR/BDR。Exchange
阶段同步LSDB摘要,Loading
阶段请求缺失LSA。
-
- DR/BDR选举规则:
- 优先级最高者为DR,次高为BDR(默认优先级1,范围0-255)。
- 优先级相同则比较Router ID(大者优先)。
- 稳定性原则:已选举的DR/BDR不因新加入的高优先级路由器替换
。 示例:若网络中有RID为3.3.3.3
的路由器加入,原有DR(1.1.1.1
)和BDR(2.2.2.2
)保持不变。
三、OSPF区域划分与设计
1. 区域类型及作用
区域类型 | 允许的LSA | 特点 |
---|---|---|
骨干区域 (Area 0) | 所有LSA | 必选核心,连通所有非骨干区域 |
末梢区域 (Stub) | 屏蔽LSA 5/7(外部路由) | 由ABR下发默认路由替代外部路由 |
完全末梢 (Totally Stub) | 仅LSA 1/2 + 默认路由 | 进一步屏蔽LSA 3(区域间路由) |
NSSA | 允许生成LSA 7(本地外部路由) | 适用于需引入外部路由但不想接收外部LSA的边缘区域 |
2. 虚链路(Virtual Link)
应用场景:非骨干区域未直连Area 0时,通过虚链路跨越中间区域连接骨干区域。 配置示例:
RTC(config-router)# area 2 vlink-peer 5.5.5.5 // RTC与RTE建立虚链路
四、单区域OSPF配置实践
1. 基础配置命令
RTA(config)# router ospf 1 // 启动OSPF进程 RTA(config-router)# router-id 1.1.1.1 // 手动指定RID RTA(config-router)# network 192.168.1.0 0.0.0.255 area 0 // 宣告网段 RTA(config-router)# passive-interface Gig0/0 // 禁止该接口发Hello包
注意:
network
命令使用反掩码(如0.0.0.255
匹配192.168.1.x
网段)。- 被动接口仍生成LSA,但不建立邻居
2. 典型拓扑与验证
验证命令:
show ip ospf neighbor // 查看邻居状态 show ip ospf database // 检查LSDB一致性 show ip route ospf // 查看OSPF路由表
结果:所有路由器应学到全网路由(如RTA看到10.1.35.0/24
via RTC)
五、关键对比与总结
RIP vs OSPF核心差异
特性 | RIP | OSPF |
---|---|---|
算法 | 距离矢量(跳数) | 链路状态(SPF树 + 带宽开销) |
收敛速度 | 慢(分钟级) | 快(秒级) |
资源消耗 | 高(定期全表广播) | 低(触发更新 + 增量LSA) |
防环机制 | 水平分割/毒性逆转 | 算法天然防环 |
适用规模 | ≤15跳的小型网络 | 大型企业/运营商网络 |
附:复杂概念简释
LSA洪泛与老化
- 洪泛:新LSA通过LSU报文扩散至全网,邻居用LSAck确认。
- 老化:LSA默认存活3600秒,超时前半小时间隔(1800秒)主动刷新
DR/BDR选举规则
- 优先级:数值高者胜(默认1,0表示不参与)。
- RID:优先级相同时,RID大者胜。 关键原则:已选举的DR/BDR不因新加入的高优先级路由器而替换