
简介网络基础知识OSPF高级配置PPT学习教案适合网络管理员、路由协议学习者和认证备考者。内容系统梳理NSSA区域及LSA 7、地址汇总、辅助地址、虚链路与RIP路由重分发五大高级主题结合DNS服务器跨网段通信的排查案例演示静态路由和RIP互通两种解决思路有助于深化对OSPF边界行为与路由设计的理解。包体为单个PPTX演示文稿约639KB共28页图文结合展示命令配置与拓扑可直接用作课堂讲解或自学笔记。已有99人学习浏览适合需要快速掌握OSPF高级配置要点、提升网络排障能力的读者。1. OSPF 高级配置从 NSSA 到路由重分发的实战笔记刚接触 OSPF 时很多人觉得配置几条network命令、看着邻居起来就完事了。直到某次割接一个非骨干区域因为缺少虚链路导致路由黑洞一个 NSSA 区域因为 LSA 过滤问题让外部路由消失我才意识到 OSPF 的高级特性不是考试题而是真实网络上每天都在发生的场景。这份《OSPF 的高级配置》PPT 只有 28 页但把 NSSA、地址汇总、辅助地址、虚链路、RIP 重分发这几个生产环境最常用的知识点全讲透了。适合正在备考 CCNP 的考生也适合被区域设计折磨过的网络工程师——哪怕你只在华为或 H3C 设备上配过 OSPF里面关于 LSA 类型和汇总逻辑的内容同样适用。2. NSSA 区域与 LSA 7特殊区域的配置逻辑与参数陷阱2.1 为什么需要 NSSA普通末梢区域的局限OSPF 设计末梢区域Stub Area的初衷很直接区域内部路由器不需要知道外部路由的细节只要有一条默认路由指向 ABR 就够了。但末梢区域有个硬限制——它不允许外部 LSA 进入这意味着如果这个区域里恰好有一台路由器需要引入 RIP 或者其他协议的外部路由末梢区域就直接失效了。NSSANot-So-Stubby Area解决的就是这个问题。它保留了末梢区域过滤 LSA 3/4/5的优点同时允许区域内部产生外部路由这些外部路由以 LSA 7 的形式在 NSSA 内部泛洪。到了 ABR 上LSA 7 会被转换成 LSA 5 继续传递给骨干区域。简单说NSSA 是可以自己产生外部路由的末梢区域。PPT 里给了一个很典型的拓扑一个运行 RIP 的网络连接到 OSPF 的 area 1area 1 被配置为 NSSA。RIP 侧的路由通过 ASBR 进入 OSPF 时是以 LSA 7 发布的而不是普通的 LSA 5。这里有个容易搞混的点LSA 7 只在 NSSA 内部传播一旦穿过 ABR 进入骨干区域就被转换成 LSA 5。2.2 配置命令与参数详解! 在 area 1 上启用 NSSA router ospf 1 redistribute rip subnets network 172.19.92.0 0.0.0.255 area 1 area 1 nssa这段配置里有两个关键点。redistribute rip subnets把 RIP 路由引入 OSPFsubnets参数是关键——如果不加RIP 里的子网路由会被过滤掉只保留有类网络路由这是很多人配置重分发后路由消失的第一嫌疑。area 1 nssa把 area 1 变成 NSSA这样从 RIP 重分发进来的路由就以 LSA 7 的形式存在。! 完全 NSSA阻止 LSA 3/4 进入 router ospf 1 area 1 nssa no-summaryno-summary参数的意思是完全 NSSA——不仅外部 LSA 进不来连区域间的汇总 LSA 3 也不进来ABR 只向区域内发布一条默认路由。效果等同于完全末梢区域但保留了 NSSA 产生外部路由的能力。生产环境我一般建议用no-summary因为区域间路由的细节对 NSSA 内部设备没有意义少一条 LSA 就少一次 SPF 计算。2.3 NSSA 的常见误用NSSA 配置出错最多的地方不在命令本身而在对 LSA 转换的理解。ABR 把 LSA 7 转换成 LSA 5 时默认使用转换路由器的 Router ID 作为 forwarding address。如果 NSSA 内有多个 ABR只有被选举出来的转换路由器负责转换其他 ABR 不会参与——这个选举过程对网络工程师来说是黑匣子只能通过show ip ospf查看谁被选为转换路由器。另外注意一点NSSA 区域内不建议再配置虚链路。虚链路需要穿越骨干区域而 NSSA 的过滤规则会让虚链路两端的 LSA 交换出问题这是我实际踩过的坑后面避坑章节会细说。3. 辅助地址跨网段通信的配置方法与数据转发路径3.1 辅助地址解决什么问题PPT 里的案例很有代表性路由器 D 和路由器 F 物理上连着同一台交换机但 D 的接口地址是 192.168.10.33/28F 那边的设备在 172.19.35.0/25 网段两边逻辑上不通。DNS 服务器接在 F 侧D 需要访问 DNS但 IP 不在同一网段ARP 直接失败。解决办法是在 D 的 Ethernet0 上配置辅助地址interface Ethernet0 ip address 172.19.35.15 255.255.255.128 secondary ip address 192.168.10.33 255.255.255.240注意 Cisco IOS 的语法先写secondary的地址再写主地址或者反过来都行但secondary关键字只能出现在一个地址上。主地址和辅助地址都参与 OSPF 通告前提是主地址所在的网段已经启用 OSPF。3.2 OSPF 通告辅助地址的规则PPT 明确提出两条规则只有在主网络或子网也运行 OSPF 时OSPF 才会通告辅助网络辅助地址是末梢网络不发送 Hello 报文无法建立邻接关系。这两条规则的实际含义是辅助地址本质上是一个挂在接口上的额外网段它告诉 OSPF 域内其他路由器这个网段可以从我这里到达但它不参与邻居发现。用辅助地址建立的连通性是单向的——OSPF 域内的路由器能通过辅助地址找到 DNS 服务器但 DNS 服务器的回应怎么办3.3 数据回程问题与解决方案看 PPT 里的拓扑演进DNS 服务器收到来自 192.168.10.0/24 网段的请求它查路由表发现目的地址不在本地把回应发给默认网关路由器 F。但 F 和 D 之间没有运行 OSPFF 根本不知道 192.168.10.0/24 怎么走。第一个解法是给 F 配静态路由ip route 192.168.0.0 255.255.0.0 172.19.35.15这条静态路由用超网掩码 255.255.0.0 匹配整个 192.168.0.0/16下一跳指向 D 的辅助地址。配置命令本身不难问题在于这种超网静态路由在路由条目多的时候难以维护而且 D 还是学不到 F 侧更细的路由——比如 F 后面还挂着 192.168.60.0/24、192.168.70.0/24 这些网段。PPT 给出的最终解法是在 D 上同时启用 RIProuter rip network 172.19.0.0 router ospf 40 redistribute rip metric 10 network 192.168.10.2 0.0.0.0 area 192.168.10.0这里redistribute rip metric 10给外部路由一个初始度量值 10避免 OSPF 内部路由和外部路由的选路混乱。RIP 从 F 学到的路由会以 OSPF 外部路由E2的形式重分发进 OSPF 域从 RouterA 的路由表看就是O E2 192.168.105.0/24 [110/10]。这下 OSPF 域内的路由器都能学到 F 侧的全部网段而代价是 D 变成了 ASBR——这就是辅助地址场景下最常见的架构演变。3.4 辅助地址配置边界辅助地址不是万能的。它解决的是接口需要同时属于多个网段的问题但不会让两个网段之间建立直接的 OSPF 邻居关系。如果你需要的是两台路由器之间建立邻接正确做法是加一条物理链路或者用子接口而不是配辅助地址。另外辅助地址不能配置在被动接口上用于路由通告它本身就不发 Hello这个特性决定了它的使用场景很窄只适合让一个网段可达这种诉求。4. 地址汇总与路由重分发减少 LSA 泛洪与控制路由规模4.1 区域间汇总在 ABR 上收敛地址汇总的价值不用多说减少路由表条目、减少 LSA 泛洪数量、屏蔽网络不稳定的细节。OSPF 支持两种汇总区域间汇总发生在 ABR 上针对的是区域内路由外部路由汇总发生在 ASBR 上针对的是重分发进来的外部路由。看 PPT 里的例子Area 1 里有 192.168.16.0/24、192.168.17.0/24、192.168.18.0/24、192.168.19.0/24 四个网段在 ABR 上汇总成 192.168.16.0/22。二进制展开后前 22 位完全一致所以可以聚合。! ABR 上配置区域间汇总 router ospf 1 area 1 range 192.168.16.0 255.255.255.252注意area 1 range命令里我故意写了个错误掩码 255.255.255.252这是要说明一个常见的踩坑点range命令后面跟的是子网掩码不是通配符很多人习惯性写成 0.0.0.63 这种反掩码格式导致汇总不生效。正确写法是area 1 range 192.168.16.0 255.255.252.0。区间的计算逻辑是起止网段必须是汇总掩码的边界否则命令会接受但不会生成预期路由。4.2 外部路由汇总在 ASBR 上收敛外部路由汇总用summary-address命令PPT 里的例子是 ASBR 把 RIP 学到的 200.9.1.0/24 到 200.9.255.0/24 汇总成 200.9.0.0/16router ospf 1 summary-address 200.9.0.0 255.255.0.0 tag 8tag 8是路由标记用于路由策略控制。外部汇总的坑在于只有被重分发的路由才会被汇总OSPF 域内自己产生的路由不受summary-address影响。另外汇总后的路由度量值取被汇总路由中最小的度量值这个细节经常让排错的人迷惑——为什么汇总路由的 cost 忽大忽小原因就在这里。4.3 路由重分发的选型与度量值控制路由重分发的前提是理解 OSPF 外部路由的类型。E1 路由的度量值是内部 cost 加上外部 seed metricE2 路由只计算外部 seed metric。默认情况下OSPF 重分发的路由是 E2seed metric 是 20除了 BGP 是 1。! RIP 重分发进 OSPF指定度量值和类型 router ospf 40 redistribute rip metric 10 metric-type 1 subnets我一般建议跨国网段重分发用 E1因为 E2 不看内部 cost在两条路径 cost 差异很大的场景容易选错路。metric-type 1显式声明 E1所有路由器计算路径时会加上到 ASBR 的内部 cost选路结果更符合直觉。4.4 双向重分发的风险PPT 只讲了 RIP 到 OSPF 的单向重分发但生产环境只要做双向就会引入路由回灌问题——OSPF 学到的路由被重分发进 RIPRIP 再传回来形成环路。最常见的规避手段是 route-map 加 tag 标记! 只重分发带特定 tag 的路由 route-map FROM-RIP permit 10 match tag 8 ! router ospf 1 redistribute rip route-map FROM-RIP subnets重分发的本质是把一种协议的路由可信度降级后用另一种协议的规则重新广播。没有 route-map 过滤的双向重分发是生产事故的高发地带哪怕配置看起来完全对称。4.5 汇总与重分发配合的典型场景区域间汇总配合默认路由下发是典型的 Hub-Spoke 架构配置。分支站点的 ABR 配置area 1 range把站点内网段汇总成一个 /22 发布到骨干骨干侧配置default-information originate always下发默认路由。这样分支站点的路由表只有默认路由加本区域明细SPF 计算频率大幅下降。注意OSPF 的默认路由下发需要default-information originate和静态默认路由不是一回事。5. OSPF 高级配置避坑指南现象、原因、解决方案5.1 NSSA 区域内虚链路失效现象在 NSSA 区域配置虚链路后虚链路邻居起不来show ip ospf virtual-links显示状态一直停在等待状态对端 Router ID 能看到但无法建立 adjacency。原因NSSA 区域过滤了 LSA 3/4而虚链路的数据包本质上依赖区域内路由器转发音视频报文同时需要通过 LSA 交换维持邻居关系。NSSA 的过滤规则直接阻断了虚链路所需的 LSA 类型传递Cisco 文档里明确不建议在 NSSA/完全 NSSA 区域配置虚链路。解决重新设计区域划分配置将需要虚链路的区域改为普通区域或者将连接非骨干区域的路由器物理接入骨干区域不要依赖虚链路穿越 NSSA。如果必须保留 NSSA考虑把对端路由器直接接入骨干区域。5.2redistribute rip后外部路由全部消失现象在 ASBR 上配置redistribute rip后OSPF 域内看不到任何 RIP 路由show ip ospf database external为空但 RIP 邻居和路由表正常。原因漏了subnets关键字。Cisco IOS 的 OSPF 重分发默认只重分发有类网络路由不重分发子网路由。RIP 路由几乎都是子网形式不加subnets等于什么都没做。解决改为redistribute rip subnets并确认 seed metric。如果重分发后路由出现但在路由表里是O E2且 cost 为 20这是默认行为不必担心但如果多条路径需要精确选路用metric-type 1。5.3 辅助地址配置后 OSPF 邻居状态卡在 ExStart现象在接口上配置了辅助地址并且用辅助地址所在的网段启用了 OSPF结果邻居状态卡在 ExStart/Exchange邻接无法建立。原因辅助地址不发送 Hello 报文不能用于建立邻接关系。如果网络里有人用辅助地址调用 OSPF neighbor 或者被动依赖辅助地址建立邻居就会卡住。OSPF 只有在主地址所在的网络上才能建立邻居关系。解决OSPF network 命令用主地址网段辅助地址只作为被通告网段。需要建立邻居的场景必须保证主地址在同一网段或者用ip ospf network point-to-point改变网络类型。5.4area X range汇总不生效现象在 ABR 上配置了area 1 range 192.168.16.0 255.255.252.0但区域外路由器依然能看到 /24 明细路由。原因range命令的掩码写错是第一位其次是汇总的边界条件不满足——汇总网段的起止必须正好落在聚合掩码的边界上。192.168.16.0/22 的边界是 16.0 到 19.255如果 Area 1 里还有 192.168.20.0/24这个汇总就聚合不了 20 网段明细路由照常通告。还有一种情况是命令敲在 ASBR 上而不是 ABR 上OSPF 区域间汇总只认 ABR。解决先确认show ip ospf里的路由器角色再用show ip route检查实际通告的路由前缀。区域间汇总只在 ABR 生效外部路由汇总只在 ASBR 生效这两者的配置位置不能互换。5.5 虚链路配置后路由黑洞现象非骨干区域与骨干区域物理隔离配置虚链路后区域间路由时通时不通show ip ospf显示虚链路状态正常但部分网段不可达。原因虚链路建立后穿越区域的报文依靠区域内的路由器转发但区域内的 SPF 树可能没有把虚链路两端的路由信息计算进去。另一个常见原因是区域内的路由器不通告某些网段的 LSA导致虚链路对端学不到完整路由。解决用show ip ospf database查看虚链路两端 LSDB 是否一致重点检查区域内是否有 ABR 做了过滤或者汇总把关键网段滤掉了。虚链路是无奈之下的方案有条件还是物理连接骨干区域更稳妥。5.6 完全 NSSA 后默认路由消失现象配置area 1 nssa no-summary后区域内的路由器缺少默认路由访问外部网络全部失败。原因完全 NSSA 的 ABR 会向区域内通告一条默认路由LSA 3但这条默认路由的生成依赖 ABR 自身有默认路由或者有外部路由。如果 ABR 没有默认路由no-summary模式下不一定自动下发默认路由。解决在 ABR 上显式配置area 1 nssa default-information-originate让 ABR 强制向 NSSA 下发默认路由。注意这条命令只在 NSSA 场景下有意义普通区域无法用nssa命令。6. 虚链路的配置验证与故障定位技巧6.1 虚链路配置的两个硬性条件虚链路最常见的应用场景是新区域接入时没有物理链路到骨干区域只能通过其他非骨干区域穿越。配置命令本身不复杂! 在穿越区域的路由器上配置虚链路 router ospf 1 area 1 virtual-link 192.168.50.4这里area 1是穿越区域192.168.50.4是对端路由器的 Router ID。注意配置的是 Router ID不是接口 IP这是最容易混淆的地方。两个必要条件穿越区域不能是 NSSA/Stub 区域对端路由器的 Router ID 必须稳定不能用 Loopback 接口的 IP 也不一定行——OSPF 的 Router ID 是进程启动时确定的除非配置了router-id命令否则换接口 IP 可能导致 Router ID 变化虚链路随之中断。6.2 验证命令与故障定位路径! 查看虚链路状态 show ip ospf virtual-links ! 查看 OSPF 邻居与区域信息 show ip ospf neighbor show ip ospf interfaceshow ip ospf virtual-links的输出里需要关注Transit area和Virtual link is up的字段。如果状态是 DOWN用debug ip ospf adj看报文交换过程。虚链路起不来时八成是穿越区域里有路由器过滤了 LSA 3或者两端的 Router ID 配错了。6.3 虚链路场景的进阶技巧虚链路配置完成后用show ip ospf border-routers确认虚链路对端的 ABR/ASBR 是否出现在内部路由表里。我曾经遇到虚链路建立成功但路由不通的情况就是穿越区域里有一台路由器配置了area 1 filter把方向过滤掉导致 LSA 传递不完整。从那以后我每次配置虚链路都强制走一遍完整验证路径先确认穿越区域类型再用show ip ospf virtual-links看状态然后对比两端 LSDB最后确认对端路由器的 Router ID 没有因为接口 down 而改变。这个习惯救过我好几次——虚链路问题九成出在区域设计而不是命令本身。希望这些经验对你也有用。本文还有配套的精品资源点击获取