缺省路由
说到缺省路由,很多人认为通过手工静态配置的目的网段和掩码都是0的路由就是缺省路由。其实不然,除了上述缺省路由之外,很多情况下通过动态路由协议也可以生成缺省路由。缺省路由以其简单易用的特点在网络中有大量的应用,特别是应用在中小型企业网络的出口路由器上。应用缺省路由可以大大减小路由表项的规模,减小维护压力。然而缺省路由又是网络规划的难点,特别是当使用动态路由协产生缺省路由的时候, 一不小心就会产生次优路由或者环路,业务上表现为延时大或者转发不通的现象。所以很多网络管理员对缺省路由总有一种想用又不敢放手去用的心理状态。这里编者详细总结一下使用缺省路由的各种注意事项,解答读者的内心困扰。
初识缺省路由
什么是缺省路由
举个最常见的例子,我们在PC机上配置的默认网关就属于一种缺省路由, 如果报文的目的地址不能与路由表的任何目的地址相匹配,那么该报文将选取缺省路由转发。一般情况下,对于常用的PC机,报文转发的时候直接转发至默认网关所指定的IP地址。
缺省路由是一种特殊的路由,在路由表中缺省路由以目的网络为0.0.0.0、子网掩码为0.0.0.0的形式出现。例如ip route static 0.0.0.0 16 10.1.1.1这条路由就不属于缺省路由,因为他的网络掩码是16,而缺省路由要求目的网段和掩码都必须是0.0.0.0。
缺省路由可以通过手工方式静态配置,也可以通过动态路由协议生成(如OSPF、ISIS等),所以确切的说缺省路由不属于静态路由。如下面的路由表项即分别为静态配置的缺省路由和通过OSPF协议动态生成的缺省路由。
<RTA>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 1 Routes : 2
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 60 0 RD 10.1.1.2 GigabitEthernet2/2/21
<RTB>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 18 Routes : 21
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 1 D 192.168.2.1 GigabitEthernet0/0/0
使用缺省路由有什么好处
使用缺省路由可以大大减小路由表项的规模,减少维护压力,降低对设备的内存及CPU的消耗。例如在图1 所示的网络中,末梢路由器到其他的路由器只有一条链路。这种场景下末梢路由器的路由决策就会变的非常简单,每个末梢路由器要想到达其他的网段,都必须唯一选择中心路由器作为下一跳。此时对于末梢路由器来说就不需要明细路由了,一条到达中心路由器的缺省路由就足够了。
图1 缺省路由在末梢路由器上应用可以大大减小路由规模
使用缺省路由带来的问题
缺省路由的使用有很多的好处,但是同时也带来了一些问题。一个主要的原因就是缺省路由实际上是一种汇聚路由的极端形式,因而缺省路由也跟汇聚路由一样造成了路由细节的损失。这里举一个极端的例子,例如图2 所示的环形网络中,R1上有两条等价的缺省路由分别指向R2和R8,当R1需要给R7发送数据包的时候,R1其实不知道经过R8走才是最佳的路径,所以数据包有可能发往R2然后绕道一圈然后才到达R7,这样就绕了很远一段不必要的路径,业务上就会表现为有很大的延时等现象。当然,多数网络不会设计的这么极端,但是这说明缺省路由忽略了路由细节后带来的问题,很多缺省路由导致的次优路由问题都是类似的原理。
图2 缺省路由忽略了路由细节后导致不理想的选路问题
还经常有一些路由环路问题是由于不当的缺省路由设计造成的。例如图3 所示的静态缺省路由的配置,就属于缺省路由互相指向,形成环路。形成路由环路以后会对业务带来极大的影响,增加维护负担。
图3 静态配置缺省路由形成环路
正确使用缺省路由能够带来很多好处,但是缺省路由的使用又是路由规划设计的难点,这也是为什么路由协议都对缺省路由另眼相看,区别对待的原因。一般应避免大规模部署静态默认路由,对于动态路由协议生成的缺省路由也需要特别注意配合各种路由策略避免环路及次优路由的产生。在企业网络中应用最多的路由协议是OSPF协议和BGP协议,这两种动态路由协议都能够生成缺省路由,下面的内容里面详细介绍一下这两种路由生成缺省路由的使用注意事项及对应的解决方法。
OSPF缺省路由
OSPF缺省路由有哪些类型
OSPF缺省路由可以分为外部缺省路由和内部缺省路由。
外部缺省路由:
外部缺省路由由自治系统边界路由器(ASBR)发布的外部缺省ASE LSA(Type5),或者外部缺省NSSA LSA(Type7)计算出来,用来指导自治系统(AS)内路由器进行自治系统外报文的转发。
内部缺省路由:
内部缺省路由由区域边界路由器(ABR)发布的缺省Summary LSA(Type3)计算出来,用来指导区域内路由器进行区域之间报文的转发。
OSPF缺省路由的发布原则
OSPF缺省路由的发布原则概述
这里首先提问一个问题,如图4 所示,如果在RTB上静态配置一条缺省路由,然后在OSPF进程下通过import-route static引入静态路由,这样RTA能学习到OSPF缺省路由吗?
图4 通过import-route命令不能引入缺省路由
当然不能,如果在路由协议中能够这样引入缺省路由,很容易形成互指,造成环路。这也是为什么很多动态路由协议对缺省路由区别对待的原因。
缺省情况下,普通OSPF区域内的OSPF路由器是不会产生缺省路由的。当网络中缺省路由是通过其他路由协议产生时,为了能够将缺省路由通告到整个OSPF域中,必须在ASBR上手动通过default-route-advertise命令进行配置。
图5 OSPF缺省路由信息
如图5 所示,配置完该命令后将会产生一个链路状态ID为0.0.0.0,网络掩码为0.0.0.0的ASE LSA(5类),并且通告到整个OSPF域中,但前提是该ASBR存在激活的非OSPF缺省路由,否则不会通告缺省路由。
如果在该命令上加上关键字always的话,则无论ASBR是否存在激活的非OSPF缺省路由都将在整个OSPF域中通告缺省路由,这将强制缺省路由总是出现在路由表中,所以慎用关键字always。这就是强制下发和非强制下发的概念。
OSPF缺省路由的发布遵循如下原则:
原则一:OSPF设备只有具有对外的出口时,才能够发布缺省路由LSA。
对于区域边界路由器(ABR),一旦失去跟骨干区域的连接(骨干区域没有FULL邻居),那么就要停止发布缺省路由。这主要用于解决当区域存在多个出口的ABR时,此时可以通过别的ABR出口继续转发报文。
对于自治系统边界路由器(ASBR),一旦失去对外的连接(例如依赖的外部路由消失),那么就要停止发布缺省路由。这主要用于解决当OSPF路由域存在多个出口的ASBR时,可以通过别的ASBR出口继续转发报文。
图6 ABR失去跟骨干区域的链接后就停止发布缺省路由
如图6 所示的网络拓扑中,Area1中存在两个出口ABR设备,假设配置Area1区域为stub区域,那么两个ABR都会给R4下发缺省路由,此时R4有两条上行的缺省路由。当ABR-2和R3的OSPF邻居down掉,而ABR-2的接口A仍然处于up状态的时候,如果ABR-2继续给R4发布缺省路由,那么就会导致R4的部分流量继续发给ARB-2,这部分流量到ABR-2之后将会被丢弃,进而会导致业务中断。所以在这种多个出口ABR场景下,一旦ABR失去了跟骨干区域的连接(骨干区域没有FULL的OSPF邻居),那么就要停止发布缺省路由。这样能保证区域内的设备可以通过别的ABR继续转发报文。对于多出口的ASBR也是类似的原理,这里就不再赘述了。
原则二:如果OSPF设备已经发布了缺省路由LSA,那么就不应该再学习其它路由器发布的相同类型缺省路由。
即路由计算时不再计算其它路由器发布的相同类型的缺省路由LSA,但数据库中存有对应LSA。原因主要有以下两点:
本路由器自身已经具有对外的出口,所以不需要学习其它路由器发布的缺省路由。
如果学习其它路由器发布的缺省路由,就会形成缺省路由的下一跳相互指向,造成路由环路。
对于通过default-route-advertise命令发布的缺省路由,华为设备处理上有一些特殊,可以通过命令控制是否计算其他路由器发布的相同类型的缺省路由,具体如下:
如果OSPF进程下配置的是default-route-advertise,即没有配置permit-calculate-other参数,也没有配置always参数。那么OSPF下发缺省路由遵循如下原则:
本机路由表中必须有激活的非OSPF缺省路由时才生成缺省路由的LSA,并且此时不再计算本进程来自其他设备的缺省路由;如果本机不存在激活的非OSPF缺省路由时(这时候自然也不会发布OSPF缺省路由的LSA),设备仍然计算来自于其他设备的缺省路由。
如果OSPF进程下配置的是default-route-advertise always,那么OSPF下发缺省路由遵循如下原则:
无论本机是否存在激活的非OSPF缺省路由,都会产生并发布一个描述缺省路由的LSA,并且设备不再计算本进程来自其他设备的缺省路由。
如果OSPF进程下配置的是default-route-advertise permit-calculate-other,那么OSPF下发缺省路由遵循如下原则:
本机必须存在激活的非OSPF缺省路由时才会产生并发布一个缺省路由的ASE LSA,且设备仍然计算来自于其他设备的缺省路由。
原则三:外部缺省路由的发布如果要依赖于其它路由,那么被依赖的路由不能是本进程OSPF学习到的路由。因为外部缺省路由的作用是用于指导报文的域外转发,而本OSPF路由域的路由的下一跳都指向了域内,不能满足指导报文域外转发的要求。
特殊区域的缺省路由的发布原则
由于OSPF协议划分了多种不同的区域类型,不同的区域缺省路由的产生规则有所不同,这里详细说明一下。我们通过几个实验来详细讲解一下OSPF几个特殊区域发布缺省路由的原则,实验环境如下:
图7 OSPF特殊区域网络拓扑
组网如图7 所示:
所有设备都配置LoopBack0,地址如图7 所示,该地址不在OSPF内发布,只作为OSPFRouter ID使用;
R4上配置LoopBack1接口地址作为测试网段,在R4上将这个直连路由import进OSPF进程,通过路由策略控制只引入这一条直连路由。
R1的关键配置如下:
#
ospf 1 router-id 10.1.1.1
area 0.0.0.1
network 192.168.12.0 0.0.0.255
#
R2的关键配置如下:
#
ospf 1 router-id 10.2.2.2
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.1
network 192.168.12.0 0.0.0.255
#
R3的关键配置如下:
#
ospf 1 router-id 10.3.3.3
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.2
network 192.168.34.0 0.0.0.255
#
R4的关键配置如下:
#
acl number 2000
rule 5 permit source 10.44.44.44 0
#
ospf 1 router-id 10.4.4.4
import-route direct route-policy RP
area 0.0.0.2
network 192.168.34.0 0.0.0.255
#
route-policy RP permit node 10
if-match acl 2000
#
不划分区域的时候,以R1为例,路由表及LSDB如下:
<R1>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.44.44.44/32 O_ASE 150 1 D 192.168.12.2 GigabitEthernet0/0/0
……
可以看到,此时R1上没有缺省路由,并且有一条外部路由10.44.44.44/32。
<R1>display ospf lsdb
OSPF Process 1 with Router ID 10.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.2.2.2 10.2.2.2 1428 36 80000004 1
Router 10.1.1.1 10.1.1.1 1436 36 80000004 1
Network 192.168.12.2 10.2.2.2 1428 32 80000002 0
Sum-Net 192.168.23.0 10.2.2.2 1377 28 80000001 1
Sum-Net 192.168.34.0 10.2.2.2 1338 28 80000001 2
Sum-Asbr 10.4.4.4 10.2.2.2 1334 28 80000001 2
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 10.44.44.44 10.4.4.4 1467 36 80000001 1
可以看到,此时R1的LSDB里面有1、2、3、4、5类LSA,没有缺省路由的LSA。
下面根据上述实验详细讲解一下不同特殊区域的缺省路由发布原则。
1、STUB区域
由于Stub区域不允许自治系统外部的路由(Type5 LSA)在区域内传播,所以该区域内的路由器除了ABR外没有自治系统外部路由,如果它们想到自治系统外部时应该怎么办?在STUB区域里的路由器将本区域内ABR作为出口,ABR会产生缺省路由0.0.0.0通告给整个STUB区域内的路由器,这样的话到达自治系统外部的路由可以通过ABR到达。
把Area1配置了STUB区域之后,ABR会自动产生一条Link ID为0.0.0.0,网络掩码为0.0.0.0的Summary LSA(3类),并且通告到整个STUB区域内。
R1的配置修改为如下:
#
ospf 1 router-id 10.1.1.1
area 0.0.0.1
network 192.168.12.0 0.0.0.255
stub
#
R2的配置修改如下:
#
ospf 1 router-id 10.2.2.2
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.1
network 192.168.12.0 0.0.0.255
stub
#
实验效果:
<R1>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 OSPF 10 2 D 192.168.12.2 GigabitEthernet0/0/0
10.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 GigabitEthernet0/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.12.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.23.0/24 OSPF 10 2 D 192.168.12.2 GigabitEthernet0/0/0
192.168.34.0/24 OSPF 10 3 D 192.168.12.2 GigabitEthernet0/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
可以看到,此时R1上外部路由消失了,取而代之的是一条ABR(R2)自动下发的缺省路由,是Type3 LSA描述的。
<R1>display ospf lsdb
OSPF Process 1 with Router ID 10.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.2.2.2 10.2.2.2 1118 36 80000004 1
Router 10.1.1.1 10.1.1.1 1114 36 80000006 1
Network 192.168.12.1 10.1.1.1 1114 32 80000002 0
Sum-Net 0.0.0.0 10.2.2.2 1124 28 80000001 1
Sum-Net 192.168.23.0 10.2.2.2 1124 28 80000001 1
Sum-Net 192.168.34.0 10.2.2.2 1124 28 80000001 2
可以看到,此时Type5 LSA(External)、Type4 LSA(Sum-Asbr)已经消失,取而代之的是一条ABR(R2)自动下发的缺省路由Type3 LSA
2、完全STUB区域
Totally Stub区域既不允许自治系统外部的路由(Type5 LSA)在区域内传播,也不允许区域间路由(Type3 LSA)在区域内传播。所以在Totally Stub区域里的路由器要想到别的区域或自治系统外部时应该怎么办呢?同样的,在Totally Stub区域里的路由器也将本区域内ABR作为出口,ABR会自动产生缺省路由0.0.0.0通告给整个Totally Stub区域内的路由器,这样的话到达本区域外部的路由都通过ABR到达就可以了。
把Area1配置了Totally Stub区域之后,ABR自动会产生一条Link ID为0.0.0.0,网络掩码为0.0.0.0的Summary LSA(Type3 LSA),并且通告到整个Totally Stub区域内。
现在将Area1配置为完全STUB区域。
R1的配置修改如下:
#
ospf 1 router-id 10.1.1.1
area 0.0.0.1
network 192.168.12.0 0.0.0.255
stub
#
R2的配置修改如下:
#
ospf 1 router-id 10.2.2.2
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.1
network 192.168.12.0 0.0.0.255
stub no-summary
#
实验效果:
<R1>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 OSPF 10 2 D 192.168.12.2 GigabitEthernet0/0/0
10.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 GigabitEthernet0
/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.12.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
可以看到,此时R1上外部路由和区域间路由消失了,取而代之的是一条ABR(R2)自动下发的缺省路由,是Type3 LSA描述的。
<R1>display ospf lsdb
OSPF Process 1 with Router ID 10.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.2.2.2 10.2.2.2 42 36 80000007 1
Router 10.1.1.1 10.1.1.1 38 36 8000000D 1
Network 192.168.12.1 10.1.1.1 38 32 80000002 0
Sum-Net 0.0.0.0 10.2.2.2 43 28 80000004 1
可以看到,此时Type5 LSA(External)、Type4 LSA(Sum-Asbr)、以及描述区域间路由的Type3 LSA都已经消失,取而代之的是一条ABR(R2)自动下发的缺省路由Type3 LSA
3、NSSA区域
NSSA区域允许引入通过本区域的ASBR到达的外部路由,但不允许其他区域的外部路由ASE LSA(Type5 LSA)在区域内传播。ABR自动产生一条缺省的NSSA LSA(Type7 LSA),通告到整个NSSA区域内。这样,除了部分路由通过NSSA的ASBR到达,其它路由都可以通过NSSA的ABR到达。在ASBR上手动通过命令进行配置,使ASBR产生一条缺省的NSSA LSA(Type7 LSA),通告到整个NSSA区域内。这样,外部路由也可以通过本区域NSSA的ASBR到达。Type7 LSA缺省路由不会在ABR上转换成Type5 LSA缺省路由泛洪到整个OSPF域。
现在将Area2区配置成NSSA区域。
R3的配置修改如下:
#
ospf 1 router-id 10.3.3.3
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa
#
R4的配置修改如下:
#
acl number 2000
rule 5 permit source 10.44.44.44 0
#
ospf 1 router-id 10.4.4.4
import-route direct route-policy RP
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa
#
route-policy RP permit node 10
if-match acl 2000
#
实验效果:
[R4]display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 12 Routes : 12
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_NSSA 150 1 D 192.168.34.1 GigabitEthernet0/0/0
10.4.4.4/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.44.44.44/32 Direct 0 0 D 127.0.0.1 LoopBack1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.12.0/24 OSPF 10 3 D 192.168.34.1 GigabitEthernet0/0/0
192.168.23.0/24 OSPF 10 2 D 192.168.34.1 GigabitEthernet0/0/0
192.168.34.0/24 Direct 0 0 D 192.168.34.2 GigabitEthernet0/0/0
192.168.34.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.34.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
可以看到,R4上有一条缺省路由并且协议类型为O_NSSA,表示是由Type7 LSA描述的,这条缺省路由是由ABR(R3)自动产生的。
<R4>display ospf lsdb
OSPF Process 1 with Router ID 10.4.4.4
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.3.3.3 10.3.3.3 1014 36 80000005 1
Router 10.4.4.4 10.4.4.4 1011 36 80000005 1
Network 192.168.34.2 10.4.4.4 1012 32 80000002 0
Sum-Net 192.168.23.0 10.3.3.3 1074 28 80000001 1
Sum-Net 192.168.12.0 10.3.3.3 1074 28 80000001 2
NSSA 10.44.44.44 10.4.4.4 1053 36 80000001 1
NSSA 0.0.0.0 10.3.3.3 1074 36 80000001 1
可以看到,R4的LSDB里面存在一条由R3产生的Type7 LSA,描述了一条缺省路由。
对于NSSA区域的ASBR(R4),手动通过命令进行配置,可以使ASBR也产生一条缺省的NSSA LSA(Type7 LSA)。注意在ASBR上只有当路由表中存在缺省路由0.0.0.0/0,才会产生Type7 LSA缺省路由。
R4的配置修改如下:
#
acl number 2000
rule 5 permit source 10.44.44.44 0
#
ospf 1 router-id 10.4.4.4
import-route direct route-policy RP
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa default-route-advertise
#
route-policy RP permit node 10
if-match acl 2000
#
ip route-static 0.0.0.0 0.0.0.0 NULL0
//必须路由表中存在缺省路由0.0.0.0/0,才会产生Type7 LSA缺省路由
#
实验效果:
<R4>display ospf lsdb
OSPF Process 1 with Router ID 10.4.4.4
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.3.3.3 10.3.3.3 1575 36 80000005 1
Router 10.4.4.4 10.4.4.4 1572 36 80000005 1
Network 192.168.34.2 10.4.4.4 1573 32 80000002 0
Sum-Net 192.168.23.0 10.3.3.3 1634 28 80000001 1
Sum-Net 192.168.12.0 10.3.3.3 1634 28 80000001 2
NSSA 0.0.0.0 10.4.4.4 266 36 80000001 1
NSSA 10.44.44.44 10.4.4.4 1613 36 80000001 1
NSSA 0.0.0.0 10.3.3.3 1634 36 80000001 1
可以看到,此时R4的LSDB里面存在两条描述缺省路由的Type7 LSA,一条是ABR(R3)自动产生的,另外一条是NSSA区域的ASBR(R4)手动配置nssa default-route-advertise命令以后产生的。
我们再来看一下此时R2的路由表项及LSDB信息:
<R2>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.2.2.2/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.44.44.44/32 O_ASE 150 1 D 192.168.23.2 GigabitEthernet0/0/1
……
<R2>display ospf lsdb
OSPF Process 1 with Router ID 10.2.2.2
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.3.3.3 10.3.3.3 102 36 8000000A 1
Router 10.2.2.2 10.2.2.2 967 36 80000009 1
Network 192.168.23.2 10.3.3.3 961 32 80000007 0
Sum-Net 192.168.34.0 10.3.3.3 102 28 80000007 1
Sum-Net 192.168.12.0 10.2.2.2 657 28 80000007 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.2.2.2 10.2.2.2 650 36 80000008 1
Router 10.1.1.1 10.1.1.1 648 36 8000000E 1
Network 192.168.12.1 10.1.1.1 648 32 80000003 0
Sum-Net 0.0.0.0 10.2.2.2 651 28 80000005 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 10.44.44.44 10.4.4.4 2895 36 80000005 1
External 10.44.44.44 10.3.3.3 43 36 80000002 1
可以看到10.44.44.44/32这条路由在Area0区域被标记为O_ASE路由,表示这条路由在NSSA区域的ABR(R3)进行了Type7 LSA转换成Type5 LSA;但是R2上并没有学习到O_ASE缺省路由,也没有描述缺省路由的LSA,所以Type7 LSA缺省路由不会在ABR上转换成Type5 LSA缺省路由泛洪到整个OSPF域,只会在NSSA区域内部泛洪。
4、完全NSSA区域
Totally NSSA区域既不允许其他区域的外部路由ASE LSA(Type5 LSA)在区域内传播,也不允许区域间路由(Type3 LSA)在区域内传播。区域内的路由器必须通过ABR学到其他区域的路由。实现方法是配置Totally NSSA区域后,ABR会自动产生缺省的Type3 LSA和Type7 LSA通告到整个Totally NSSA区域内。这样,自治系统外部路由和区域间路由都可以通过ABR到达。
现在将Area2区域配置成完全NSSA区域。
R3的配置修改如下:
#
ospf 1 router-id 10.3.3.3
area 0.0.0.0
network 192.168.23.0 0.0.0.255
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa no-summary
#
R4的配置修改如下:
#
acl number 2000
rule 5 permit source 10.44.44.44 0
#
ospf 1 router-id 10.4.4.4
import-route direct route-policy RP
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa
#
route-policy RP permit node 10
if-match acl 2000
#
实验效果:
<R4>display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 OSPF 10 2 D 192.168.34.1 GigabitEthernet0/0/0
……
<R4>display ospf lsdb
OSPF Process 1 with Router ID 10.4.4.4
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.3.3.3 10.3.3.3 223 36 80000007 1
Router 10.4.4.4 10.4.4.4 220 36 8000000B 1
Network 192.168.34.2 10.4.4.4 220 32 80000002 0
Sum-Net 0.0.0.0 10.3.3.3 232 28 80000001 1
NSSA 10.44.44.44 10.4.4.4 1165 36 80000002 1
NSSA 0.0.0.0 10.3.3.3 224 36 80000003 1
可以看出,R4上存在一条由Type3 LSA描述的缺省路由,但是R4的LSDB里面存在两条描述缺省路由的LSA,都是ABR(R3)产生的,一条是Type3 LSA,一条是Type7 LSA。
更多博客文章,请访问我的独立博客:一日程博客:http://www.yiricheng.cn/