资讯动态

OSPF特殊区域与路由汇总综合实验:Stub、NSSA、Totally Stub配置详解

发布时间:2026/10/22 15:28:06 来源:尧图企业网站定制
1. 实验背景与整体设计思路OSPF这个协议学网络的人都不陌生但真正能把特殊区域玩明白的人其实不多。我见过太多人背得出Stub、Totally Stub、NSSA、Totally NSSA这四个名词但一到eNSP里搭拓扑就懵了——LSA该不该出现、路由表里该有什么、ABR和ASBR分别做什么动作全乱套。这篇内容就是把我自己反复做这个综合实验的过程完整拆开从设计思路到每一步配置再到LSA类型的系统总结全部讲透。这个实验的核心目标很明确在一个多区域的OSPF网络中通过配置四种特殊区域来观察LSA的裁剪效果和路由表的变化同时结合路由汇总技术理解OSPF的优化手段。适合正在备考HCIA/HCIP的读者也适合工作中需要优化OSPF网络但一直没系统梳理过的从业者。eNSP这个模拟器虽然老但对于理解OSPF的LSA机制来说它是最直观的工具——你能实时看到LSDB的变化这比看任何教材都管用。为什么选eNSP而不是其他模拟器原因很简单eNSP对华为VRP的命令支持最完整特殊区域的配置命令和真实设备几乎一致而且抓包和LSDB查看都很方便。用GNS3或者EVE-NG当然也行但华为系的认证考试就是VRP系统用eNSP练手最贴近考试环境。整个实验的拓扑设计思路是这样的一个骨干区域Area 0挂三个非骨干区域——Area 1做成StubArea 2做成NSSAArea 3同时验证Totally Stub和Totally NSSA的效果。每个区域里放一台ABR连接骨干区域区域内部再放一台路由器模拟内部路由NSSA区域还需要一台ASBR引入外部路由。这样设计的好处是一台ABR上可以同时观察多种特殊区域的LSA过滤行为对比起来非常直观。这里有个关键点需要提前说清楚特殊区域的核心作用是减少LSDB规模和路由表条目但不同类型的特殊区域裁剪的LSA类型不一样。Stub区域会阻断Type 5 LSA外部路由但Type 3 LSA区域间路由还是正常泛洪的。Totally Stub更进一步连Type 3 LSA也阻断只保留一条默认路由。NSSA区域因为要引入外部路由所以不能完全阻断Type 5而是用Type 7 LSA在区域内部传递外部路由到了ABR再转换回Type 5。Totally NSSA则是NSSA的加强版同时阻断Type 3和Type 5Type 7在区域内有条件保留。理解了这些后面的配置就不会变成死记硬背了。2. 拓扑搭建与基础配置2.1 设备选型与拓扑规划在eNSP里搭建这个实验路由器选AR2220就够了性能足够跑OSPF多区域。拓扑结构我建议这样安排R1骨干区域核心路由器同时作为Area 1和Area 2的ABRR2Area 1内部路由器验证Stub区域效果R3Area 2内部路由器验证NSSA区域效果R4Area 2的ASBR引入外部静态路由R5Area 3的ABR验证Totally Stub和Totally NSSAR6Area 3内部路由器链路规划方面R1和R2之间用192.168.12.0/24网段R1和R3之间用192.168.13.0/24R3和R4之间用192.168.34.0/24R1和R5之间用192.168.15.0/24R5和R6之间用192.168.56.0/24。另外在R4上配置一个Loopback接口模拟外部路由比如10.4.4.4/32在R6上也配一个Loopback模拟区域内部路由。为什么要把Area 3单独拿出来做Totally Stub和Totally NSSA因为这两种区域的配置命令和Stub/NSSA只差一个关键字但效果差异很大放在同一个区域上切换验证最方便。你可以在R5上先配Totally Stub观察完效果后改成Totally NSSA对比LSDB的变化。2.2 基础OSPF配置与验证先把所有路由器的接口IP配好然后逐台开启OSPF。以R1为例system-view sysname R1 interface GigabitEthernet0/0/0 ip address 192.168.12.1 255.255.255.0 interface GigabitEthernet0/0/1 ip address 192.168.13.1 255.255.255.0 interface GigabitEthernet0/0/2 ip address 192.168.15.1 255.255.255.0 interface LoopBack0 ip address 1.1.1.1 255.255.255.255 quit ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 192.168.12.0 0.0.0.255 network 192.168.13.0 0.0.0.255 network 192.168.15.0 0.0.0.255 network 1.1.1.1 0.0.0.0R2的配置ospf 1 router-id 2.2.2.2 area 0.0.0.1 network 192.168.12.0 0.0.0.255 network 2.2.2.2 0.0.0.0R3的配置ospf 1 router-id 3.3.3.3 area 0.0.0.2 network 192.168.13.0 0.0.0.255 network 192.168.34.0 0.0.0.255 network 3.3.3.3 0.0.0.0R4的配置ospf 1 router-id 4.4.4.4 area 0.0.0.2 network 192.168.34.0 0.0.0.255 network 4.4.4.4 0.0.0.0R5的配置ospf 1 router-id 5.5.5.5 area 0.0.0.0 network 192.168.15.0 0.0.0.255 area 0.0.0.3 network 192.168.56.0 0.0.0.255 network 5.5.5.5 0.0.0.0R6的配置ospf 1 router-id 6.6.6.6 area 0.0.0.3 network 192.168.56.0 0.0.0.255 network 6.6.6.6 0.0.0.0配完之后在R1上执行display ospf peer brief确认邻居关系都到了FULL状态。然后在R2上display ip routing-table protocol ospf你应该能看到所有区域的路由包括R4上还没引入的外部路由现在还没有。这时候LSDB里Type 1、Type 2、Type 3 LSA都有Type 4和Type 5暂时没有因为还没有ASBR引入外部路由。注意eNSP里OSPF邻居建立有时候会比较慢如果卡在ExStart状态检查一下接口的MTU是否一致或者router-id有没有冲突。我遇到过好几次因为router-id重复导致邻居起不来的情况排查了半天才发现。2.3 引入外部路由制造Type 5 LSA在R4上配置一个静态路由然后引入到OSPF里ip route-static 10.4.4.0 255.255.255.0 NULL0 ospf 1 import-route static这时候R4就成了ASBR它会产生Type 5 LSA描述10.4.4.0/24这个外部路由。同时R3作为ABR会产生Type 4 LSA来描述如何到达ASBR。在R2上查看LSDBdisplay ospf lsdb你应该能看到Type 5 LSA出现了。这时候整个OSPF域内所有路由器都学到了10.4.4.0/24这条外部路由。这就是没有特殊区域时的状态——外部路由泛洪到整个域。3. 四种特殊区域的配置与效果验证3.1 Stub区域配置与LSA裁剪分析现在把Area 1配置成Stub区域。注意Stub区域的配置需要在区域内的所有路由器上做不能只在一台上配。R1上的配置ospf 1 area 0.0.0.1 stubR2上的配置ospf 1 area 0.0.0.1 stub配完之后在R2上查看LSDBdisplay ospf lsdb你会发现Type 5 LSA消失了Type 4 LSA也没有了。但是Type 3 LSA还在也就是说R2还是能学到其他区域的区域间路由。同时R2的路由表里会出现一条默认路由指向R1ABR。为什么Stub区域要阻断Type 4和Type 5因为Stub区域的定位是末梢区域它不需要知道外部路由所有去往外部的流量都通过ABR的默认路由走就行了。这样LSDB规模大大减小路由器的CPU和内存压力也降低了。但是Stub区域有一个限制它不能是骨干区域Area 0也不能有虚链路穿越。而且Stub区域内的路由器不能是ASBR因为ASBR需要引入外部路由而Stub区域不允许Type 5 LSA存在。实操心得配置Stub区域时如果只在一台路由器上配了stub另一台没配邻居关系会直接断掉。因为Hello包里的Stub标志位不匹配。这个坑我踩过当时排查了半天以为链路有问题后来才发现是区域配置不一致。3.2 Totally Stub区域配置与效果对比Totally Stub是在Stub的基础上让ABR进一步阻断Type 3 LSA。配置方法是在ABR上加上no-summary参数R1上的配置ospf 1 area 0.0.0.1 stub no-summaryR2上保持原来的stub配置不变。这时候在R2上再看LSDB你会发现Type 3 LSA也消失了整个LSDB里只剩下Type 1和Type 2 LSA。路由表里只有一条默认路由指向R1其他所有区域间路由和外部路由都没了。Totally Stub和Stub的区别就在于Stub区域内的路由器还能看到其他区域的明细路由而Totally Stub区域内的路由器只能看到一条默认路由。这样做的好处是进一步压缩了路由表规模适合那些只有一个出口的末梢区域。但是要注意no-summary只需要在ABR上配置区域内部路由器不需要配。如果你在R2上也配了stub no-summary虽然不会报错但没有任何实际意义因为R2不是ABR它不会产生Type 3 LSA。3.3 NSSA区域配置与Type 7 LSA转换NSSANot-So-Stubby Area的出现在于解决一个矛盾Stub区域不能引入外部路由但有些末梢区域确实需要引入少量外部路由。NSSA允许在区域内部引入外部路由用Type 7 LSA来传递到了ABR再转换回Type 5 LSA泛洪到其他区域。先把Area 2配置成NSSA。R1、R3、R4都要配R1ospf 1 area 0.0.0.2 nssaR3ospf 1 area 0.0.0.2 nssaR4ospf 1 area 0.0.0.2 nssa配完之后在R3上查看LSDB你会看到Type 7 LSA出现了描述的是10.4.4.0/24这条外部路由。同时Type 5 LSA在NSSA区域内被阻断了。R3作为ABR会把Type 7 LSA转换成Type 5 LSA然后泛洪到Area 0和其他区域。在R2Stub区域上查看路由表应该还是能学到10.4.4.0/24因为R1把Type 7转换成了Type 5然后泛洪到了Area 1。但是等等Area 1是Stub区域它应该阻断Type 5才对啊这里有个细节Stub区域阻断的是从区域外进来的Type 5 LSA但R1作为ABR它会在Area 1内产生一条默认路由所以R2是通过默认路由到达10.4.4.0/24的而不是通过明细的Type 5 LSA。注意NSSA区域的ABR在做Type 7到Type 5的转换时需要检查P-bit位。如果Type 7 LSA的P-bit被置位ABR才会做转换。默认情况下引入的外部路由P-bit是置位的。如果你在ASBR上配置了nssa suppress-forwarding-address可能会影响转换行为这个在排查问题时要注意。3.4 Totally NSSA区域配置与综合对比Totally NSSA是在NSSA的基础上让ABR阻断Type 3 LSA。配置方法是在ABR上加no-summaryR1ospf 1 area 0.0.0.2 nssa no-summaryR3和R4保持nssa不变。这时候在R3上查看LSDBType 3 LSA消失了但Type 7 LSA还在因为R3自己是ABR它需要把Type 7转成Type 5发出去。R4上查看LSDBType 3和Type 5都没了只有Type 1、Type 2和Type 7 LSA。路由表里会出现一条默认路由指向R3。Totally NSSA和Totally Stub的区别在于Totally NSSA区域内部还可以有ASBR引入外部路由用Type 7传递而Totally Stub区域完全不能有ASBR。为了更直观地对比四种特殊区域的效果我整理了一个表格区域类型阻断的LSA类型保留的LSA类型默认路由能否引入外部路由StubType 4, Type 5Type 1, 2, 3有ABR产生不能Totally StubType 3, 4, 5Type 1, 2有ABR产生不能NSSAType 4, Type 5Type 1, 2, 3, 7有ABR产生能用Type 7Totally NSSAType 3, 4, 5Type 1, 2, 7有ABR产生能用Type 7这个表格建议背下来考试和实际工作中都用得上。4. OSPF路由汇总与优化技术4.1 区域间路由汇总配置特殊区域解决的是LSDB规模问题路由汇总解决的是路由表条目问题。两者配合使用效果最好。区域间汇总是在ABR上配置的。以R1为例它作为Area 1和Area 2的ABR可以把Area 1内部的路由汇总后发布到Area 0。假设Area 1内部有192.168.12.0/24和192.168.13.0/24两条路由可以在R1上这样配置ospf 1 area 0.0.0.1 abr-summary 192.168.12.0 255.255.254.0这条命令的意思是把192.168.12.0/24和192.168.13.0/24汇总成192.168.12.0/23发布出去。注意abr-summary是在产生Type 3 LSA的ABR上配置的而且只对区域间路由生效。汇总的好处很明显减少Type 3 LSA的数量降低其他区域路由器的路由表规模。但是也有一个风险如果汇总范围里包含了不存在的网段可能会导致路由黑洞。比如你汇总了192.168.12.0/23但实际只有192.168.12.0/24存在那么去往192.168.13.0/24的流量会被丢弃。所以汇总之前一定要确认网段范围。4.2 外部路由汇总配置外部路由汇总是在ASBR上配置的针对的是Type 5 LSA。在R4上如果引入了多条外部路由可以这样汇总ospf 1 asbr-summary 10.4.0.0 255.255.0.0这条命令会把10.4.x.x的所有外部路由汇总成10.4.0.0/16。注意asbr-summary只对引入的外部路由生效对区域间路由无效。外部路由汇总的一个关键点是它只影响Type 5 LSA的发布不影响本地路由表。也就是说R4上还是能看到明细的外部路由但其他路由器只能看到汇总后的路由。4.3 特殊区域与汇总的配合使用在实际网络中特殊区域和路由汇总通常是配合使用的。比如一个大型企业网络骨干区域下面挂了很多末梢区域每个末梢区域内部又有大量子网。这时候可以把末梢区域配置成Totally Stub或Totally NSSA减少LSDB规模在ABR上配置区域间汇总减少Type 3 LSA数量在ASBR上配置外部路由汇总减少Type 5 LSA数量这样三层优化下来整个OSPF域的LSDB和路由表都能控制在合理范围内。但是要注意一个顺序问题先配特殊区域再配汇总。因为特殊区域会影响LSA的泛洪范围如果先配了汇总再改特殊区域可能会导致汇总路由丢失。我一般习惯先把区域类型定下来再逐步加汇总。实操心得在eNSP里做汇总实验时记得在汇总之后用display ospf lsdb brief查看LSA数量的变化。我实测下来一个包含20条明细路由的区域汇总成一条之后Type 3 LSA数量从20降到1效果非常明显。5. LSA类型系统总结与速查5.1 六种LSA类型的详细解析OSPF的LSA类型是理解特殊区域的基础这里我把六种常见LSA做一个系统梳理Type 1 LSARouter LSA每台路由器都会产生描述自己的链路状态和开销。只在所属区域内泛洪不会跨区域。Type 1 LSA是OSPF计算SPF树的基础。Type 2 LSANetwork LSA由DR指定路由器产生描述广播网络上的路由器列表。也只在所属区域内泛洪。如果网络类型是点到点就不会有Type 2 LSA。Type 3 LSASummary LSA由ABR产生描述区域间的路由。ABR把某个区域的Type 1和Type 2 LSA转换成Type 3 LSA发布到其他区域。Type 3 LSA是特殊区域裁剪的主要对象之一。Type 4 LSAASBR Summary LSA由ABR产生描述如何到达ASBR。注意它描述的是ASBR的位置而不是外部路由本身。Stub和NSSA区域会阻断Type 4 LSA。Type 5 LSAAS External LSA由ASBR产生描述外部路由。Type 5 LSA会泛洪到整个OSPF域除了Stub和NSSA区域。它是特殊区域裁剪的核心对象。Type 7 LSANSSA External LSA由NSSA区域内的ASBR产生描述外部路由。Type 7 LSA只在NSSA区域内泛洪到了ABR会被转换成Type 5 LSA。这六种LSA的关系可以用一句话概括Type 1和Type 2是区域内的本地信息Type 3和Type 4是区域间的导航信息Type 5和Type 7是外部引入的外来信息。特殊区域的作用就是有选择地过滤这些信息。5.2 特殊区域对LSA的过滤规则速查为了便于排查问题我整理了一个LSA过滤速查表LSA类型普通区域StubTotally StubNSSATotally NSSAType 1有有有有有Type 2有有有有有Type 3有有无有无Type 4有无无无无Type 5有无无无无Type 7无无无有有这个表格在排查为什么路由丢了这类问题时特别有用。比如你在Stub区域里发现没有外部路由一查表格就知道Type 5被阻断了这是正常现象。5.3 LSA与路由表的对应关系很多初学者搞不清楚LSDB和路由表的关系。简单来说LSDB是原始素材路由表是计算结果。路由器把LSDB里的LSA通过SPF算法计算得出最优路径然后放入路由表。具体对应关系是这样的Type 1和Type 2 LSA计算出区域内部路由O路由Type 3 LSA计算出区域间路由O IA路由Type 5和Type 7 LSA计算出外部路由O E1和O E2路由在特殊区域里由于某些LSA被过滤了对应的路由类型也就不会出现在路由表里。比如Totally Stub区域里你只能看到O路由和一条默认路由看不到O IA和O E2路由。注意默认路由在特殊区域里是通过Type 3 LSA产生的但它的网络地址是0.0.0.0/0。有些人在LSDB里找不到0.0.0.0/0的Type 3 LSA以为默认路由是凭空产生的其实不是。ABR会产生一条描述0.0.0.0/0的Type 3 LSA只是显示的时候可能不太显眼。6. 常见问题排查与避坑指南6.1 邻居关系建立失败排查特殊区域实验里邻居起不来是最常见的问题。排查思路按这个顺序来第一检查区域ID是否一致。display ospf peer看邻居状态如果一直是Down先确认两边的区域号是不是一样。第二检查Stub/NSSA标志位是否匹配。如果一边配了stub另一边没配Hello包里的Option字段不匹配邻居会卡在ExStart或者直接Down。这个用display ospf interface可以看到接口的Stub标志。第三检查router-id是否冲突。eNSP里如果两台路由器用了同一个router-id邻居关系会不稳定。display ospf brief可以查看当前router-id。第四检查MTU是否一致。如果MTU不匹配邻居会卡在ExStart状态。可以在接口下用ospf mtu-enable来启用MTU检查或者直接用undo ospf mtu-enable关闭。6.2 特殊区域配置后路由丢失排查配完特殊区域发现路由丢了先别慌按这个流程排查第一步确认区域类型配置是否一致。Stub区域要求区域内所有路由器都配stubNSSA也一样。如果有一台没配邻居会断路由自然就丢了。第二步确认ABR上的no-summary是否配置正确。Totally Stub和Totally NSSA的no-summary只在ABR上配区域内部路由器不需要配。第三步查看LSDB确认LSA是否被正确过滤。display ospf lsdb看看Type 3、Type 5还在不在。如果该过滤的没过滤说明配置没生效。第四步检查默认路由是否产生。特殊区域里ABR应该产生一条默认路由。如果路由表里没有默认路由检查ABR的配置。6.3 Type 7 LSA转换失败排查NSSA区域里Type 7转Type 5失败是比较隐蔽的问题。排查要点第一确认P-bit位是否置位。display ospf lsdb nssa可以看到Type 7 LSA的P-bit。如果P-bit是0ABR不会做转换。第二确认ABR是否有转换权限。默认情况下ABR会自动转换但如果配置了nssa suppress-forwarding-address可能会影响转换。第三确认Area 0是否可达。如果ABR和Area 0的邻居断了Type 7 LSA无法转换成Type 5泛洪出去。6.4 路由汇总不生效排查汇总配了但没效果常见原因有abr-summary配在了非ABR上不生效asbr-summary配在了非ASBR上不生效汇总的网段范围不对包含了不存在的子网汇总命令下的not-advertise参数被误配导致汇总路由被抑制排查时先用display ospf abr-summary或display ospf asbr-summary查看汇总配置是否生效再用display ospf lsdb查看汇总后的LSA是否存在。避坑技巧在eNSP里做汇总实验时建议先reset ospf process重启OSPF进程让LSA重新生成。有时候LSA老化时间没到旧的明细LSA还在LSDB里会干扰观察。7. 实验扩展与进阶思考7.1 虚链路与特殊区域的冲突处理虚链路是OSPF里一个比较特殊的存在。如果你的网络里有虚链路穿越某个区域那个区域就不能配置成Stub或NSSA。因为虚链路需要Type 3 LSA来建立而Totally Stub会阻断Type 3 LSA导致虚链路无法建立。如果确实需要虚链路又想让区域简化可以考虑把虚链路穿越的区域配置成普通区域然后在其他末梢区域上做特殊区域优化。或者重新设计拓扑避免虚链路穿越需要特殊化的区域。7.2 多ABR场景下的特殊区域设计当一个区域有多个ABR时特殊区域的配置需要更加小心。比如一个Stub区域有两个ABR那么两个ABR都会产生默认路由区域内部路由器会看到两条默认路由。这时候可以通过调整ABR的接口开销来控制默认路由的优先级。另外多ABR场景下Type 3 LSA的汇总需要在每个ABR上分别配置不能只配一台。否则从不同ABR学到的路由可能不一致导致次优路径。7.3 特殊区域在实际网络中的应用建议在实际企业网络中特殊区域的使用要结合网络规模来定。小型网络路由器少于10台其实不太需要特殊区域因为LSDB规模本来就不大。中型网络10-50台可以考虑在末梢区域使用Stub或NSSA。大型网络50台以上建议全面启用特殊区域和路由汇总。但是要注意特殊区域会增加配置复杂度排查问题的难度也会上升。我个人的经验是如果LSDB规模没有超过路由器的处理能力不要为了优化而优化。特殊区域应该是解决实际问题的工具而不是炫技的手段。7.4 从HCIA到HCIP的实验进阶路径这个实验覆盖了HCIA和HCIP的核心考点。如果你正在备考建议按这个顺序练习先做单区域的OSPF基础实验熟悉邻居建立和LSA泛洪再做多区域实验理解ABR和Type 3 LSA然后做外部路由引入实验理解ASBR和Type 5 LSA接着做特殊区域实验逐个验证Stub、Totally Stub、NSSA、Totally NSSA最后做汇总实验把区域间汇总和外部汇总都练一遍每做完一个实验都用display ospf lsdb和display ip routing-table protocol ospf对比观察把LSA变化和路由表变化对应起来。这样练下来OSPF的LSA机制就真正刻在脑子里了。我在实际工作中遇到过好几次OSPF网络故障最后排查下来都是特殊区域配置不一致导致的。有一次是两个ABR上一边配了nssa no-summary另一边只配了nssa结果区域内部路由器从两个ABR学到的路由不一致出现了间歇性丢包。这种问题在实验环境里多练几次形成肌肉记忆到现网排查时就能快速定位。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑