文章目录
-
- [第一部分:OSPF基础 ------ 告别静态,拥抱动态](#第一部分:OSPF基础 —— 告别静态,拥抱动态)
-
- [1. 先搞懂RIP:动态路由的"入门款"(为何会有局限?)](#1. 先搞懂RIP:动态路由的“入门款”(为何会有局限?))
- [1.1 RIP的核心定义与工作原理](#1.1 RIP的核心定义与工作原理)
- [1.2 RIP的致命痛点](#1.2 RIP的致命痛点)
- [2. 为何需要OSPF?------ 解决RIP的所有痛点](#2. 为何需要OSPF?—— 解决RIP的所有痛点)
- [2.1 静态路由+RIP的共同痛点](#2.1 静态路由+RIP的共同痛点)
- [2.2 OSPF的核心定位与优势(对比RIP)](#2.2 OSPF的核心定位与优势(对比RIP))
- [2.3 OSPF的"链路状态"核心原理(实验可验证)](#2.3 OSPF的“链路状态”核心原理(实验可验证))
- [3. OSPF的核心概念("OSPF如何思考?")](#3. OSPF的核心概念(“OSPF如何思考?”))
- 第二部分:OSPF邻居与邻接("如何交朋友?")
-
- [1. "邻居 (Neighbor)" vs "邻接 (Adjacency)"](#1. “邻居 (Neighbor)” vs “邻接 (Adjacency)”)
- [2. OSPF的7种状态机](#2. OSPF的7种状态机)
- [3. Hello包:规则与"心跳"](#3. Hello包:规则与“心跳”)
- [第三部分:基础配置 ------ 单区域OSPF (Area 0)](#第三部分:基础配置 —— 单区域OSPF (Area 0))
-
- [1. 配置场景](#1. 配置场景)
- [2. VRP配置步骤 (以R1为例)](#2. VRP配置步骤 (以R1为例))
- [3. 验证命令](#3. 验证命令)
- 第四部分:OSPF网络类型与DR/BDR("如何选班长?")
-
- [1. OSPF网络类型](#1. OSPF网络类型)
- [2. DR / BDR (指定路由器 / 备用指定路由器)](#2. DR / BDR (指定路由器 / 备用指定路由器))
- [3. 配置与干预](#3. 配置与干预)
- [第五部分:进阶配置 ------ 多区域OSPF](#第五部分:进阶配置 —— 多区域OSPF)
-
- [1. 为什么需要多区域?](#1. 为什么需要多区域?)
- [2. OSPF路由器角色](#2. OSPF路由器角色)
- [3. LSA类型 (最简核心版)](#3. LSA类型 (最简核心版))
- [4. 配置与验证](#4. 配置与验证)
- 第六部分:高级应用与路由控制
-
- [1. Cost (开销)](#1. Cost (开销))
- [2. 路由汇总](#2. 路由汇总)
- [3. 特殊区域 (Stub / Totally Stubby)](#3. 特殊区域 (Stub / Totally Stubby))
- [4. 默认路由下发](#4. 默认路由下发)
- 第七部分:OSPF排错
- 第八部分:eNSP综合实验(理论到实践)
-
- [1. 实验拓扑与IP规划](#1. 实验拓扑与IP规划)
- [2. 实验步骤与验证点](#2. 实验步骤与验证点)
欢迎来到动态路由的世界。如果你已经掌握了静态路由,那么你就理解了"路由"的本质。但你一定也体会到了静态路由的"痛":
-
配置量大: 网络中有100个网段,你就可能需要手动写几百上千条路由。
-
无法自愈: 一条链路中断,静态路由不会自动消失,流量会掉进"黑洞",需要管理员半夜起床 手动修改配置。
- 路由器的静态路由有两个核心特性,导致其无法感知链路状态:
- 无 "状态检测" 机制:静态路由不依赖任何协议来检测链路连通性,路由器不会主动发送报文去验证 "下一跳是否还活着"------ 它只执行配置,不做任何额外判断。
- 优先级最高(管理距离最小):静态路由的默认管理距离是 1(Cisco 设备),比动态路由协议(RIP:120,OSPF:110)的优先级都高。哪怕动态路由协议已经检测到链路断了,路由器依然会优先选择静态路由转发流量(除非手动删除静态路由)。
而OSPF(开放最短路径优先)就是来解决这些问题的。它是一种"链路状态(Link-State)"协议。
第一部分:OSPF基础 ------ 告别静态,拥抱动态
1. 先搞懂RIP:动态路由的"入门款"(为何会有局限?)
在OSPF出现前,RIP是中小型网络中最常用的动态路由协议,其设计核心是"简单易用",但也因架构限制存在明显短板。
1.1 RIP的核心定义与工作原理
- 全称 :Routing Information Protocol(路由信息协议),属于内部网关协议(IGP),适用于自治系统(AS)内部的路由传递。
- 协议版本:主流为RIPv2(支持VLSM、认证,无类别路由),RIPv1已基本淘汰(有类别路由,不支持VLSM)。
- 核心机制 :距离矢量(Distance-Vector)
- 距离:以"跳数(Hop Count)"为度量值,1跳=经过1台路由器,直连网络跳数=0,最大跳数=15(跳数16视为"不可达")。
- 矢量:路由更新时,仅传递"目标网络+下一跳路由器"的方向信息,不传递完整拓扑。
- 更新方式 :
- RIPv1:广播更新(目标IP 255.255.255.255),每隔30秒发送一次完整路由表。
- RIPv2:组播更新(目标IP 224.0.0.9),减少网络带宽占用。
- "传闻路由"的本质 :路由器只从直接相邻的路由器获取路由信息,不验证链路真实性(比如R2只相信R1说"能到10.1.1.0/24",却不知道R1到该网段的链路是否真的可用),因此容易产生路由环路(需通过水平分割、毒性逆转、触发更新等机制缓解)。
1.2 RIP的致命痛点
RIP的设计定位是"小型网络动态路由",但在中大型网络中会暴露严重问题,这也是OSPF诞生的核心原因:
| 痛点 | 具体表现(实验场景举例) |
|---|---|
| 跳数限制(≤15) | 若网络中有16台路由器串联,最末端的路由器会将目标网络标记为"不可达" |
| 收敛速度慢 | 网络拓扑变化(如链路中断)后,RIP需等待"更新周期(30秒)+ 失效时间(180秒)+ 刷新时间(240秒)"才能删除无效路由,期间可能出现"路由黑洞" |
| 度量值单一 | 仅以"跳数"判断最优路径,不考虑链路带宽、延迟等实际性能 |
| 路由环路风险 | 无环路防护机制时,可能出现"数据包在两台路由器间无限转发" |
| 带宽占用高 | RIPv1的广播更新+完整路由表发送,在大型网络中会占用大量带宽 |
2. 为何需要OSPF?------ 解决RIP的所有痛点
当网络规模扩大(如企业分支增多、跨区域组网)、对路由可靠性和收敛速度要求提高时,RIP的局限性完全无法满足需求,OSPF(开放式最短路径优先)应运而生。
2.1 静态路由+RIP的共同痛点
- 静态路由:手动配置、无动态适配能力(拓扑变化后需人工修改),大型网络维护成本极高;
- RIP:跳数限制、收敛慢、度量值单一、环路风险,无法支撑中大型网络。
2.2 OSPF的核心定位与优势(对比RIP)
| 特性 | RIP(距离矢量-传闻) | OSPF(链路状态-地图) |
|---|---|---|
| 核心逻辑 | 路由器之间"互相打听路",只知道"下一跳和跳数",不知道整体拓扑(像听传闻)。 | 路由器之间"共享地图碎片",每台路由器都能拼凑出完整的网络拓扑图(LSDB),自主计算最优路径(像看地图找路)。 |
| 度量值 | 单一跳数(不考虑链路质量) | 链路开销(Cost),可基于带宽自动计算(如100M链路Cost=1,10M链路Cost=10),也可手动配置。 |
| 收敛速度 | 慢(分钟级),依赖周期性更新 | 快(秒级),触发式更新(仅拓扑变化时发送增量更新,不发送完整路由表)。 |
| 适用规模 | 小型网络(≤15跳) | 中大型网络(无跳数限制,支持数千台路由器) |
| 路由环路 | 易产生,需额外机制缓解 | 无环路(基于最短路径树SPF算法计算路由,拓扑图无环路则路由无环路) |
| 网络带宽占用 | 高(周期性广播/组播完整路由表) | 低(仅初始同步时发送完整LSA,后续仅发送增量更新) |
2.3 OSPF的"链路状态"核心原理(实验可验证)
- LSA(Link-State Advertisement,链路状态通告):每台路由器都会生成LSA,描述自身的直连网络、邻居关系、链路开销等信息(相当于"地图碎片")。
- LSDB(Link-State Database,链路状态数据库):所有路由器通过洪泛(Flooding)机制交换LSA,最终每台路由器的LSDB完全一致(相当于"所有人拿到相同的完整地图")。
- SPF(Shortest Path First)算法:每台路由器基于LSDB,使用Dijkstra算法计算出以自身为根的"最短路径树",再将最短路径转化为路由条目写入路由表。
实验验证点 :在任意路由器上执行show ip ospf database,可看到所有路由器的LSA信息(LSDB一致);执行show ip route ospf,可看到基于SPF算法计算出的最优路由。
3. OSPF的核心概念("OSPF如何思考?")
要理解OSPF,你必须先理解它的"语言":
- Router ID (RID): 路由器在OSPF世界中的"身份证号 "。
- 它是一个32位的点分十进制数(例如
1.1.1.1),在整个OSPF网络中必须唯一。 - 选举规则 (必讲):
- 手动配置:
router-id 1.1.1.1(强烈推荐!最稳定!) - 自动选举(若未手动): 选举所有Loopback(环回) 接口中,IP地址数值最大的那个。
- 自动选举(若无Loopback): 选举所有物理 接口中,IP地址数值最大 的那个(要求接口
Up)。
- 手动配置:
- 为什么重要? RID是SPF算法计算的基础,也是DR/BDR选举的依据。
- 它是一个32位的点分十进制数(例如
- Area(区域): OSPF实现可扩展性的核心。
- 想象一下,一个国家的地图太大了,一个人计算任意两点间的最短路径会非常慢。
- 解决方案: 把国家划分为"省"(Area)。你(省内路由器)只需要精通"本省地图"(本区域LSDB),对于"外省"地址,你只需要知道"如何去往省会(ABR)"就行了。
- Area 0(骨干区域): "中央核心/高速公路网 "。这是OSPF的心脏。所有其他区域(Area 1, Area 2...)都必须直接连接到Area 0。任何"跨省"流量都必须经由Area 0中转。
- LSA(链路状态通告): "地图碎片 "。
- 这是OSPF信息的基本单元。每台路由器都会产生LSA来描述自己。
- "我是R1,我的RID是1.1.1.1,我有一个邻居R2,我连着
192.168.1.0/24网段,开销(Cost)是10。" 这就是一份LSA。
- LSDB(链路状态数据库): "完整的拓扑地图 "。
- 路由器将收集到的所有LSA(地图碎片)存储在LSDB中。
- 在同一个区域 内,所有路由器的LSDB必须完全一致。
- SPF算法(Dijkstra,最短路径): "GPS导航算法 "。
- 这是OSPF的"大脑"。
- 一旦LSDB(地图)构建完成,OSPF就会运行SPF算法(也叫Dijkstra算法),以自己为根(树根) ,计算出到达LSDB中所有 目的地的"最短路径树"。
- 计算出的结果(最优路径)将被安装到路由表中。
第二部分:OSPF邻居与邻接("如何交朋友?")
我们在第一部分了解了OSPF的"核心概念",比如路由器需要交换LSA(地图碎片)来构建LSDB(完整地图)。但路由器不会和"陌生人"随意交换地图。它们必须先建立一个"信任关系",这个"交朋友"的过程非常严谨,有七个步骤,这就是OSPF邻居状态机。
1. "邻居 (Neighbor)" vs "邻接 (Adjacency)"
- 邻居 (Neighbor - 2-Way状态): "你好,我也看到你了"。双方通过Hello包互相认识。这就像在走廊里打了个招呼,但还不是朋友。
- 邻接 (Adjacency - Full状态): "我们已经是好朋友了"。双方交换 了完整的LSDB(地图),关系达到"Full"状态。只有邻接关系的路由器才会交换LSA。
2. OSPF的7种状态机
OSPF建立关系的过程非常"严谨",分步骤:
- Down: "失联"状态,啥也不知道。
- Init (初始化): "我收到你的Hello了"。我(R1)收到了R2的Hello包,但我还没在R2的包里看到我自己的RID(说明R2还没认识我)。
- 2-Way (双向): "我们互相认识了"。我(R1)在R2的Hello包里看到了我自己的RID。"邻居"关系(Neighbor)在此达成 。
- (在广播网络上,此时开始选举DR/BDR,第四部分详述)
- ExStart (交换初始): "我们开始交换地图吧"。准备交换LSDB。 通过交换 Database Description(DD)包,决定谁是"从"(Slave)。RID大的当Master。
- Exchange (交换): "这是我的地图摘要"。双方互相发送DD包,告诉对方自己LSDB里"有哪些LSA"(只发摘要,不发详情)。
- Loading (加载): "你摘要里的LSA-X我没有,发我一份"。路由器根据收到的DD摘要,发现自己缺少某些LSA,于是发送LSR(链路状态请求)索要。对方用LSU(链路状态更新)回应。
- Full (全毗邻): "我们的地图完全同步了"。"邻接"关系(Adjacency)在此达成。
3. Hello包:规则与"心跳"
Hello包是OSPF的"心跳",它用于发现、建立和维持邻居关系。
- Hello/Dead 计时器:
- Hello Time: 每隔多久发一次Hello?默认 10 秒 (广播/P2P网络)。
- Dead Time: 如果我多久 没收到你的Hello,就当你"死"了?默认是Hello的4倍,即 40 秒。
- 建立邻居的"规则" (必讲):
两台路由器要想成为邻居,它们的Hello包中,以下参数必须 完全一致,否则"谈不拢":- Area ID: 必须在同一个区域。
- Hello/Dead 计时器: 必须一致。
- 认证: 如果配置了密码,类型和密码必须一致。
- 子网掩码: (在广播网络中)双方的IP必须在同一个子网。
- Stub区域标记: (第五部分会讲)
第三部分:基础配置 ------ 单区域OSPF (Area 0)
理论结束!我们现在知道了OSPF的"语言"(概念)和"交友规则"(状态机)。是时候把理论付诸实践了。我们从最简单的场景开始:一个单区域的Area 0网络。注意看我们是如何"宣告"网络,以及"反掩码"是如何工作的。
1. 配置场景
三台路由器R1, R2, R3,所有接口都连在 Area 0。
2. VRP配置步骤 (以R1为例)
[R1] system-view
# 1. (可选但强烈推荐) 配置Loopback接口,用于Router-ID
[R1] interface LoopBack 0
[R1-LoopBack0] ip address 1.1.1.1 32
# 2. 启动OSPF进程 (1是进程ID,只在本地有意义)
[R1] ospf 1 router-id 1.1.1.1
# 强烈建议手动配置router-id,防止因接口IP变化导致RID改变,引发全网OSPF重新计算!
# 3. 进入区域0
[R1-ospf-1] area 0
# 4. 宣告(Network)哪些接口运行OSPF
[R1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0
# 宣告R1的G0/0/0接口 (192.168.1.0/24网段)
# 宣告R1的Loopback0接口 (1.1.1.1/32网段)
重点:什么是"反掩码 (Wildcard-Mask)"? network 命令后面的 0.0.0.255 不是子网掩码,而是反掩码。
- 规则:
0表示"必须匹配 ",1表示"不用关心"。 - 计算: 通常是
255.255.255.255减去子网掩码。192.168.1.0/24(掩码255.255.255.0)- 反掩码 =
255.255.255.255-255.255.255.0=0.0.0.255 network 192.168.1.0 0.0.0.255含义:"只要一个接口的IP,前3个八位字节是192.168.1,就在它上面跑OSPF。"
- 精确匹配:
1.1.1.1/32(掩码255.255.255.255)- 反掩码 =
255.255.255.255-255.255.255.255=0.0.0.0 network 1.1.1.1 0.0.0.0含义:"只在1.1.1.1这个IP上跑OSPF。"
3. 验证命令
(在R2, R3完成类似配置后)
# 1. 验证邻居/邻接关系
<R1> display ospf peer
# 检查State是否为 Full
<R1> display ospf peer brief
# 查看邻居摘要
# 2. 验证学到的路由
<R1> display ip routing-table protocol ospf
# 查看路由表里,所有通过OSPF学来的路由
# 注意:路由类型是 OSPF,Preference (优先级) 默认是 10
# (这比静态路由的60要高,所以OSPF路由会优先被使用)
第四部分:OSPF网络类型与DR/BDR("如何选班长?")
我们在第三部分完成了基础配置。但这个看似简单的配置隐藏着一个"陷阱"或者说"OSPF的智能之处"。当你在以太网(如eNSP的交换机)上配置OSPF时,你等于创建了一个"广播"网络。如果这个网络上有10台路由器,它们之间会发生什么?为了解决这个"N平方问题",OSPF引入了"班长选举"机制,即DR/BDR。
1. OSPF网络类型
- Broadcast (广播,如以太网/eNSP的Ethernet): 这是默认类型。必须选举DR/BDR。
- P2P (点对点,如PPP/HDLC/eNSP的Serial): 默认类型。不选举DR/BDR(因为只有两个点,没必要选班长)。
2. DR / BDR (指定路由器 / 备用指定路由器)
-
为什么需要选举? (必讲)
假设一个交换机(广播网络)连接了10台路由器。如果没有DR/BDR,每台路由器都要和另外9台建立"邻接"关系(Full)。- 总共需要
N * (N-1) / 2=10 * 9 / 2= 45 对邻接关系。 - 任何一台路由器的LSA变化,都会导致45次更新,LSA泛滥,这就是"N平方问题"。
- 总共需要
-
DR如何工作:
- 在这个广播网络中,选举一个"班长 (DR) "和一个"副班长 (BDR)"。
- 所有"普通学生 (DROther) "只和DR、BDR建立
Full邻接关系。 - DROther之间只保持
2-Way(邻居)关系。
- 效果: 10台路由器的网络,邻接关系从45对锐减到
9(DR) + 8(BDR)对左右(取决于DR/BDR是谁)。 - LSA泛洪: DROther只把LSA发给DR (IP
224.0.0.6),DR再"转播"给所有人 (IP224.0.0.5)。
-
选举规则 (必讲):
- 比较OSPF接口优先级 (Priority) :
0到255,默认1。数字越大越优。 - 如果优先级相同,比较Router ID (RID) 。RID越大越优。
- 注意:DR选举是非抢占的。一旦选出,即使有更高优先级的路由器加入,也不会重新选举,除非DR"挂了"。
- 比较OSPF接口优先级 (Priority) :
3. 配置与干预
# 1. 修改接口的OSPF优先级
[R1-GigabitEthernet0/0/0] ospf dr-priority 100
# 把R1的优先级调高,让它"当选"DR
# 2. 0的妙用:不想参与选举
[R2-GigabitEthernet0/0/0] ospf dr-priority 0
# 优先级设为0,表示"我弃权",R2永远不会成为DR或BDR。
# 3. 验证
<R1> display ospf interface GigabitEthernet0/0/0
# 查看该接口的状态、Cost值、以及它在本网段的角色 (DR/BDR/DROther)
第五部分:进阶配置 ------ 多区域OSPF
到目前为止,我们所有的路由器都在Area 0。这是一个"单省"模型。当网络规模扩大时,这一个"省"(Area 0)的地图(LSDB)会变得无比庞大,任何一点风吹草动都会导致全省计算(SPF),CPU会不堪重负。因此,OSPF设计的精髓------"多区域"------登场了。
1. 为什么需要多区域?
- 可扩展性: 当
Area 0过大时,LSDB(地图)变得极其庞大,SPF(导航)计算缓慢,网络不稳定(一次抖动,全区计算)。 - 多区域的好处: 缩小LSDB范围、加速SPF计算、实现故障隔离。
2. OSPF路由器角色
- ABR (Area Border Router, 区域边界路由器): "翻译官 "。
- 它同时 连接
Area 0和其他区域(如Area 1)。 - 它的"大脑"里有多份LSDB(Area 0的 和 Area 1的)。
- 它负责将Area 1的LSA"总结 "一下,然后"翻译"成LSA-3,通告给Area 0(反之亦然)。
- 它同时 连接
- ASBR (Autonomous System Boundary Router, 自治系统边界路由器): "外交官 "。
- 它负责将OSPF网络(AS)与"外部网络"(如静态路由、RIP、BGP、Internet)连接起来。
- 它的核心动作叫"重分布(Import / Redistribute)",即把外部路由"引入"到OSPF网络中。
3. LSA类型 (最简核心版)
LSA是OSPF的灵魂,在多区域环境中,你必须理解LSA的类型:
- LSA-1 (Router LSA): "我是谁,我在本区域 有哪些链路/邻居"。(区域内传播)
- LSA-2 (Network LSA): "我是DR,在本区域 的广播网络上,有哪些同学"。(区域内传播)
- LSA-3 (Summary LSA): "我是ABR(翻译官),我来总结 一下,另一个区域 有哪些网段"。(区域间传播)
- LSA-5 (External LSA): "我是ASBR(外交官),我告诉大家,如何去往OSPF外部 的网段(如5.5.5.5)"。(全网传播)
4. 配置与验证
- 演示: 如何配置一台ABR(R3),它一半接口在
Area 0,一半接口在Area 1。 - 验证:
display ospf lsdb:查看链路状态数据库,是分析LSA的核心命令。- 路由表中的体现:
OSPF(LSA-1/2):区域内路由,优先级10。O_INTER(LSA-3):区域间路由("I"nter-Area),优先级10。O_ASE(LSA-5):外部路由("A"S "E"xternal),优先级150 (默认)。
第六部分:高级应用与路由控制
我们已经掌握了OSPF的"宏观设计"(多区域)和"中观设计"(DR/BDR)。现在,我们要深入到"微观调优"的层面。网络通了,但并不代表它"好"。我们如何干预OSPF的选路(Cost)?如何精简不同区域的路由表(汇总)?如何为分支机构创建"特殊区域"?
1. Cost (开销)
-
OSPF的Metric。OSPF会选择总Cost最低的路径。
-
Cost = 参考带宽 / 接口带宽 (华为默认参考带宽
100 Mbps)100M接口 (百兆) = Cost 11000M接口 (千兆) = Cost 1 (因为默认参考带宽太低了,导致千兆和百兆没区别)- 最佳实践:
[R1-ospf-1] bandwidth-reference 10000(把参考带宽改成10G,才能区分G口和100M口)
-
手动干预选路:
[R1-GigabitEthernet0/0/0] ospf cost 50 # 强行把这条路的Cost改高,让OSPF"不走"这条路
2. 路由汇总
-
ABR汇总 (区域间): 在ABR上,把Area 1的100条LSA-3,汇总成1条再发给Area 0。
[R-ABR-ospf-1-area-1] abr-summary 192.168.0.0 255.255.252.0 # 把Area 1中所有 192.168.0.x, 1.x, 2.x, 3.x 的路由,汇总成 192.168.0.0/22 -
ASBR汇总 (外部): 在ASBR上,把引入的1000条外部路由(LSA-5),汇总成1条。
[R-ASBR-ospf-1] asbr-summary 10.1.0.0 255.255.0.0
3. 特殊区域 (Stub / Totally Stubby)
- 场景: Area 1 是一个"末梢"分支机构,它只有一个出口(ABR)。
- Stub (末梢区域): "我们是分支,不关心Internet怎么走(LSA-5)"。
- 配置:在ABR和Area 1所有路由器上配置
[R-ospf-1-area-1] stub。 - 效果:ABR会拦截 所有LSA-5,不再 发往Area 1,同时自动 下发一条LSA-3的默认路由。
- 配置:在ABR和Area 1所有路由器上配置
- Totally Stubby (完全末梢区域): "我们更懒,连其他区域的路由(LSA-3)也不关心"。
- 配置:在ABR上配置
[R-ospf-1-area-1] stub no-summary。 - 效果:ABR会拦截所有LSA-3和LSA-5,只下发一条LSA-3默认路由。
- 作用: Area 1的路由表被精简到极致,只有区域内路由+一条默认路由。
- 配置:在ABR上配置
4. 默认路由下发
-
场景: ASBR(R1)连接到Internet,R1希望告诉OSPF全网:"我是出口,上网找我"。
-
命令:
[R1-ospf-1] default-route-advertise always # "always"表示不管R1自己有没默认路由,都强制下发。 # (更安全的做法是 `default-route-advertise` 不带always,前提是R1自己得有默认路由) -
效果: R1会产生一条 LSA-5,内容是
0.0.0.0/0,泛洪到全网。
第七部分:OSPF排错
欢迎来到HCIE的"日常生活"------排错。我们已经学会了如何构建OSPF网络,但现实是网络总会出故障。排错的思路就是"逆向"检查我们学过的知识点:邻居起不来?查Hello规则。路由学不到?查LSA、查策略。
场景1:邻居建立失败 (卡在 Init / 2-Way)
- 排错思路: 邻居起不来,99%是"Hello规则"不匹配。
- 物理/IP:
ping对端接口IP,能通吗?(ping -a [my-ip] [peer-ip]) - OSPF基础参数:
display ospf error:查看OSPF错误统计。display current-configuration interface [name]:检查双方Area ID是否一致?display ospf interface [name]:检查Hello/Dead时间、子网掩码是否一致?
- MTU: 双方接口MTU是否不一致?(
display interface)
- 物理/IP:
场景2:路由缺失 (邻居 Full 但路由表没学到)
- 排错思路:
- LSDB:
display ospf lsdb(在ABR或ASBR上)。地图(LSDB)里有这条LSA吗?如果地图里都没有,说明LSA泛洪出了问题。 - 路由策略:
display current-configuration | include filter-policy。路由器上是否配置了filter-policy策略,把这条路由给"过滤"掉了? - 优先级:
display ip routing-table [ip-address] verbose。是不是有一条优先级更高(数字更小)的路由(如静态路由60,甚至OSPF区域内10)覆盖了这条路由(如外部150)?
- LSDB:
第八部分:eNSP综合实验(理论到实践)
至此,我们已经学完了OSPF的全部核心理论、配置和排错。但知识是零散的,必须通过一个综合实验才能把它们"串"起来。这最后一个实验,就是我们本次课程的"毕业作品 ",它将把前面七个部分的所有知识点融合在一起。请严格按照拓扑图和步骤操作,并重点观察验证命令,亲眼看到LSA-3、LSA-5和DR选举的真实发生。
目标: 在eNSP中搭建一个多区域OSPF网络,实践并验证本教程中80%的核心知识点。
1. 实验拓扑与IP规划
- 设备: 5台 AR2220 路由器 (R1-R5) + 2台 交换机 (SW1, SW2)
- 区域规划:
Area 0(骨干):R1, R2, R3Area 1:R3, R4外部:R5 (通过静态路由连接到R1)
- 拓扑连接:
- R1(G0/0/0), R2(G0/0/0) --- SW1 (模拟广播)
- R2(G0/0/1), R3(G0/0/0) --- (点对点链路)
- R3(G0/0/1), R4(G0/0/0) --- SW2 (模拟广播)
- R1(G0/0/1), R5(G0/0/0) --- (点对点链路,模拟外部)
- IP规划:
- R1 Loopback0:
1.1.1.1/32 - R2 Loopback0:
2.2.2.2/32 - R3 Loopback0:
3.3.3.3/32 - R4 Loopback0:
4.4.4.4/32 - R5 Loopback0:
5.5.5.5/32(模拟外部业务网段) - R1-R2 (SW1) 网段:
192.168.1.0/24(R1.1, R2.2) - R2-R3 链路:
10.1.23.0/30(R2.1, R3.2) - R3-R4 (SW2) 网段:
192.168.2.0/24(R3.3, R4.4) - R1-R5 (外部) 链路:
10.1.15.0/30(R1.1, R5.2)
- R1 Loopback0:
2. 实验步骤与验证点
步骤一:基础IP与Router-ID配置
- 任务: 配置所有接口IP (包括Loopback0)。不要配置任何路由。
- 任务: 在R1-R4上启动OSPF进程,并手动 配置
router-id(使用Loopback0的IP)。[R1] ospf 1 router-id 1.1.1.1- ... (R2, R3, R4同理)
步骤二:配置 Area 0 (R1, R2, R3)
- 任务: 在R1, R2, R3上宣告网段进入
Area 0。[R1-ospf-1] area 0[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] network 192.168.1.0 0.0.0.255- (R2, R3同理,宣告
Loopback0、192.168.1.0和10.1.23.0网段)
- 验证:
[R1] display ospf peer:查看R1和R2的邻居是否Full?[R1] display ospf interface G0/0/0:在R1和R2上查看 DR/BDR 选举结果。RID大的 (R2) 应该是DR,R1是BDR。[R3] display ip routing-table protocol ospf:R3是否学到了R1的Loopback (1.1.1.1/32)?
步骤三:干预DR选举
- 任务: 让R1成为Area 0的DR,让R2不参与选举。
- 操作:
[R1-GigabitEthernet0/0/0] ospf dr-priority 255[R2-GigabitEthernet0/0/0] ospf dr-priority 0
- 重置:
[R1] reset ospf process(在R1和R2上重置进程)。 - 验证:
display ospf interface G0/0/0:再次查看,DR是否变成了R1?R2的状态是否为DROther?
步骤四:配置 Area 1 (R3, R4) - 多区域
- 任务: R3是 ABR 。
[R3-ospf-1] area 1[R3-ospf-1-area-0.0.0.1] network 192.168.2.0 0.0.0.255(宣告R3连R4的接口)[R4-ospf-1] area 1[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] network 192.168.2.0 0.0.0.255
- 验证:
[R3] display ospf peer:R3与R4是否在Area 1中Full?[R3] display ospf lsdb:观察R3的LSDB,是否同时拥有Area 0和Area 1的数据库?[R4] display ip routing-table protocol ospf:R4(Area 1)是否学到了R1(Area 0)的路由(1.1.1.1)?注意路由类型是O_INTER(LSA-3)。[R1] display ip routing-table protocol ospf:R1(Area 0)是否也学到了R4(Area 1)的路由(4.4.4.4)?类型也是O_INTER。
步骤五:配置外部路由(ASBR)与默认路由
- 任务: R1是 ASBR。R5不跑OSPF。
- 操作1 (R1-R5连通):
[R1] ip route-static 5.5.5.5 32 10.1.15.2(R1配静态去R5)[R5] ip route-static 0.0.0.0 0 10.1.15.1(R5配默认回R1)- (此时在R1上
ping 5.5.5.5 -a 1.1.1.1应可通)
- 操作2 (引入外部):
[R1-ospf-1] import-route static(在OSPF中重分布这条静态路由)
- 操作3 (下发默认):
[R1-ospf-1] default-route-advertise always(让R1告诉所有人"我是出口")
- 验证:
[R4] display ip routing-table protocol ospf:- R4是否学到了
5.5.5.5这条路由?路由类型是O_ASE(LSA-5)。 - R4是否学到了一条
0.0.0.0/0的默认路由?类型也是O_ASE。
- R4是否学到了
[R4] display ospf lsdb:在R4上查看,是否能看到Type-3 LSA(来自ABR R3) 和Type-5 LSA(来自ASBR R1)?
步骤六:(可选)配置路由汇总
- 任务: 在ABR(R3)上,将Area 1的路由(
192.168.2.0/24和4.4.4.4/32)汇总成192.168.2.0/23(举例)再发给Area 0。 - 操作:
[R3-ospf-1-area-1] abr-summary 192.168.2.0 255.255.254.0 - 验证: 在R1的路由表(
display ip routing-table protocol ospf)中,原来4.4.4.4和192.168.2.0的明细路由消失,变为一条192.168.2.0/23的O_INTER路由。
课程总结:
恭喜,完成这个实验,你就真正掌握了OSPF的精髓。你已经从一个"手动配置路由"的管理员,成长为能"设计和维护自愈网络"的工程师了。