由于OSPF网络中末梢区域不允许存在ASBR,所以在一台属于末梢区域的路由器上配置重分发到OSPF区域是无法实现的。
在重分发路由时,如果路由器所属区域类型是末梢区域,会有相应的提示出现,一定要注意观察,以免重分发路由失败,提示如下:

Mar  1 00:06:58.555: %OSPF-4-ASBR_WITHOUT_VALID_AREA:
Router is currently an ASBR while having only one area which is a stub area

解决方法有两个,一是在末梢区域中的每台路由器使用命令no area 1 stub将末梢区域更改为标准区域,但是,有可能出现的情况是,在这个区域中的路由器性能比较差,如果改为标准区域,那么可能会导致路由器的内存、CPU等资源占用率较高,从而导致转发缓慢或出现网络故障,那么,就需要将该区域配置为非纯末梢区域(NSSA)。

非末梢区域允许外部路由通告到OSPF AS外部,而同时保留AS其余部分的末梢区域特征,为了做到这一点,在NSSA区域内的ASBR用始发类型7的LSA来通告那些外部的目的网络。这些NSSA区域外部的LSA将在整个NSSA区域中进行泛洪,但是会在ABR路由器的地方被阻塞。

NSSA外部LSA通告几乎和外部LSA通告是相同的。只是不像AS外部LSA通告那样在整个OSPF AS中进行泛洪,NSSA外部LSA通告仅仅在始发这个NSSA外部LSA通告的非纯末梢区域内部进行泛洪,NSSA区域中的ABR路由器可以将LSA7通告转换为LSA5,并且将LSA泛洪到其他区域中去。示意图如下:
Cisco路由器的OSPF协议高级配置之“NSSA详解”_第1张图片
同样,NSSA重分发到OSPF中的路由器也是两种类型,在NSSA区域的路由表中显示为N1和N2,当其经过ABR转换成为LSA5通告后,N1转换为E1,N2转换为E2。

在NSSA区域的路由器上查看路由表,重分发的路由条目显示如下:
O N2 5.0.0.0/8 [110/20] via 40.0.0.1, 00:08:22, FastEthernet3/0

经过ABR转换后,在其他区域显示的重分发路由条目如下:
O E2 5.0.0.0/8 [110/20] via 30.0.0.1, 00:23:05, FastEthernet1/0

NSSA的配置很简单,在需要配置的区域内的每个路由器上进入OSPF,执行area 区域ID nssa即可配置为NSSA区域,但是NSSA区域与其他区域重分发路由的通信还是有问题,需要进一步配置,才可正常通信。

因为当使用area 区域号 nssa命令后,ABR并不通告一条指向ABR的类型3的LSA默认路由,而NSSA区域中又无法泛洪LSA4和LSA5通告,导致NSSA区域中的路由器无法获得从其他区域重分发的路由条目,最终导致NSSA区域与其他区域不能通信,这时可以使用以下命令生成LSA3的默认路由:
area 区域ID default-information-originate

area 区域ID nssa no-summary

配置实例:

拓扑图如下:Cisco路由器的OSPF协议高级配置之“NSSA详解”_第2张图片
接口地址配置命令省略。

R1的配置如下:

R1(config)#router ospf 1
R1(config-router)#net 1.1.1.1 0.0.0.0 area 1
R1(config-router)#net 10.0.0.0 0.255.255.255 area 1
R1(config-router)#area 1 nssa                        #配置area 1 为NSSA区域

R2的配置如下:

R2(config)#router ospf 1
R2(config-router)#net 2.2.2.2 0.0.0.0 area 0
R2(config-router)#net 10.0.0.0 0.255.255.255 area 1
R2(config-router)#net 20.0.0.0 0.255.255.255 area 0
R2(config-router)#area 1 nssa                           #配置area 1 为NSSA区域

R3的配置如下:

R3(config)#router ospf 1
R3(config-router)#net 20.0.0.0 0.255.255.255 area 0
R3(config-router)#net 3.3.3.3 0.0.0.0 area 0
R3(config-router)#redistribute rip subnets                      #注入RIP路由信息
R3(config)#router rip
R3(config-router)#ver 2       
R3(config-router)#net 30.0.0.0
R3(config-router)#no auto-summary                     #RIP v2默认情况下在主网络边界
上进行路由汇总,因此需要关闭路由汇总功能。
R3(config-router)#redistribute ospf 1 metric 10              #注入OSPF路由信息。

R4的配置如下:

R4(config)#router rip
R4(config-router)#ver 2
R4(config-router)#net 4.4.4.4
R4(config-router)#net 30.0.0.0

此时 按照正常的配置已经完毕了,但是呢,查看NSSA区域中R1路由器的路由表,并没有到达R4路由器的路由条目信息:

R1#show ip route
                                     .............................

     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
     2.0.0.0/32 is subnetted, 1 subnets
O IA    2.2.2.2 [110/2] via 10.0.0.2, 00:05:42, FastEthernet0/0
     3.0.0.0/32 is subnetted, 1 subnets
O IA    3.3.3.3 [110/3] via 10.0.0.2, 00:05:42, FastEthernet0/0
O IA 20.0.0.0/8 [110/2] via 10.0.0.2, 00:05:42, FastEthernet0/0
C    10.0.0.0/8 is directly connected, FastEthernet0/0

这时我们需要使用命令在area1 的路由器上生成LSA3的默认路由。

R1(config)#router ospf 1
R1(config-router)#area 1 nssa default-information-originate 
R2(config)#router ospf 1
R2(config-router)#area 1 nssa default-information-originate

配置完成后就实现了全网互通,现在查看R1 和R4的路由条目信息分别如下:

R1

R1#show ip route
                               ....................

     1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
     2.0.0.0/32 is subnetted, 1 subnets
O IA    2.2.2.2 [110/2] via 10.0.0.2, 00:08:19, FastEthernet0/0
     3.0.0.0/32 is subnetted, 1 subnets
O IA    3.3.3.3 [110/3] via 10.0.0.2, 00:08:19, FastEthernet0/0
O IA 20.0.0.0/8 [110/2] via 10.0.0.2, 00:08:19, FastEthernet0/0
C    10.0.0.0/8 is directly connected, FastEthernet0/0
O*N2 0.0.0.0/0 [110/1] via 10.0.0.2, 00:08:09, FastEthernet0/0

R4:

R4#show ip route
                           .............................

     1.0.0.0/32 is subnetted, 1 subnets
R       1.1.1.1 [120/10] via 30.0.0.1, 00:00:04, FastEthernet0/0
     2.0.0.0/32 is subnetted, 1 subnets
R       2.2.2.2 [120/10] via 30.0.0.1, 00:00:04, FastEthernet0/0
     3.0.0.0/32 is subnetted, 1 subnets
R       3.3.3.3 [120/10] via 30.0.0.1, 00:00:04, FastEthernet0/0
     4.0.0.0/32 is subnetted, 1 subnets
C       4.4.4.4 is directly connected, Loopback0
R    20.0.0.0/8 [120/10] via 30.0.0.1, 00:00:04, FastEthernet0/0
R    10.0.0.0/8 [120/10] via 30.0.0.1, 00:00:06, FastEthernet0/0
C    30.0.0.0/8 is directly connected, FastEthernet0/0