由于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泛洪到其他区域中去。示意图如下:
同样,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
配置实例:
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