
简介面向网络管理员、运维工程师与路由协议学习者的OSPF高级配置教案以PPT幻灯片形式呈现聚焦动态路由协议在自治系统内的进阶应用系统解决非纯末梢区域设计、路由汇总、跨网段通信、虚链路建立以及多协议路由交互等常见问题。整个资源包只有一个pptx文件共二十八页教学课件压缩后大小仅为639KB内容集中且结构清晰适合快速阅读和课堂演示。目前已有99人学习适合备考网络认证或进行实验环境配置的读者参考。这份教案不仅细致讲解了NSSA区域与第七类LSA、地址汇总命令、辅助地址使用规则和虚链路配置方法还演示了RIP路由重分发到OSPF的具体命令与步骤同时结合实际案例给出DNS服务器跨网段通信时静态路由与RIP方案的差异分析与排错思路能够帮助读者将理论直接转化为可操作的配置经验。1. OSPF 高级配置不是背命令区域设计、LSA 过滤与三层联动一次说清学完基础 OSPF很多人以为会配network、会看display ospf peer就算入门了。真到接手现网才发觉不是那么回事区域一多路由表被三类 LSA 撑爆核心区域混进外部路由全网设备都在跟着刷库主备切换时 VRRP 已经切走了OSPF 还在发呆业务中断半天没人敢动。这个基于网络基础知识 OSPF 的高级配置展开的方向就是把能建邻居、能通网往上推一层——处理好特殊区域、汇总、认证以及和 MSTP/VRRP 的协同。适合谁看给正在做园区网或企业网开局、要对 OSPF 做精细化设计和排障的从业者。下面按先吃透原理、再落地命令、后看联动、最后避坑的顺序展开关键配置以华为 / H3C 风格为主照抄能跑改改能用在你的拓扑里。2. 吃透 LSA 与特殊区域OSPF 高级配置的命门所在2.1 一张表看懂 1/3/4/5/7 类 LSA 与洪泛规则OSPF 的高级配置本质上是控制哪些 LSA 能进哪些区域。不理解 LSA 类型和洪泛边界配特殊区域就是瞎试。我把常见的五类 LSA 整理成一张表后面所有配置命令都和这张表对照着看LSA 类型名称产生者洪泛范围说明1Router LSA每台路由器所在区域描述路由器接口和邻居状态区域内链路拓扑的基础2Network LSADR所在区域描述广播网段内有哪些路由器只在 MA 网络存在3Summary LSAABR跨区域区域间路由描述某个网段从哪进区域4ASBR Summary LSAABR跨区域非ASBR所在区域告诉其他区域 ASBR 怎么走5AS External LSAASBR整个 AS普通区域外部路由比如重分发进 OSPF 的静态路由7NSSA External LSAASBRNSSA 内NSSA 区域外部路由在 NSSA 里的替代载体由 ABR 转成 5 类发出去这表的重点是1 类、2 类只在区域内泛洪这是 OSPF 能分区域的根本原因而 3 类是 ABR 在区域边界翻译出来的翻译的时候可以汇总5 类在普通区域里一路穿透这也是为什么区域越多、核心路由器 LSDB 越大的根源。做高级配置首先就是决定哪些类型的 LSA 允许进入某个区域。2.2 Stub 和 NSSA 区域把路由表关进水龙头Stub 区域的设计意图是不要让我看到外部世界的细节。一个区域里全是末端网络、只有一条出区域的路就没必要放 5 类 LSA 进来——反正出去就一条路直接给一条默认路由完事。ABR 对这个区域通告一条默认的 3 类 LSA区域内设备去外部网段全部走默认路由LSDB 小了一截路由表清爽很多。但要有个前提Stub 区域里不能有 ASBR也就是不能在这个区域里做重分发。如果这个末端区域里确实有一台设备连着外部路由像分支办公室连了专线接别的网Stub 就用不了了。这个场景就是 NSSA 存在的理由。NSSA 允许区域内有 ASBR外部的 7 类 LSA 能在区域内洪泛由 ABR 在区域边界把 7 类转成 5 类广播到骨干区。配置上Stub 和 NSSA 都是区域级命令必须在区域内所有路由器上保持一致否则邻居关系直接卡在 ExStart。我见过现场只配了一台另外一台没配结果整片区域邻居全 down 的惨状。2.3 Totally Stub 与 Totally NSSA只留一条默认路由的极端玩法Totally Stub 是 Stub 的加强版不只拒绝 5 类连 3 类也一起挡掉区域内只有一条由 ABR 通告的默认路由。适合那种我就是个接入层区域去任何地方都从核心走的场景。Totally NSSA 同理在 NSSA 的基础上把 3 类也过滤掉。这两种区域下的 LSDB 是全网最小的SPF 计算负担小收敛也快。我的经验是中小型园区网的核心区域不要这么搞接入或汇聚区域可以用 Totally Stub 或 Totally NSSA一张几千条路由的表能压到几十条。代价是区域内设备看不到具体目的地做 traceroute 排障的时候只能一跳一跳看不方便但要功能不受影响。华为 / H3C 的命令区别在stub后面跟不跟no-summary# 在 ABR 上把它变成 Totally Stub ospf 1 area 0.0.0.1 stub no-summary # 在区域内其他路由器上只写 stub 即可 ospf 1 area 0.0.0.1 stubstub no-summary只加在 ABR 上作用是我不向这个区域通告任何 3 类 LSA除了我生成的那条默认路由。区域内其他路由器只要保证自己也配了stub能和 ABR 建立 FULL 邻居就行。注意不是所有设备都写no-summary——非 ABR 设备写不写其实无所谓但统一写stub最保险。NSSA 的配置逻辑一样华为写法是# ABR 上Totally NSSA ospf 1 area 0.0.0.2 nssa no-summary # 区域内的 ASBR 也要配 nssa但不需要 no-summary ospf 1 area 0.0.0.2 nssa配完以后验证看 LSDB区域内应该只剩 1 类、2 类、7 类和一条默认路由的 3 类Totally 场景5 类 LSA 一条都看不见。用display ospf lsdb查看时重点看有没有Type-5 AS External条目。2.4 在华为 / H3C 设备上划分特殊区域完整命令与验证把上面几个点串成一个实际开局。假设核心区域 area 0汇聚用 area 1Totally Stub分支出口用 area 2Totally NSSA因为那台汇聚设备要重分发一条外部路由。# 核心路由器 R1ABR同时连着 area 0 和 area 1 ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 10.0.0.0 0.0.0.255 area 0.0.0.1 stub no-summary network 192.168.10.0 0.0.0.255 # 汇聚路由器 R2ABR连着 area 0 和 area 2 ospf 1 router-id 2.2.2.2 area 0.0.0.0 network 10.0.1.0 0.0.0.255 area 0.0.0.2 nssa no-summary network 192.168.20.0 0.0.0.255 # 接入路由器 R3area 1 内部非 ABR ospf 1 router-id 3.3.3.3 area 0.0.0.1 stub network 192.168.10.0 0.0.0.255 network 172.16.1.0 0.0.0.255 # 分支出口路由器 R4area 2 内部兼任 ASBR ospf 1 router-id 4.4.4.4 area 0.0.0.2 nssa network 192.168.20.0 0.0.0.255 import-route static # 把外部静态路由重分发进来验证命令分三步走。第一步看邻居display ospf peer brief重点确认 area 1 和 area 2 里的邻居是 Full。第二步看 LSDBdisplay ospf lsdb在 R3 上应该看不到 Type-5 的条目只能看到 Type-3 的默认路由如果步骤里没写no-summaryR3 上会多出一堆 Type-3 的明细条目。第三步看路由表display ip routing-table protocol ospfR3 应该只有一条 OSPF 默认路由指向 R1外部明细一条都进不来。这条配置跑通以后特殊区域的意义就落在路由表上了。R3 只关心出区域走哪不关心外面世界长什么样R4 的重分发外部路由通过 7 类 LSA 在 area 2 内部通告ABR 转成 5 类发进 area 0核心区域不受影响。3. 路由汇总与认证配置把 OSPF 从「能通」调到「能控」3.1 ABR 区域间汇总与 ASBR 外部汇总的区别做高级配置绕不开汇总。基础配置里每条网段都是明细路由区域一多ABR 往 area 0 通告的 3 类 LSA 几乎等于全网明细。手工汇总的价值在两条一是让上游看到的路由数量变少LSDB 变小、SPF 计算变快二是把网络拓扑的抖动锁在区域内——某个子网 down 了明细被汇总掩盖其他区域完全感知不到不会触发一遍全网重算。ABR 和 ASBR 的汇总配置命令不同。ABR 在area视图下用abr-summary只影响往相邻区域通告的 3 类 LSAASBR 在 OSPF 进程视图下用asbr-summary只影响 5 类 / 7 类外部 LSA。两者不能混用这个很多新手一开始搞混。3.2 汇总命令落库连续网段的聚合与验证以华为设备为例# ABR 上把 area 1 的一大段连续网段汇总为一条通告给 area 0 ospf 1 area 0.0.0.1 abr-summary 172.16.0.0 255.255.240.0 # ASBR 上把重分发进来的外部路由汇总成一条 ospf 1 asbr-summary 10.100.0.0 255.255.248.0abr-summary写在area视图内部操作对象是从我这个 ABR 通告出去的区域间路由掩码写的是汇总网段的掩码不是通配符。asbr-summary写在进程视图内作用于外部 LSA。两处汇总都要求网段连续否则会把不相关的路由吞进来形成黑洞路由。验证时在被汇总区域的内部路由器上看 LSDBdisplay ospf lsdb summary应该只有一条 Type-3 的汇总 LSA而不是原来几十条明细。在骨干区域看时同样只看到这一条。再在设备上执行display ospf routing确认汇总网段指向 ABR 的下一跳。如果汇总后出现部分子网不通优先查汇总掩码是不是写宽了。3.3 OSPF 认证配置区域认证与接口认证怎么选现网里 OSPF 认证大概率会碰到两种需求一种是区域内的所有 OSPF 报文都做校验防设备误接入另一种是只在某些关键链路上做认证尤其是 ABR 到核心的链路。前者叫区域认证后者是接口认证可以叠加也可以单独配。区域认证的核心逻辑是一个区域内的所有路由器都要配置相同的认证方式和口令否则邻居建立会失败。华为 / H3C 的写法有明文simple和密文md5/hmac-sha256两种。思科风格里area 0 authentication之后的message-digest对应下面的 MD5 配置这里以华为写法为主# 核心路由器R1area 0 开启区域认证链路接口配 MD5 ospf 1 area 0.0.0.0 authentication-mode hmac-sha256 interface GigabitEthernet0/0/0 ospf authentication-mode hmac-sha256 key-id 1 cipher 明文密钥 # 汇聚路由器R2也要在 area 0 配置相同认证 ospf 1 area 0.0.0.0 authentication-mode hmac-sha256 interface GigabitEthernet0/0/0 ospf authentication-mode hmac-sha256 key-id 1 cipher 明文密钥配置时最容易出问题的是区域认证配了但接口上又配了不同的认证华为设备的规则是接口认证优先于区域认证。也就是说接口没配认证时走区域认证接口配了认证就用接口的这时候两边接口认证不一致邻居照样起不来。排查时先display ospf interface看每个接口的认证模式是否和你预期一致。选择建议一个区域就几台设备的直接区域认证省事。跨区域的大网络至少在 ABR 互联链路上单独做接口认证。HMAC-SHA256 比 MD5 安全配置上不吃亏新旧设备兼容性的坑反而少。4. OSPF、MSTP、VRRP 三层联动一张网络拓扑里三条命脉怎么协同4.1 MSTP 实例收敛为什么拖后腿OSPF 在这里的角色凡是做过园区网的人大概率踩过这种坑配置了 MSTP 做二层防环同时用 OSPF 做三层路由结果一台接入设备 down 了OSPF 邻居秒收敛但 MSTP 还在重新计算二层流量先往旧路径走走在半路发现端口被阻塞丢包好几秒。MSTP 和 OSPF 的收敛速度天然不在一个量级。OSPF 依靠 Hello 报文检测邻居状态配合快速收敛机制毫秒级可以切换MSTP 需要 BPDU 传播、根桥选举、端口状态迁移即使是 RSTP 变种也要在秒级。这就是为什么在复杂拓扑里MSTP 往往是流量恢复的瓶颈。OSPF 在这里的角色不是在帮 MSTP 加速而是提供路由层面的冗余路径。MSTP 阻塞了某条链路OSPF 如果还有另一条三层可达路径就能立刻接管。所以设计时要保证MSTP 阻塞端口阻塞的是二层转发路径但三层 OSPF 邻居路径不能依赖那条被阻塞的链路。换句话说OSPF 的邻居关系必须建立在 MSTP 计算后的活跃链路上。4.2 VRRP 主备切换与 OSPF 收敛的先后关系VRRP 负责网关冗余OSPF 负责路由可达。但很多故障场景是VRRP 已经完成了主备切换网关漂移到了备用设备上OSPF 却还在等待新邻居建立中间这段时间报文到了新网关新网关查路由表发现去目的地还走老路径直接丢包。这个问题的根源在于 VRRP 切换是秒级甚至毫秒级的而 OSPF 感知链路故障需要 Hello 超时。如果 VRRP 主备设备之间的互联链路没有断开但上行链路故障导致主设备失效VRRP 能通过优先级和通告快速切换OSPF 却还要等接口状态变化才会重新计算。解决思路有两个一是让 OSPF 主动感知——把 VRRP 主备设备间的链路做成 OSPF 点到点网络配置 BFD 联动让 OSPF 在毫秒级感知故障二是在主备设备上配置相同的 OSPF 路由让新的 VRRP 主设备接手后马上有完整路由可用。4.3 一个完整的联动配置套路和验证流程以一台核心交换机和两台汇聚交换机为例# 核心交换机SW1 vlan batch 10 20 100 interface Vlanif100 ip address 10.0.100.1 255.255.255.0 ospf network-type p2p ospf timer hello 1 ospf timer dead 3 # 汇聚交换机SW2VRRP Master interface Vlanif10 ip address 10.0.10.2 255.255.255.0 vrrp vrid 1 virtual-ip 10.0.10.254 vrrp vrid 1 priority 120 ospf network-type p2p ospf timer hello 1 ospf timer dead 3 # 汇聚交换机SW3VRRP Backup interface Vlanif10 ip address 10.0.10.3 255.255.255.0 vrrp vrid 1 virtual-ip 10.0.10.254 vrrp vrid 1 priority 100 ospf network-type p2p ospf timer hello 1 ospf timer dead 3 # 在 SW2 和 SW3 上配置 OSPF BFD ospf 1 bfd all-interfaces enable这里把汇聚到核心的链路改成点到点网络类型是为了加快收敛因为点到点不需要 DR/BDR 选举邻居建立更快Hello 和 Dead 计时器也调短了。BFD 的作用是把链路故障探测从秒级拉到毫秒级VRRP 切换后 OSPF 能立刻响应。验证时依次看display ospf peer确认邻居是 Fulldisplay vrrp确认主备状态然后手工拔掉 SW2 的上行链路观察display ospf peer在多少毫秒内切换到 SW3以及业务丢包时间。这三个命令的位置和顺序基本决定了你对整张网的状态掌握。5. OSPF 高级配置避坑排查5 个现网踩过的坑5.1 邻居卡在 ExStartMTU 不匹配是头号黑匣子现象display ospf peer看到邻居一直停在 ExStart状态不往前走。原因两端接口的 MTU 不一致OSPF 在 DD 报文协商阶段发现 MTU 不匹配反复在 ExStart/Exchange 之间跳。最常见的场景是核心交换机接口 MTU 调成了 9000接入设备还是默认 1500。解决统一两端接口的 MTU华为设备在接口视图下执行mtu 1500确认两边一致后再看邻居。有时光改一端也有效但那是不稳定状态最好两端对齐。5.2 配了 NSSA 区域后外部路由在区域内消失现象ASBR 重分发了一条外部路由但区域内其他设备上display ospf routing看不到。ASBR 自己看得到。原因外部路由在 NSSA 里以 7 类 LSA 存在洪泛范围只限 NSSA 区域。区域内设备不会看到这条路由除非 ABR 做了 7 类到 5 类的转换。而 7 类转 5 类的条件很严格ABR 必须是区域内唯一能执行转换的设备区域里有多台 ABR 时会出现路由选择歧义。解决检查区域里是否有多台 ABR确保只有一台转换。在 ABR 上执行display ospf lsdb nssa看 7 类 LSA 的 P 位置位情况如果区域内设备需要默认路由在 NSSA 的 ABR 上配nssa default-route-advertise让 ABR 下发一条默认路由。5.3 区域认证配完邻居全 down现象在区域视图下加了authentication-mode md5后区域内所有邻居立刻 down。原因区域内任何一台路由器上没有同步配置认证或者配置了但 key-id 不一致。OSPF 的认证是逐报文校验的一台不认整片区域都受到影响。解决先回退配置然后对照所有区域内的路由器逐台核对。用display ospf interface看实际生效的认证模式和 key-id关键点华为设备的区域认证不会自动同步到接口接口如果单独配了认证以接口的为准要确保接口配置和区域配置兼容。5.4 汇总配完部分区域子网丢了现象ABR 上配了abr-summary结果区域内某些不在汇总范围内的子网在别处消失了。原因掩码写宽了。汇总掩码覆盖了一个实际上不存在的网段比如abr-summary 172.16.0.0 255.255.240.0是一条汇总但 172.16.8.0/22 这个子网根本不在 area 1它被汇总吞了原本来自其他区域的明细又被这条汇总挡住。解决汇总前必须精确列出区域内所有网段用 CIDR 表示法算好掩码不要在脑中大致估。验证时逐条display ospf routing | include 172.16确认没有非本区域的网段被汇总吸收。5.5 VRRP 切换后 OSPF 不走新网关现象VRRP 主备切换完成但 OSPF 路由还是指向旧的下一跳业务丢包几分钟才恢复。原因VRRP 是二层网关切换OSPF 是三层路由协议两者没有任何联动。VRRP 网关漂移后OSPF 的邻居关系可能没变但下一跳 MAC 已经变了流量到了新网关查不到去目的地的路由就会丢弃。解决VRRP 主备设备上都要运行 OSPF 并通告相同网段确保主备都有完整路由表。同时配置 OSPF 与 BFD 联动让链路故障被快速感知。优先级调整后还要验证一次display ospf routing的下一跳是否跟着变了。6. 进阶玩法与验证技巧让 OSPF 收敛再快一档还能预判问题高级配置的最后一步是让 OSPF 真正听话。大多数人停留在默认参数上实际上 OSPF 的收敛速度和故障感知能力完全可以靠几个小调整显著提升。最常见的进阶手段是调小 Hello 和 Dead 计时器。点到点链路上把 Hello 从 10 秒降到 1 秒、Dead 从 40 秒降到 3 秒故障感知时间从 40 秒级别直接压缩到秒级。代价是设备和链路都要承受更高的报文频率所以在带宽紧张的广域网上要节制使用。配合 BFD 的min-transmit-interval和min-receive-interval调到 50 毫秒收敛性能还能再上一台阶。另一个容易被忽略的参数是 OSPF 的 SPF 计时器。默认的 SPF 调度有 5 秒的延迟窗口网络拓扑频繁抖动时SPF 计算会被压住不执行。华为设备可以用spf-schedule-interval调整把首次延迟降到 500 毫秒二次间隔压到 1 秒收敛明显变快。不过注意拓扑频繁变化时这个参数不宜太激进否则设备会持续计算 SPFCPU 被打满反而拖慢整体网络。验证技巧上我个人的习惯是建立一套三层验证法。第一层看邻居状态display ospf peer确认所有邻居是 Full这个是最基础的。第二层看 LSDBdisplay ospf lsdb检查 LSA 类型、序列号是否持续变化如果序列号不停增长说明有设备在反复通告链路在抖动。第三层看路由表display ospf routing确认路由条数和下一跳。这套下来基本能定位 90% 的 OSPF 问题。还有个操作层面的技巧——在做任何 OSPF 配置变更前先用save保存一份配置快照变更后如果出了问题用rollback或重新加载配置恢复。这算是血泪经验了尤其现网设备上一次误删 network 段就能让整片区域瘫痪事后没有保存的配置做对比排查起来像在黑匣子里翻东西。如果配完以后总是莫名其妙地邻居抖动建议先看 CPU 占用率再看是不是接口下的ospf trans-delay设置得不合理。传输延迟这个参数控制的是 LSA 从生成到发送的延迟默认 1 秒链路质量差或 CPU 高时适当调大能减少 LSA 重传但不建议调太小否则 LSDB 同步会反复失败。最后说一个习惯每次调整完 OSPF 参数一定要在业务低峰期做一次手动的主备切换测试和链路中断演练。这个动作能提前暴露 80% 隐藏的配置缺陷。测试方法很简单在汇聚设备上直接 shutdown 上行接口观察 OSPF 邻居切换时间和业务丢包时间记录下来和预期值对比。不是所有问题都能靠命令解决但做过一次切换测试心里就有底了。希望帮到你。本文还有配套的精品资源点击获取