HCIP-Datacom 的备考过程里IGP 高级特性实验属于那种“看着大纲目录简单动起手来全是细节”的部分。很多人在考 OSPF 和 IS-IS 的时候把 LSA 类型、Level 概念背得滚瓜烂熟但一进实验环境发现邻居建立不了、特殊区域路由缺失、认证一配就断连问题一个接一个。这篇文章把我自己在实验环境里完整跑过的 OSPF 特殊区域、路由汇总、认证以及 IS-IS 路由渗透和认证整理成一份可以照着复现的记录给你讲明白“为什么要这么配”和“配置后协议到底发生了什么变化”适合正在备考 HCIP-Datacom、或者日常做网络设计时经常和 IGP 打交道的读者。1. 实验目标与整体设计1.1 这个实验到底在考什么IGP 高级特性实验不是一个单纯“跑通就行”的题目。它想考察的是三件事第一你是否理解不同类型 LSA 在区域间的传递规则第二你是否理解特殊区域对 LSA 的过滤能力以及区域变成特殊区域后路由表会发生什么变化第三你是否掌握认证、汇总这类协议工程手段它们直接影响生产网络中的稳定性和控制面规模。实话说如果只是照着答案敲一遍命令实验做完很快会忘但只要每次配置完都去对比一次 LSDB 和路由表很多概念就能直接“长”在脑子里。IS-IS 部分则围绕 Level-1/Level-2 体系展开。L1 区域内的路由器默认只知道本区域路由和一条默认路由那它什么时候该知道区域外的明细路由渗透解决了什么问题这些内容在考纲里不显眼但实验里很能看出一个人的理解深度。1.2 拓扑搭建与地址规划我这边将实验分成两组独立拓扑一组跑 OSPF 高级特性一组跑 IS-IS 高级特性。分开的好处是可以隔离问题跑 OSPF 的时候不会因为 IS-IS 配置错误干扰判断反过来也一样。OSPF 组用了五台设备。R1、R2、R4 在骨干区域 Area 0R3 单独挂在 Area 1R2 充当 ABRR4 后面接了一台不运行 OSPF 的 R5 来模拟外部网络。地址规划如下设备接口地址说明R1G0/0/010.0.12.1/24连 R2Area 0R1Loopback01.1.1.1/32模拟内部主机R2G0/0/010.0.12.2/24连 R1Area 0R2G0/0/110.0.23.2/24连 R3Area 1R2G0/0/210.0.24.2/24连 R4Area 0R2Loopback02.2.2.2/32ABR Router-IDR3G0/0/010.0.23.3/24连 R2Area 1R3Loopback03.3.3.3/32模拟内部主机R3Loopback13.3.4.4/32测试汇总用前缀R4G0/0/010.0.24.4/24连 R2Area 0R4G0/0/110.0.45.4/24连 R5模拟出口R4Loopback04.4.4.4/32ASBR Router-IDR5G0/0/010.0.45.5/24连 R4不跑 OSPFR5Loopback0192.168.100.1/24模拟外部网段IS-IS 组用三台设备。R6 是 Level-1 路由器R7 是 Level-1-2 路由器R8 是 Level-2 路由器三台设备的 NET 区域地址统一为 49.0001System ID 分别是 0000.0000.0006、0000.0000.0007、0000.0000.0008。IS-IS 的区域边界体现在 L1 和 L2 的 Level 边界上R6 所在的 L1 部分构成一个区域R8 的 Loopback 处于 L2 拓扑中。设备接口地址System IDR6G0/0/010.0.68.6/240000.0000.0006R6Loopback06.6.6.6/32R7G0/0/010.0.68.7/240000.0000.0007R7G0/0/110.0.78.7/24R7Loopback07.7.7.7/32R8G0/0/010.0.78.8/240000.0000.0008R8Loopback08.8.8.8/321.3 基础配置与连通性验证先给所有接口配置 IP 地址和 Loopback这里以 R1 为例system-view sysname R1 interface GigabitEthernet0/0/0 ip address 10.0.12.1 255.255.255.0 quit interface LoopBack0 ip address 1.1.1.1 255.255.255.255 quit这一步很简单但建议把每台设备的接口 IP、Loopback、Router-ID 规划表打印出来放在旁边后面配置 OSPF 区域或者 IS-IS 网络实体名称时直接对照能省很多排查时间。配置完成后先测试物理连通性再进入协议配置可以避免把“物理链路不通”误判成“协议配置错误”。用display ip interface brief检查接口状态再用ping验证直连网段两端互通确认没问题了再往下走。2. OSPF 高级特性实验特殊区域与路由控制2.1 先看默认行为LSA 是怎么传递的在改特殊区域之前先把标准多区域 OSPF 跑起来。R1、R2、R4 在 Area 0R3 在 Area 1配置命令类似ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 10.0.12.0 0.0.0.255 network 1.1.1.1 0.0.0.0 quitR4 上以 ASBR 身份引入外部路由。先在 R4 配置到达外部网络的静态路由ip route-static 192.168.100.0 255.255.255.0 10.0.45.5然后进入 OSPF 进程做路由引入ospf 1 router-id 4.4.4.4 import-route static默认情况下R3 的路由表里会出现 192.168.100.0/24说明外部路由可以通过 Type5 LSA 通告到所有非 Stub 区域。在 R1 和 R3 上执行display ospf lsdb都能看到 Type5 LSA。R3 处于 Area 1还会看到来自 R2 泛洪的 Type4 LSA它的作用是向其他区域通告 ASBR 的位置信息。这一步是整个实验的对照组后面的所有特殊区域变化都要和这里的结果做对比。2.2 把 Area 1 改成 Stub 区域现在把 Area 1 改成 Stub。两端的配置必须同时做R2 和 R3 都需要执行# R2 ospf 1 area 1 stub # R3 ospf 1 area 1 stub配置完成后在 R3 上执行display ip routing-table会发现 192.168.100.0/24 已经从路由表消失取而代之的是一条 OSPF 产生的默认路由 0.0.0.0/0下一跳指向 R2。再执行display ospf lsdbR3 的 LSDB 中只剩 Type1、Type2、Type3不再有 Type4 和 Type5。这就是 Stub 区域的行为把外部 LSA 挡在区域外ABR 自动生成默认路由让区域内路由器访问外部网络时走默认路由。这样做能显著减少区域内 LSDB 大小和路由表条目适合那些只需要访问外部网络、不需要知道外部明细路由的区域。这里有个很容易踩的坑Stub 区域内的所有路由器都必须配置 stub 关键字因为 OSPF 的 Hello 报文中带有 E-bitStub 区域的 E-bit 被置 0如果区域内有路由器没有配 stub两个路由器会发现 E-bit 不一致邻居状态会反复震荡甚至停在 ExStart/Exchange。真机上这个问题很容易被忽略排查命令是display ospf error能看到 LSA/E-bit 相关的错误计数。2.3 Totally Stub 与 NSSA 的对比在 Stub 的基础上如果 R2 上配置带 no-summary 的关键字就变成 Totally Stub# 只在 R2ABR上配置 ospf 1 area 1 stub no-summaryR2 作为 ABR 不再向 Area 1 通告任何 Type3 LSA只保留一条默认路由。此时 R3 的路由表会非常干净只剩本地直连、Loopback 和一条默认路由。可以看到从普通区域一路改到 Totally Stub路由表条目逐步缩减这正是特殊区域在真实网络中被用来优化路由表规模的原因。不过 Stub 和 Totally Stub 有个限制区域内不允许自己成为 ASBR 引入外部路由。如果某个区域需要既阻断外部区域路由又需要向 OSPF 域内通告自己的外部路由那就得用 NSSA。把 Area 1 从 Stub 改成 NSSA# R2 和 R3 都执行 ospf 1 area 1 nssa注意NSSA 区域如果没有额外配置ABR 不会自动生成默认路由需要根据实际需求决定是否在 R2 上补一句nssa default-route-advertise。R3 作为本区域内的 ASBR配置一条静态路由并引入ip route-static 172.16.1.0 255.255.255.0 NULL0 ospf 1 import-route static这时候查看 R3 的 LSDB会发现 172.16.1.0/24 以 Type7 LSA 的形式存在于 NSSA 区域R2 作为 NSSA ABR 会把 Type7 转换成 Type5发布到 Area 0。所以在 R1 和 R2 上看到的这条路由是 Type5而 R1 也能访问 R3 后面的模拟外部网段。整个过程的本质是NSSA 保留了区域阻断外部路由的能力同时给本区域提供了一条注入外部路由的“侧门”。四种区域的 LSA 容忍情况可以看下面这张表区域类型Type1/2Type3Type4/5Type7默认路由来源普通区域允许允许允许不允许无Stub允许允许不允许不允许ABR 自动生成Totally Stub允许仅默认路由不允许不允许ABR 自动生成NSSA允许允许不允许允许视配置Totally NSSA允许仅默认路由不允许允许视配置这张表建议看完就自己默写一遍默写的过程比背很多遍都有效因为默写时你会不断想“为什么这个区域允许 Type3”这类问题。2.4 区域间路由汇总与 OSPF 认证实验中还要验证 ABR 上的区域间汇总。R3 侧有两个 Loopback3.3.3.3/32 和 3.3.4.4/32如果它们都以 /32 前缀被通告进 Area 1那么 Area 0 里的路由器会学到两条明细路由。为了让它们聚合在 R2 上配置ospf 1 area 1 abr-summary 3.3.3.0 255.255.255.0配置后再到 R1 上执行display ip routing-table两条 /32 会变成一条 3.3.3.0/24。ABR 汇总的作用不止是减少路由条目还能隔离区域间拓扑变化带来的 SPF 重算范围这是它在骨干网中被大量使用的原因。外部路由汇总则是在 ASBR 上处理做法类似但命令位置在 OSPF 进程视图而不是 area 视图下实际用的时候别搞混。OSPF 认证部分我习惯单独做一个小实验防止和特殊区域产生干扰。在 R1 和 R2 之间的接口上启用认证# R1 和 R2 的互联接口都要配置 interface GigabitEthernet0/0/0 ospf authentication-mode hmac-sha256 1 cipher 123456两端密钥一致时邻居稳定在 Full 状态。故意把 R2 侧的密钥改成不一样的过几秒再执行display ospf peer邻居会直接消失或者停在 ExStart同时display ospf error里会有认证错误计数。做完这个破坏性实验再改回来印象会非常深。生产环境中 OSPF 认证主要用于防止非法设备加入路由域防止伪造的 LSA 污染链路状态数据库。3. IS-IS 高级特性实验路由渗透与认证3.1 Level-1 区域为什么学不到区域外明细IS-IS 的 Level 体系和 OSPF 的区域模型有一个很关键的差别OSPF 的区域边界在路由器上IS-IS 的区域边界在链路上。一台 Level-1-2 路由器同时维护 L1 和 L2 两个 LSDBLevel-1 路由器只维护本区域的链路状态数据库所以区域外部的明细路由默认不会进入 L1 区域。为了让 L1 区域能访问外部L1-2 路由器会在自己产生的 LSP 中设置 ATT 位L1 路由器通过 ATT 位生成一条指向最近 L1-2 路由器的默认路由。这就是为什么实验里 R6 作为 Level-1 路由器初期路由表里只有 6.6.6.6/32、10.0.68.0/24 和一条默认路由看不到 R8 的 8.8.8.8/32。在这个阶段执行display isis routeR6 的输出里可以明确看到缺省的 Level-1 路由但不会有 R8 Loopback 的明细。这个现象在真实网络设计中有意义L1 区域的规模通常膨胀得很快如果所有 L2 明细都注入 L1L1 路由器会不堪重负。但某些场景下区域内的路由器需要知道多个出口路径或者要精确选路只有默认路由不够用这时候就需要路由渗透。3.2 路由渗透配置与验证在 R7Level-1-2 路由器上配置路由渗透命令非常简短isis 1 import-route isis level-2 into level-1这条命令的本质是把 Level-2 路由表中的路由条目复制进 Level-1 的数据库并随之扩散到整个 Level-1 区域。执行完命令后在 R6 上再次执行display isis route会发现 8.8.8.8/32 已经以 Level-1 路由的形式出现开销是 R6 到 R7 的 Level-1 开销加上 R7 到 R8 的 Level-2 开销之和。这样 R6 不再依赖默认转发也能根据真实开销选择前往外部网络的路径。需要注意渗透是双向的如果希望 L1 的明细路由出现在 L2 区域默认情况下 L1-2 路由器就会把 L1 路由引入 L2这个行为不需要额外配置。在 HCIP-Datacom 的实验里建议分别验证“L1 学到 L2 明细”和“L2 学到 L1 明细”两种方向的结果理解上会更完整。IS-IS 路由渗透实际部署时要结合路由策略把需要渗透的路由过滤好否则区域边界上一大堆明细路由反而会造成路由表爆炸。3.3 IS-IS 认证的实现与验证IS-IS 的认证比 OSPF 略复杂一点因为认证可以作用在接口、区域和路由域三个层面。实验中先做接口认证在 R6 和 R7 的互联接口上配置# R6 和 R7 的互联接口 interface GigabitEthernet0/0/0 isis authentication-mode md5 123456两端配置保持一致后邻居状态恢复正常display isis peer能看到两台设备互为邻居。如果只在一端配置另一端没有配置邻居状态会一直停留在 Initializing因为收到的报文认证失败。这个现象和 OSPF 认证失败非常类似但排查命令是display isis error里面有 IS-IS 报文错误计数。区域认证和路由域认证在进程视图下配置。区域认证对应 Level-1路由域认证对应 Level-2isis 1 isis authentication-mode md5 123456 level-1 isis authentication-mode md5 123456 level-2这里要说明的是认证不是加密。IS-IS/OSPF 的认证只是用预共享密钥校验报文合法性防止伪造报文对报文的载荷内容没有任何隐蔽作用。抓包依然能看到完整的 IP 前缀和拓扑信息这一点在工程汇报时经常被误会提前搞清楚很有必要。在生产网络中区域认证和路由域认证一般会配合使用接口认证作为最后一道防线。4. 实操过程中的关键节点记录4.1 从零搭建到实验完成的完整流程这里把我实际重做这个实验的步骤按顺序整理出来每一步都有明确目的。第一步建拓扑和配 IP。地址表放在旁边每台设备的名字和 Loopback 先用表格固定好不然两台设备 Router-ID 冲突时半天查不出来。第二步先把 OSPF 基础多区域跑通。R1、R2、R4 在 Area 0R3 在 Area 1验证 R1 能学到 R3 的 LoopbackR3 能学到 R1 的 Loopback。这一步的目的是把“基础邻居和基本区域间路由”和“高级特性”分隔开。第三步在 R4 上引入外部静态路由。引入之前先记录一次 R3 的路由表引入之后再看一次确认外部路由已经通过 Type5 LSA 传到了普通区域。第四步逐步切换特殊区域。每次改动后都执行display ospf lsdb和display ip routing-table记录路由表和 LSDB 的变化最好把变化截图或者记到笔记里因为后续排查问题全靠这些对照数据。第五步做 ABR 汇总和认证。汇总前先在 R1 上记录两条 /32 明细汇总后再看聚合路由。认证则故意做一次密钥不一致的破坏性实验看完邻居 Down 的现象后改回来。第六步切换到 IS-IS 那组设备用同样的套路先跑通邻居和区域间路由再对比渗透前后 R6 的路由表最后做认证实验。4.2 关键验证命令与输出解读整理一份我常用的验证命令表基本覆盖了这两个实验的所有检查点命令用途重点看哪里display ospf peer brief查看 OSPF 邻居状态State 是否为 Fulldisplay ospf lsdb查看 OSPF 链路状态数据库常见的 LSA 类型是否出现display ospf routing查看 OSPF 路由表OSPF 路由条目和优先级display ip routing-table查看全局路由表明细路由是否变成默认路由display ospf error查看 OSPF 错误统计认证错误、区域不匹配计数display isis peer查看 IS-IS 邻居邻居状态是否为 Updisplay isis lsdb查看 IS-IS 链路状态数据库Level-1/Level-2 的 LSP 内容display isis route查看 IS-IS 路由表渗透前后明细路由是否出现display isis error查看 IS-IS 错误统计认证失败、重复系统 ID 等错误以display ospf peer brief为例如果状态不是 Full就要结合display ospf error看原因。邻居状态停在 ExStart/Exchange通常是 MTU 或认证问题反复在 Down 和 Init 之间跳通常是区域 ID 或掩码不匹配。IS-IS 邻居状态卡在 Initializing十有八九是认证没同步或者接口网络类型不一致。4.3 模拟器环境和真机的差异做 HCIP-Datacom 实验时用的模拟器版本不同部分细节会有差异。比如 NSSA 默认路由的行为有的版本里 ABR 会自动生成默认路由有的版本必须手动配置default-route-advertise才会生成遇到这种情况不要慌先在两台设备之间做一次详细的路由表和 LSDB 对比确定行为差异再调整配置。模拟器里重启设备后配置会丢做复杂实验之前先把配置保存到本地好习惯能救回不少时间。另外模拟器对某些编码格式的兼容性也偶尔出现意外比如修改密码后协变导致的邻居中断参数看起来都一样却迟迟不恢复这时候最简单可靠的方法是reset ospf process或reset isis all把协议进程复位一次。5. 常见问题与排查技巧实录下面是这些实验里我踩过、也见别人踩过的坑整理成速查表现象可能原因排查与解决Stub 区域里邻居一直无法建立区域内存在没配 stub 的路由器Hello E-bit 不一致确认区域内所有路由器都配 stub查看 display ospf errorNSSA 外部路由在主区域看不到ABR 未正确转换 Type7 为 Type5或者 ASBR 的路由策略过滤了路由在 ABR 上查看 LSDB 是否出现 Type5检查引入路由的 route-policyStub 区域缺省路由消失ABR 上的 stub 配置被误删或者存在 Area 0 的链路断开检查 ABR 上 area 配置、邻居状态重配 stub no-summaryABR 汇总后路由表中还是明细汇总命令配错区域或者汇总网段没覆盖实际前缀用 display current-configuration 确认 area 编号和汇总网段IS-IS L1 路由器学不到 L2 明细没有启用路由渗透在 L1-2 设备上配置 import-route isis level-2 into level-1IS-IS 邻居建立失败区域地址不一致、接口网络类型不一致、认证不匹配检查 NET 地址、接口 isis circuit-type、display isis errorOSPF 认证配置后邻居直接中断两端认证算法或密钥不一致统一算法和密码必要时 reset ospf process 重建邻居外部路由引入后普通区域内不可见区域内是特殊区域或者 ASBR 没生成 Type5换用 NSSA/Totally NSSA 区域或在 ABR 上配置默认路由这些问题的排查思路基本可以概括成一条链路先看邻居再看 LSDB再看路由表最后查策略。邻居起不来后面一切都是空谈邻居 Full 了但路由缺失就去看 LSDB 里缺哪种 LSALSDB 不缺查路由引入和过滤策略。别一上来就翻 route-policy那样容易把自己绕晕。我在第一次做实验时为了一个路由缺失问题翻了半小时策略最后发现是 OSPF 邻居在 Area 0 侧中断了这种本末倒置的教训值得记住。6. 写在最后一点个人体会实验做完我个人最深的体会是IGP 高级特性实验的价值不在“敲会几条命令”而在于每次都去用路由表和 LSDB 验证协议行为。做 Stub 实验如果不看 LSDB你永远不会真正理解 E-bit 的作用做 NSSA 实验如果不去对比 Type7 和 Type5 的转换位置下次遇到真实网络问题依旧茫然。建议备考的同学把每个实验从头到尾至少做两遍第一遍照着本文敲第二遍不看任何笔记凭理解和记忆重建整个环境。如果哪一步卡住了就回头翻这一章节对应的验证命令找问题会比闷头重敲快很多。另外做“破坏性实验”是理解协议最快的方式改错一次密码、误删一条汇总比顺利跑通十次都有价值。