原理概述
OSPF 协议定义了 Stub 区域和 Totally Stub 区域这两种特殊的非骨干区域,为的是精简 LSDB 中 LSA 的数量,同时也精简路由表中的路由条目数量,实现优化设备和网络性能的目的。根据定义, Stub 区域或 Totally Stub 区域中是不允许存在 ASBR 路由器的。
然而,在实际环境中,由于某种需要,有可能希望在 Stub 区域或 Totally Stub 区域引入外部路由。为此, OSPF 又定义了 NSSA 区域和 Totally NSSA 区域,以此来进一步增强 OSPF 协议的适应和扩展能力。
NSSA 区域或 Totally NSSA 区域可以将外部路由以 Type-7 LSA ( NSSA LSA )的方式引进本区域,这些 Type -7 LSA 将在本区域的 ABR 路由器上被转换为 Type -5 LSA ( AS External LSA )并泛洪到其他 OSPF 区域中。 Type -7 LSA 只会出现在 NSSA 区域或 Totally NSSA 区域中。
在其他方面, NSSA 区域和 Totally NSSA 区域是与 Stub 区域和 Totally Stub 区域完全一样的。 NSSA 区域不允许 Type-4和 Type-5 LSA 进入,该区域会通过 Type-3 LSA 所表示的缺省路由访问 AS 外部目的地。 Totally NSSA 区域不仅不允许 Type -4和 Type -5 LSA 进入,同时也不允许 Type-3 LSA 进入,只允许表示缺省路由的 Type -3 LSA 进入,并根据缺省路由来访问该区域以外的任何目的地。
实验目的
理解 NSSA 区域和 Totally NSSA 区域的作用与区别
掌握 NSSA 区域和 Totally NSSA 区域的配置方法
掌握修改 NSSA 区域缺省路由开销值的方法
实验内容
实验拓扑如图所示。本实验模拟了一个企业网络场景,路由器R1、R2、R3为企业总部网络路由器,R4为企业的分支机构的路由器。R1与R2、R1与R3之间的链路位于区域0,R4与R2、R4与R3之间的链路位于区域1。R1的所有 Loopback 接口用来模拟企业总部的非 OSPF 网络,R4的所有 Loopback 接口用来模拟企业分支机构的非 OSPF 网络。网络需求是:全网互通,且分支机构在访问总部网络时优先使用经由R2的路径,并尽量精简 LSDB 和路由表。
实验拓扑
1.基本配置
根据拓扑图进行相应的基本配置,并使用ping命令检测R1与R2之间的连通性。
其余直连网段的连通性测试过程在此省略。
2.配置OSPF及路由引入
在每台路由器上配置 OSPF 协议,其中R1与R2、R1与R3之间的链路属于区域0,R4与R2、R4与R3之间的链路属于区域1,R1和R4上所有 Loopback 接口都属于外部网络。如果采取引入直连路由的方式来引入 Loopback 接口的路由,将会导致R1、R4上所有的直连网段的路由全部被引入进来,在查看 LSDB 数据库时会发现R1和R4的所有直连网段路由都将作为 Type-5 LSA 出现在 LSDB 中。因此,最好的方法是在R1和R4路由器上利用 Route- Policy 将 Loopback 0和 Loopback 1接口引入到 OSPF 网络中。
[r1]acl 2000
[r1-acl-basic-2000]rule 5 permit so 10.0.1.1 0.0.0.0
[r1-acl-basic-2000]rule 10 permit so 10.0.11.11 0.0.0.0
[r1-acl-basic-2000]q
[r1]route-policy 10 permit node 10
[r1-route-policy]if-match acl 2000
[r1-route-policy]q
[r1]ospf 10 router-id 10.0.1.1
[r1-ospf-10]import-route direct route-policy 10
[r1-ospf-10]area 0
[r1-ospf-10-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[r1-ospf-10-area-0.0.0.0]network 10.0.13.0 0.0.0.255
[r1-ospf-10-area-0.0.0.0]q[r2]ospf 10 router-id 10.0.2.2
[r2-ospf-10]area 0
[r2-ospf-10-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[r2-ospf-10-area-0.0.0.0]network 10.0.13.0 0.0.0.255[r2-ospf-10]area 1
[r2-ospf-10-area-0.0.0.1]network 10.0.24.0 0.0.0.255
[r2-ospf-10-area-0.0.0.1]q
[r3]ospf 10 router-id 10.0.3.3
[r3-ospf-10]area 0
[r3-ospf-10-area-0.0.0.0]net 10.0.3.3 0.0.0.0
[r3-ospf-10-area-0.0.0.0]net 10.0.13.3 0.0.0.255
[r3-ospf-10-area-0.0.0.0]area 1
[r3-ospf-10-area-0.0.0.1]net 10.0.34.0 0.0.0.255
[r4]acl 2000
[r4-acl-basic-2000]rule 5 permit source 10.0.4.4 0.0.0.0
[r4-acl-basic-2000]rule 10 permit source 10.0.44.44 0.0.0.0
[r4-acl-basic-2000]q
[r4]route-policy 10 permit node 10
[r4-route-policy]if-match acl 2000
[r4-route-policy]q
[r4]ospf 10 router-id 10.0.4.4
[r4-ospf-10]import-route direct route-policy 10
[r4-ospf-10]area 1
[r4-ospf-10-area-0.0.0.1]network 10.0.24.0 0.0.0.255
[r4-ospf-10-area-0.0.0.1]network 10.0.34.0 0.0.0.255
配置完成后,查看R1的LSDB。
可以看到, RI 的 LSDB 中有4条 Type-5 LSA ( External LSA ),同时还有两条 LinkState ID 为10.0.4.4、通告路由器分别为R2和R3的 Type-4 LSA ( Sum- Asbr LSA )。
查看R4的 LSDB 。
可以看到,R4的 LSDB 中也有4条 Type-5 LSA ,同时还有两条 LinkState ID 为10.0.1.1、通告路由器分别为R2和R3的 Type-4 LSA 。
查看R1的路由表。
可以看到,R1已经接收到了外部路由10.0.4.4/32和10.0.44.44/32。
查看R4的路由表。
可以看到,R4也已经接收到了外部路由10.0.1.1/32和10.0.11.11/32。
3.配置NSSA和Totally NSSA区域。
目前,企业内部的网络以及企业总部和企业分支的非 OSPF 网络都实现了互通。为了减小区域1内 LSDB 的规模,管理员决定将区域1配置为 OSPF 的特殊区域。由于区域1存在 ASBR ,如果配置为 Stub 区域,则将导致与外部网络无法正常通信,因此决定配置为 NSSA 区域。注意,在配置 NSSA 区域时,需要将区域内的所有路由器都配置为 NSSA 区域路由器,否则路由器之间无法形成邻居关系。
[r2]ospf 10
[r2-ospf-10]area 1
[r2-ospf-10-area-0.0.0.1]nssa[r3]ospf 10
[r3-ospf-10]area 1
[r3-ospf-10-area-0.0.0.1]nssa[r4]ospf 10
[r4-ospf-10]area 1
[r4-ospf-10-area-0.0.0.1]nssa
配置完成后,查看R4的LSDB。
可以看到,R4的 LSDB 中已经没有任何 Type -4 LSA 及 Type-5 LSA ,但是出现了两条 LinkState ID 为0.0.0.0的 Type-7 LSA 。R4自己引入的外部路由也生成了两条 LinkState ID 分别为10.0.4.4和10.0.44.44的 Type-7 LSA ,但并未生成 Type-5 LSA 。与原来相比,现在 LSDB 中 LSA 的数量得到了明显减少。
查看R4的路由表。
可以看到,R4的路由表中出现了类型为 O_NSSA 的缺省路由,它代替了去往10.0.1.1/32和10.0.11.11/32的明细路由,且有两个下一跳,处于负载均衡状态。
使用 nssa no-summary 命令还可以进一步阻止 Type-3 LSA 泛洪到 NSSA 区域1,使之成为一个 Totally NSSA 区域。
[r2]ospf 10
[r2-ospf-10]area 1
[r2-ospf-10-area-0.0.0.1]nssa no-summary[r3]ospf 10
[r3-ospf-10]area 1
[r3-ospf-10-area-0.0.0.1]nssa no-summary
配置完成后,查看R4的LSDB。
可以看到,R4的 LSDB 中的 Type-3 LSA 也不存在了,取而代之的只是表示缺省路由的、分别由R2和R3通告的、 LinkState ID 为0.0.0.0的 Type-3 LSA ,这进一步减小了 LSDB 的规模。
查看R4的路由表。
观察发现,R4的路由表中原来的两条由 Type -7 LSA 生成的类型为 O _ NSSA 的缺省路由被两条由 Type-3 LSA 生成的类型为 OSPF 的缺省路由代替了,这也说明了后者的路由优先级高于前者。
4.修改 NSSA 区域缺省路由开销值
目前,R4的路由表中拥有两条开销值均为2的、下一跳分别为R2和R3的缺省路由,所以这是一种负载均衡的状态。新的需求是:R4应优先使用经由R2的路径,同时以经由R3的路径作为备份。满足这一需求的方法是:增大R3向区域1通告的 LinkState ID 为0.0.0.0的 Type-3 LSA 的开销值。
[r3]ospf 10
[r3-ospf-10]area 1
[r3-ospf-10-area-0.0.0.1]default-cost 10
配置完成后,查看R4的 LSDB 。
可以看到,由R3通告的、 LinkState ID 为0.0.0.0的 Type-3 LSA 的开销值变为了10,R3通告的、 LinkState ID 为0.0.0.0的 Type-7 LSA 的开销值未发生改变。
查看R4的路由表。
可以看到,路由表中现在只有一条下一跳指向了R2的缺省路由了,原来的下一跳指向R3的缺省路由已经消失了。