)
OSPF特殊区域一、特殊区域概述OSPF划分区域可以减小区域内路由器LSDB的规模降低SPF计算的频率。然而对于一个位于自治系统边缘的非骨干区域即使划分为一个独立的区域这个区域的路由器仍然需要维护整个OSPF自治系统的路由信息——包括大量来自骨干区域和其他非骨干区域的路由甚至包括来自其他AS的外部路由。这对于位于网络边缘的低端路由器来说仍然是沉重的负担。因此OSPF定义了特殊区域Special Area特性通过限制特定类型LSA的传播进一步缩小区域内部路由器的LSDB规模降低路由表条目数量。四种特殊区域类型区域类型核心特点允许的LSA类型缺省路由来源Stub区域末节区域不允许4/5类LSA进入Type-1、Type-2、Type-3ABR自动注入Type-3缺省路由Totally Stub区域完全末节区域不允许3/4/5类LSA进入Type-1、Type-2ABR自动注入Type-3缺省路由NSSA区域非完全末节区域不允许4/5类LSA进入但允许内部引入外部路由Type-1、Type-2、Type-3、Type-7ABR自动注入Type-7缺省路由Totally NSSA区域完全非完全末节区域不允许3/4/5类LSA进入允许内部引入外部路由Type-1、Type-2、Type-7ABR自动注入Type-3缺省路由区域间 Type-7缺省路由外部二、Stub区域末节区域2.1 定义与作用Stub区域是一种特定的OSPF区域位于自治系统边界。Stub区域的ABR不会将自治系统外部路由4类LSA和5类LSA传播到Stub区域内从而大大减少区域内路由器的路由表规模以及路由信息传递的数量。对于位于自治系统边界的非骨干区域为了更多降低路由表规模和LSA数量可以将它们配置为Stub区域。简单理解Stub区域就像是小区里的一栋楼居民只需要知道通过小区大门可以到达外部世界而不需要知道通往外面具体有哪几条高速公路、每条高速公路的收费标准是多少。在Stub区域中只允许发布区域内路由和区域间路由由Type-3 LSA传递。不允许Type-4 LSAASBR-Summary-LSA和Type-5 LSAAS-External-LSA进入。2.2 缺省路由机制为了保证Stub区域内的路由器能够访问自治系统外部网络Stub区域的ABR会自动生成一条Type-3缺省路由目的地址0.0.0.0/0并通过Type-3 LSANetwork Summary LSA将其发布到Stub区域内。Stub区域中的所有非ABR路由器都通过这条缺省路由将流量指向ABR再由ABR转发到外部网络。缺省路由开销配置可以通过default-cost命令指定ABR发送到Stub区域的缺省路由开销缺省值为1。该命令只有在ABR上配置才起作用。2.3 配置注意事项根据华为官方文档配置Stub区域时需注意以下几点骨干区域Area 0不能配置成Stub区域。区域中的所有路由器都必须配置Stub区域属性。如果同一区域内的路由器部分配置了Stub属性、部分未配置因Hello报文中的E-bit不一致它们将无法建立OSPF邻居关系。Stub区域内不能存在ASBR即自治系统外部的路由不能在Stub区域内传播。虚连接不能穿过Stub区域。2.4 Stub区域配置命令# 进入系统视图[Huawei]system-view# 进入OSPF进程视图[Huawei]ospf1# 进入需要配置为Stub区域的区域视图[Huawei-ospf-1]area1# 将区域1配置为Stub区域[Huawei-ospf-1-area-0.0.0.1]stub# 可选配置发送到Stub区域的缺省路由开销默认为1[Huawei-ospf-1-area-0.0.0.1]default-cost10配置前提该区域内的所有路由器都必须执行stub命令确保区域类型配置一致。三、Totally Stub区域完全末节区域3.1 定义与作用Totally Stub区域是Stub区域的进一步优化版本。OSPF规定在Stub区域的ABR上配置stub命令时增加no-summary参数就可以禁止Type-3 LSA即区域间路由进入该区域从而进一步减少区域内的LSA数量和路由表规模。在Totally Stub区域中只允许发布区域内路由Type-1、Type-2。不允许Type-3、Type-4、Type-5 LSA进入。3.2 缺省路由机制与Stub区域类似Totally Stub区域的ABR会生成一条Type-3缺省路由0.0.0.0/0并通过Type-3 LSA发布到区域内但不会生成任何其他Type-3 LSA。区域内路由器通过这条缺省路由访问其他区域和外部网络。Stub vs Totally Stub的差异在Stub区域中区域内路由器可以看到其他区域的路由信息如Area 2中的具体网段但在Totally Stub区域中区域内路由器看到的只有一条缺省路由所有发往其他区域和外部网络的流量都通过这条缺省路由指向ABR。这进一步减少了路由表规模但牺牲了选路优化能力——区域内路由器无法区分流量到底去往哪个具体目标网络。3.3 Totally Stub区域配置命令# 进入系统视图[Huawei]system-view# 进入OSPF进程视图[Huawei]ospf1# 进入需要配置的区域视图[Huawei-ospf-1]area1# 将区域1配置为Totally Stub区域在ABR上增加no-summary参数[Huawei-ospf-1-area-0.0.0.1]stub no-summary配置关键点stub no-summary只需要在ABR上配置即可生效区域内其他路由器只需配置stub命令。该参数只用于Stub区域的ABR配置后ABR只向区域内发布一条缺省路由的Type-3 LSA不生成任何其他Type-3 LSA因此这种区域被称为Totally Stub区域。四、NSSA区域非完全末节区域4.1 NSSA的产生背景Stub区域和Totally Stub区域虽然极大地减少了LSA数量但有一个致命的限制——它们不允许引入外部路由。然而在实际网络中位于AS边缘的非骨干区域有时需要作为入口接入外部网络例如连接一个企业分支网络即需要在该区域内引入外部路由。由于OSPF规定Stub区域不能引入外部路由对于既需要引入外部路由又需要避免外部路由过多带来的资源消耗的场景Stub区域就无法满足要求了。此时可以将这些区域配置成NSSA区域。4.2 NSSA区域的定义NSSA区域是OSPF新增的一类特殊区域类型。NSSA区域和Stub区域有许多相似之处——两者都不传播来自OSPF网络其他区域的外部路由。两者的差别在于Stub区域不能引入外部路由而NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中同时又不会学习来自OSPF网络其他区域的外部路由。简单理解NSSA区域是一个“开了一个小口子的Stub区域”——它像一个只出不进的单向通道区域内的路由器可以主动引入外部路由向外“推”出但拒绝接收其他区域传来的外部路由拒绝“流入”。在NSSA区域中不允许Type-4和Type-5 LSA进入来自其他区域的外部路由不能进入允许区域内的ASBR引入外部路由引入的外部路由以Type-7 LSA的形式在NSSA区域内传播4.3 NSSA区域的核心机制Type-7 LSA七类LSAType-7 LSA是为了支持NSSA区域而新增的一种LSA类型用于在NSSA区域内描述引入的外部路由信息。Type-7 LSA具有以下特征由NSSA区域的ASBR产生扩散范围仅限于ASBR所在的NSSA区域不会传播到NSSA区域之外Type-7 LSA无法被NSSA区域以外的路由器识别Type-7 LSA转换为Type-5 LSA为了将NSSA区域引入的外部路由通告到OSPF网络的其他区域需要把Type-7 LSA转化为Type-5 LSA以便在整个OSPF网络中传播。NSSA区域的ABR收到Type-7 LSA时会有选择地将其转化为Type-5 LSA。转换机制的关键要素要素说明P-bitPropagate bitType-7 LSA中的传播位用来告知转换路由器该条LSA是否需要转换。FAForwarding Address转发地址。FA用来表示发往某个目的地址的报文将被转发到FA所指定的地址。转换条件只有P-bit置位且FA不为0的Type-7 LSA才能被转换为Type-5 LSA。转换路由器选举缺省情况下由NSSA区域中Router ID最大的ABR负责将Type-7 LSA转换为Type-5 LSA。如果需要指定固定的转换路由器可以在ABR上配置translator-always参数。Type-4 LSAType-7 LSA在NSSA区域内可独立存在无需Type-4 LSA辅助定位ASBR。NSSA区域的缺省路由NSSA区域中的缺省路由生成规则如下在ABR上无论路由表中是否存在缺省路由0.0.0.0/0都会自动产生缺省的Type-7 LSA到NSSA区域。在ASBR上只有当路由表中存在缺省路由0.0.0.0/0时才会产生Type-7 LSA缺省路由。多ABR场景的防环设计在NSSA区域中可能同时存在多个ABR。为防止多个ABR之间因缺省路由通告而产生路由环路这些ABR之间不会计算对方发布的缺省路由。4.4 NSSA区域配置注意事项根据华为官方文档配置NSSA区域时需注意以下事项骨干区域不能配置成NSSA区域。该区域中的所有路由器都必须配置NSSA区域属性。OSPF在Hello报文中使用N-bit来标识路由器支持的区域类型区域类型选择不一致的路由器不能建立OSPF邻居关系。虚连接不能穿过NSSA区域。虽然协议有要求但有些厂商实现时违背了这一原则在OSPF DD报文中也置位了N-bit。为了和这些厂商互通华为设备的实现方式是可以通过命令set-n-bit来兼容。4.5 NSSA区域配置命令# 进入系统视图[Huawei]system-view# 进入OSPF进程视图[Huawei]ospf1# 进入需要配置的区域视图[Huawei-ospf-1]area1# 将区域1配置为NSSA区域[Huawei-ospf-1-area-0.0.0.1]nssa# 可选指定该路由器作为Type-7转Type-5的固定转换路由器[Huawei-ospf-1-area-0.0.0.1]nssa translator-always# 可选在ASBR上配置产生缺省的Type-7 LSA到NSSA区域[Huawei-ospf-1-area-0.0.0.1]nssa default-route-advertise配置要求所有连接到NSSA区域的设备必须使用nssa命令将该区域配置成NSSA属性。配置或取消NSSA属性可能会触发区域更新导致邻居中断。五、Totally NSSA区域完全非完全末节区域5.1 定义与Totally Stub区域类似OSPF进一步定义了Totally NSSA区域——即在NSSA区域的基础上通过增加no-summary参数禁止Type-3 LSA区域间路由进入该区域。在Totally NSSA区域中只允许发布区域内路由Type-1、Type-2和Type-7 LSA引入的外部路由不允许Type-3、Type-4、Type-5 LSA进入ABR自动产生Type-3缺省路由用于访问其他区域和Type-7缺省路由用于访问外部网络5.2 Totally NSSA区域配置命令# 进入系统视图[Huawei]system-view# 进入OSPF进程视图[Huawei]ospf1# 进入需要配置的区域视图[Huawei-ospf-1]area1# 将区域1配置为Totally NSSA区域在ABR上增加no-summary参数[Huawei-ospf-1-area-0.0.0.1]nssa no-summary配置关键点nssa no-summary只需在ABR上配置区域内其他路由器配置nssa即可。六、各区域类型对比总结6.1 LSA支持情况速查表区域类型Type-1RouterType-2NetworkType-3SummaryType-4ASBR-SummaryType-5AS-ExternalType-7NSSA普通区域标准/骨干✓✓✓✓✓✗Stub区域✓✓✓✗✗✗Totally Stub区域✓✓✗✗✗✗NSSA区域✓✓✓✗✗✓Totally NSSA区域✓✓✗✗✗✓6.2 各区域类型特点速查表区域类型核心作用缺省路由类型适用场景Stub拒绝外部路由自动生成缺省路由指向ABRType-3缺省路由网络边缘无外部路由引入需求的区域Totally Stub进一步拒绝区域间路由只保留缺省路由Type-3缺省路由希望最大化精简路由表的边缘区域NSSA拒绝外部路由进入但允许内部引入外部路由Type-7缺省路由需要引入外部路由的边缘区域Totally NSSA拒绝区域间路由和外部路由进入允许内部引入外部路由Type-3缺省路由 Type-7缺省路由需引入外部路由且希望最大化精简路由表的边缘区域6.3 配置命令速查区域类型ABR配置命令区域内其他路由器配置命令Stub区域area 1 stubarea 1 stubTotally Stub区域area 1 stub no-summaryarea 1 stubNSSA区域area 1 nssaarea 1 nssaTotally NSSA区域area 1 nssa no-summaryarea 1 nssa七、关键技术细节补充7.1 区域类型一致性要求一个区域内所有路由器配置的区域类型必须保持一致。OSPF在Hello报文中使用N-bit来标识路由器支持的区域类型。E-bitN-bit区域类型00Stub区域01NSSA区域区域类型选择不一致的路由器不能建立OSPF邻居关系。7.2 缺省路由开销调整在特殊区域中可以通过default-cost命令调整ABR发送到Stub/NSSA区域的缺省路由的开销值。# 在ABR上配置指定发送到该区域的缺省路由开销[Huawei]ospf1[Huawei-ospf-1]area1[Huawei-ospf-1-area-0.0.0.1]default-cost207.3 特殊区域与多进程场景在实际网络部署中当运行OSPF多进程时不同OSPF进程之间的外部路由引入可能会涉及特殊区域边界。在运行OSPF多进程的场景中如果多个OSPF进程中使用default-route-advertise产生默认路由很容易导致路由环路。建议配置路由过滤避免再从这些OSPF进程学习默认路由。八、知识要点速查知识点核心要点特殊区域的作用通过限制LSA类型减小区域内部路由器的LSDB规模和路由表条目数Stub区域不允许4/5类LSA进入区域内所有路由器必须配置StubABR自动注入Type-3缺省路由Totally Stub区域在Stub基础上进一步禁止Type-3 LSA进入区域内只保留一条缺省路由Type-3NSSA区域不允许4/5类LSA进入但允许内部ASBR引入外部路由以Type-7 LSA形式存在ABR将Type-7转换为Type-5向外传播Type-7转Type-5转换路由器由Router ID最大的ABR担任转换条件P-bit1且FA≠0可通过translator-always固定转换器Totally NSSA区域在NSSA基础上进一步禁止Type-3 LSA进入ABR同时注入Type-3缺省路由和Type-7缺省路由特殊区域共同限制骨干区域不能配置为特殊区域区域内所有路由器配置必须一致虚连接不能穿越特殊区域缺省路由开销default-cost命令在ABR上调整缺省路由开销缺省值为1关键命令stub、stub no-summary、nssa、nssa no-summary、default-cost、nssa translator-always声明本文档主要基于华为官方技术文档和RFC标准进行编写具体部署和故障排查请以华为官方最新发布的产品文档为准。本文内容仅供参考学习实际网络部署时应结合具体设备型号和软件版本进行验证。