【华为HCIA路由交换认证指南】第六章 动态路由

文章目录

    • [第一部分: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. 无 "状态检测" 机制:静态路由不依赖任何协议来检测链路连通性,路由器不会主动发送报文去验证 "下一跳是否还活着"------ 它只执行配置,不做任何额外判断。
    2. 优先级最高(管理距离最小):静态路由的默认管理距离是 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的"链路状态"核心原理(实验可验证)

  1. LSA(Link-State Advertisement,链路状态通告):每台路由器都会生成LSA,描述自身的直连网络、邻居关系、链路开销等信息(相当于"地图碎片")。
  2. LSDB(Link-State Database,链路状态数据库):所有路由器通过洪泛(Flooding)机制交换LSA,最终每台路由器的LSDB完全一致(相当于"所有人拿到相同的完整地图")。
  3. SPF(Shortest Path First)算法:每台路由器基于LSDB,使用Dijkstra算法计算出以自身为根的"最短路径树",再将最短路径转化为路由条目写入路由表。

实验验证点 :在任意路由器上执行show ip ospf database,可看到所有路由器的LSA信息(LSDB一致);执行show ip route ospf,可看到基于SPF算法计算出的最优路由。

3. OSPF的核心概念("OSPF如何思考?")

要理解OSPF,你必须先理解它的"语言":

  1. Router ID (RID): 路由器在OSPF世界中的"身份证号 "。
    • 它是一个32位的点分十进制数(例如 1.1.1.1),在整个OSPF网络中必须唯一
    • 选举规则 (必讲):
      1. 手动配置: router-id 1.1.1.1 (强烈推荐!最稳定!)
      2. 自动选举(若未手动): 选举所有Loopback(环回) 接口中,IP地址数值最大的那个。
      3. 自动选举(若无Loopback): 选举所有物理 接口中,IP地址数值最大 的那个(要求接口Up)。
    • 为什么重要? RID是SPF算法计算的基础,也是DR/BDR选举的依据。
  2. Area(区域): OSPF实现可扩展性的核心。
    • 想象一下,一个国家的地图太大了,一个人计算任意两点间的最短路径会非常慢。
    • 解决方案: 把国家划分为"省"(Area)。你(省内路由器)只需要精通"本省地图"(本区域LSDB),对于"外省"地址,你只需要知道"如何去往省会(ABR)"就行了。
    • Area 0(骨干区域): "中央核心/高速公路网 "。这是OSPF的心脏。所有其他区域(Area 1, Area 2...)都必须直接连接到Area 0。任何"跨省"流量都必须经由Area 0中转。
  3. LSA(链路状态通告): "地图碎片 "。
    • 这是OSPF信息的基本单元。每台路由器都会产生LSA来描述自己。
    • "我是R1,我的RID是1.1.1.1,我有一个邻居R2,我连着 192.168.1.0/24 网段,开销(Cost)是10。" 这就是一份LSA。
  4. LSDB(链路状态数据库): "完整的拓扑地图 "。
    • 路由器将收集到的所有LSA(地图碎片)存储在LSDB中。
    • 同一个区域 内,所有路由器的LSDB必须完全一致
  5. 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建立关系的过程非常"严谨",分步骤:

  1. Down: "失联"状态,啥也不知道。
  2. Init (初始化): "我收到你的Hello了"。我(R1)收到了R2的Hello包,但我还没在R2的包里看到我自己的RID(说明R2还没认识我)。
  3. 2-Way (双向): "我们互相认识了"。我(R1)在R2的Hello包里看到了我自己的RID。"邻居"关系(Neighbor)在此达成
    • (在广播网络上,此时开始选举DR/BDR,第四部分详述)
  4. ExStart (交换初始): "我们开始交换地图吧"。准备交换LSDB。 通过交换 Database Description(DD)包,决定谁是"从"(Slave)。RID大的当Master
  5. Exchange (交换): "这是我的地图摘要"。双方互相发送DD包,告诉对方自己LSDB里"有哪些LSA"(只发摘要,不发详情)。
  6. Loading (加载): "你摘要里的LSA-X我没有,发我一份"。路由器根据收到的DD摘要,发现自己缺少某些LSA,于是发送LSR(链路状态请求)索要。对方用LSU(链路状态更新)回应。
  7. Full (全毗邻): "我们的地图完全同步了"。"邻接"关系(Adjacency)在此达成

3. Hello包:规则与"心跳"

Hello包是OSPF的"心跳",它用于发现、建立和维持邻居关系。

  • Hello/Dead 计时器:
    • Hello Time: 每隔多久发一次Hello?默认 10 秒 (广播/P2P网络)。
    • Dead Time: 如果我多久 没收到你的Hello,就当你"死"了?默认是Hello的4倍,即 40 秒。
  • 建立邻居的"规则" (必讲):
    两台路由器要想成为邻居,它们的Hello包中,以下参数必须 完全一致,否则"谈不拢":
    1. Area ID: 必须在同一个区域。
    2. Hello/Dead 计时器: 必须一致。
    3. 认证: 如果配置了密码,类型和密码必须一致。
    4. 子网掩码: (在广播网络中)双方的IP必须在同一个子网。
    5. 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如何工作:

    1. 在这个广播网络中,选举一个"班长 (DR) "和一个"副班长 (BDR)"。
    2. 所有"普通学生 (DROther) "只和DR、BDR建立 Full 邻接关系
    3. DROther之间只保持 2-Way(邻居)关系。
    • 效果: 10台路由器的网络,邻接关系从45对锐减到 9(DR) + 8(BDR) 对左右(取决于DR/BDR是谁)。
    • LSA泛洪: DROther只把LSA发给DR (IP 224.0.0.6),DR再"转播"给所有人 (IP 224.0.0.5)。
  • 选举规则 (必讲):

    1. 比较OSPF接口优先级 (Priority)0255,默认 1数字越大越优
    2. 如果优先级相同,比较Router ID (RID)RID越大越优
    • 注意:DR选举是非抢占的。一旦选出,即使有更高优先级的路由器加入,也不会重新选举,除非DR"挂了"。

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 1
    • 1000M 接口 (千兆) = 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的默认路由
  • Totally Stubby (完全末梢区域): "我们更懒,连其他区域的路由(LSA-3)也不关心"。
    • 配置:在ABR上配置 [R-ospf-1-area-1] stub no-summary
    • 效果:ABR会拦截所有LSA-3和LSA-5,只下发一条LSA-3默认路由。
    • 作用: Area 1的路由表被精简到极致,只有区域内路由+一条默认路由。

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规则"不匹配。
    1. 物理/IP: ping 对端接口IP,能通吗?(ping -a [my-ip] [peer-ip]
    2. OSPF基础参数:
      • display ospf error:查看OSPF错误统计。
      • display current-configuration interface [name]:检查双方Area ID是否一致?
      • display ospf interface [name]:检查Hello/Dead时间、子网掩码是否一致?
    3. MTU: 双方接口MTU是否不一致?(display interface

场景2:路由缺失 (邻居 Full 但路由表没学到)

  • 排错思路:
    1. LSDB: display ospf lsdb (在ABR或ASBR上)。地图(LSDB)里有这条LSA吗?如果地图里都没有,说明LSA泛洪出了问题。
    2. 路由策略: display current-configuration | include filter-policy。路由器上是否配置了 filter-policy 策略,把这条路由给"过滤"掉了?
    3. 优先级: display ip routing-table [ip-address] verbose。是不是有一条优先级更高(数字更小)的路由(如静态路由60,甚至OSPF区域内10)覆盖了这条路由(如外部150)?

第八部分:eNSP综合实验(理论到实践)

至此,我们已经学完了OSPF的全部核心理论、配置和排错。但知识是零散的,必须通过一个综合实验才能把它们"串"起来。这最后一个实验,就是我们本次课程的"毕业作品 ",它将把前面七个部分的所有知识点融合在一起。请严格按照拓扑图和步骤操作,并重点观察验证命令,亲眼看到LSA-3、LSA-5和DR选举的真实发生。

目标: 在eNSP中搭建一个多区域OSPF网络,实践并验证本教程中80%的核心知识点。

1. 实验拓扑与IP规划

  • 设备: 5台 AR2220 路由器 (R1-R5) + 2台 交换机 (SW1, SW2)
  • 区域规划:
    • Area 0 (骨干):R1, R2, R3
    • Area 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)

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同理,宣告Loopback0192.168.1.010.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 1Full
    • [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] display ospf lsdb:在R4上查看,是否能看到 Type-3 LSA (来自ABR R3) 和 Type-5 LSA (来自ASBR R1)?

步骤六:(可选)配置路由汇总

  • 任务: 在ABR(R3)上,将Area 1的路由(192.168.2.0/244.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.4192.168.2.0 的明细路由消失,变为一条 192.168.2.0/23O_INTER 路由。

课程总结:

恭喜,完成这个实验,你就真正掌握了OSPF的精髓。你已经从一个"手动配置路由"的管理员,成长为能"设计和维护自愈网络"的工程师了。

相关推荐
有味道的男人2 小时前
接入MIC(中国制造)接口的帮助
网络·数据库·制造
马猴烧酒.2 小时前
【协同编辑|第十二天】通过WebSocket,Disruptor 无锁队列实现协同编辑
网络·websocket·网络协议
2501_941652772 小时前
高速公路车辆检测与识别——基于YOLOv8与RFPN网络的智能监控系统_3
网络·yolo
智算菩萨2 小时前
【网络工程师入门】网络技术全解析:从家庭组网到DNS域名系统的实践指南
网络·系统架构
新时代牛马2 小时前
CANopenNode 接口及 CANopenLinux 完整实现
网络·学习
一起养小猫2 小时前
Flutter for OpenHarmony 进阶:Socket通信与网络编程深度解析
网络·flutter·harmonyos
前端世界2 小时前
鸿蒙应用如何集成第三方 SDK?真实项目中的完整实践
华为·harmonyos
Code小翊2 小时前
re标准库模块一天学完
运维·服务器·网络
人工智能知识库2 小时前
华为HCIP-Datacom H12-821题库(带详细解析)
华为·hcip-datacom·h12-821·华为数通·h12-821题库