
实验需求
R1的配置如下
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 10.1.12.1 24
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 1
[R1-ospf-1-area-0.0.0.1] network 10.1.12.0 0.0.0.255R2的配置如下
R3的配置如下
R4的配置如下
完成上述配置后,观察一下各个路由器的路由表及LSDB
R1学习到了全网的路由,包括R4注入的外部路由4.4.4.4/32,这条外部路由在路由表中标记为 O_ASE,表示为OSPF AS External,也就是OSPF的AS外部路由。接着我们查看一下R1的 OSPF LSDB,使用display ospf lsdb命令:
将area1配置为Stub区域,观察路由及LSA的变化
R1的OSPF配置修改如下
[R1] ospf 1
[R1-ospf-1] area 1
[R1-ospf-1-area-0.0.0.1] stub #将area1配置为Stub区域R2的OSPF配置修改如下
[R2] ospf 1
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] stub #将area1配置为Stub区域注意,一旦将某个区域设置为Stub,则所有连接到这个区域的路由器都要配置该区域为Stub, 否则OSPF邻居关系无法正确建立。完成上述配置后,area1就变成了一个stub区域。Stub区 域会阻挡来自骨干区域的4、5类LSA,这使得该区域内LSA泛洪的数量在一定程度上被减少, 从而减小该区域中路由器的路由表规模同时降低设备负担,另外,Stub区域的ABR会为该区 域产生一条使用3类LSA描述的缺省路由,用于Stub区域内的路由器走出该区域从而能够访问 OSPF区域外的网络:

现在,再来观察R1的路由表和LSDB。
相比于area1为常规区域的情况,area1被设置为Stub区域后,R1的路由表更精简了,那是因 为R2阻挡掉了来自OSPF的域外路由4.4.4.4/32。当然R1可以通过缺省路由0.0.0.0/0到达这些 域外网络,这条缺省路由是R2下发的,使用3类LSA描述,且缺省路由的外部Cost为1,可以 在R2的area1视图下使用default-cost命令来修改这个缺省的Cost值。
再看看R1的LSDB
显然,R1的LSDB也精简了,此时在R1的LSDB中,没有4、5类LSA。仅有1、2、3类LSA。
将area1配置为Totally-Stub区域,观察路由及LSA的变化
在上一个需求的配置基础上,R2的OSPF配置修改如下:
[R2] ospf 1
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] stub no-summary #将area1配置为Totally-Stub区域将一个区域指定为Totally-Stub后,该区域将不会再收到来自骨干区域的3、4、5类LSA,也就
是在stub的基础上进一步抑制3类LSA的泛洪,同时该区域的ABR下发一条3类LSA缺省路由,
如下图所示:

完成配置后再去R1上看看路由表和LSDB:
[R1] display ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 OSPF 10 2 D 10.1.12.2 GigabitEthernet0/0/0R1的路由表即可已经极大的被简化了,现在只有一条0.0.0.0/0的缺省路由,除此之外,区域
间的路由10.1.23.0/24、10.1.34.0/24,以及域外路由4.4.4.4/32都已经消失了,R1的负担将变
得非常小,并且当它需要去往这些网络时,又可以通过这条缺省路由出去。
再看看R1的LSDB:
R1的LSDB也是非常简洁的,只有1、2类LSA,也就是用于计算本区域内路由的LSA,另外还 有一条3类LSA,这条3类LSA是描述0.0.0.0/0缺省路由的,由ABR R2产生。
在上一个需求的配置基础上,R1的配置修改如下:
R1创建了一个Loopback接口,将area1恢复为常规区域,同时将直连路由注入到OSPF。 1.1.1.1/32这条路由是我们接下去需观察的目标路由之一。
R2的配置修改如下:
[R2] ospf 1
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] undo stub 此时R4的路由表如下:
[R4] display ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 O_ASE 150 1 D 10.1.34.3 GigabitEthernet0/0/0
10.1.12.0/24 OSPF 10 3 D 10.1.34.3 GigabitEthernet0/0/0
10.1.23.0/24 OSPF 10 2 D 10.1.34.3 GigabitEthernet0/0/0从R4的路由表可以看出,R4此时能够学习到区域间的路由10.1.12.0/24、10.1.23.0/24,以及域外路由1.1.1.1/32。现在把area2配置为NSSA:
R3的配置修改为:
[R3] ospf 1
[R3-ospf-1] area 2
[R3-ospf-1-area-0.0.0.2] nssaR4的配置修改为:
[R4] ospf 1
[R4-ospf-1] area 2
[R4-ospf-1-area-0.0.0.2] nssa当一个区域被配置为NSSA(非完全末梢区域),则该区域将不再允许来自骨干区域的4、5类LSA泛洪,但是允许该区域内的路由器注入外部路由,这些外部路由被重发布进NSSA后以7类LSA描述和泛洪,这些7类LSA由NSSA的ABR执行转换变成5类LSA后进入骨干区域:

所以,当area2被配置为NSSA后,R3将不能再把4、5类LSA泛洪到area2中,因此R1引入的外部路由1.1.1.1/32不会被注入到area2中。当然为了让NSSA内的路由器到达AS外部,R3自动下发一条7类LSA描述的缺省路由。R3不会阻挡3类LSA进入NSSA,所以R4依然能够学习到其他区域的路由。另一方面,NSSA允许本区域内的路由器执行路由重发布动作,这一点与Stub区域存在较大的区别。R4上执行路由重发布动作,将4.4.4.4/32这条外部路由引入OSPF,这条外部路由被引入后是以7类LSA的形式在NSSA内泛洪,并且不允许直接进入骨干区域area0。另一方面,NSSA的ABR R3会把7类LSA转换成5类LSA,然后在骨干区域中泛洪,因此R1、R2都能学习到4.4.4.4/32的外部路由。综上,NSSA的使用场景是:这个区域不希望学习到其他区域重发布进OSPF的域外路由,但是该区域自己依然有注入域外路由的需求或能力。
[R4] display ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_NSSA 150 1 D 10.1.34.3 GigabitEthernet0/0/0
10.1.12.0/24 OSPF 10 3 D 10.1.34.3 GigabitEthernet0/0/0
10.1.23.0/24 OSPF 10 2 D 10.1.34.3 GigabitEthernet0/0/0R4的路由表中,已经看不到1.1.1.1/32这条AS外部路由了,但是R4依然是能够访问1.1.1.1/32的,因为NSSA的ABR R3为NSSA下发了一条7类的缺省路由,通过这条缺省路由,R4依然能够穿越骨干区域访问AS外部网络。
R4 的 LSDB 中 已 经 没 有 5 类 LSA 了 , 其 自 身 重 发 布 进 OSPF的 直 连 路 由 4.4.4.4/32 及
10.1.34.0/24以7类LSA的形式被创建。另外,R3还向NSSA中放入一条7类LSA的0.0.0.0/0缺
省路由。
[R3] display ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 O_ASE 50 1 D 10.1.23.2 GigabitEthernet0/0/0
4.4.4.4/32 O_NSSA 150 1 D 10.1.34.4 GigabitEthernet0/0/1
10.1.12.0/24 OSPF 10 2 D 10.1.23.2 GigabitEthernet0/0/0R3的路由表中,有一条1.1.1.1/32的外部路由,这是通过5类LSA计算得出的。还有一条 4.4.4.4/32的外部路由,这是通过7类LSA计算得出的(因此在路由表中的标记为O_NSSA)。 当然R3作为NSSA 的ABR,是不允许把7类LSA直接注入到骨干区域的,而是会执行一个7转 5的动作,把7类LSA转换成5类LSA,这是因为7类LSA只能存在于NSSA中。
[R2] display ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.1/32 O_ASE 150 1 D 10.1.12.1 GigabitEthernet0/0/0
4.4.4.4/32 O_ASE 150 1 D 10.1.23.3 GigabitEthernet0/0/1
10.1.34.0/24 OSPF 10 2 D 10.1.23.3 GigabitEthernet0/0/1R2的路由表中,有两条AS外部路由,分别是1.1.1.1/32和4.4.4.4/32,其中1.1.1.1/32是由R1 引入的,而4.4.4.4/32是经由R3执行7类LSA转5类LSA后引入的。
将area2配置为Totally-NSSA
在上面的需求中,area2变成一个非常特殊的区域:NSSA,然而该区域内泛洪的LSA其实是 可以进一步减少的。既然已经从R3获取到一条缺省路由,通过这条缺省路由能够穿越骨干区 域到达AS外部,那么为什么不进一步把描述其他区域路由的3类LSA也一并抑制掉呢?这就出 现了最后一种特殊区域:Totally-NSSA。
R3的配置修改如下:
[R3] ospf 1
[R3-ospf-1] area 2
[R3-ospf-1-area-0.0.0.2] nssa no-summary一旦将area2变成Totally-NSSA,area2的ABR。也就是R3将会阻挡3类、4类和5类LSA进入该 区域,同时还会向该区域下发一条3类LSA缺省路由。当然该区域依然是可以从区域本地注入 外部路由的:

[R4]display ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 OSPF 10 2 D 10.1.34.3 GigabitEthernet0/0/0R4的路由表已经最大限度的被简化了,此时在路由表中仅有一条缺省路由。这条缺省路由实 质上是由R3下发的,使用3类LSA描述。
在R4的LSDB中,除了一条描述缺省路由的3类LSA,没有其他的3类LSA和4、5类LSA了。
OSPF各种LSA类型及特殊区域小结

[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ip address 10.1.12.2 24
[R2] interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] ip address 10.1.23.2 24
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] network 10.1.12.0 0.0.0.255
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.1.23.0 0.0.0.255[R3] interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0] ip address 10.1.23.3 24
[R3] interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1] ip address 10.1.34.3 24
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 10.1.23.0 0.0.0.255
[R3-ospf-1] area 2
[R3-ospf-1-area-0.0.0.2] network 10.1.34.0 0.0.0.255[R4] interface GigabitEthernet 0/0/0
[R4-GigabitEthernet0/0/0] ip address 10.1.34.4 24
[R4] interface Loopback 0
[R4-LoopBack0] ip address 4.4.4.4 32
[R4] ospf 1 router-id 4.4.4.4
[R4-ospf-1] area 2
[R4-ospf-1-area-0.0.0.2] network 10.1.34.0 0.0.0.255
[R4-ospf-1-area-0.0.0.2] quit
[R4-ospf-1] import-route direct #将直连路由注入OSPF[R1] display ip routing-table protocol ospf
Destination/Mask Proto Pre Cost Flags NextHop Interface
4.4.4.4/32 O_ASE 150 1 D 10.1.12.2 GigabitEthernet0/0/0
10.1.23.0/24 OSPF 10 2 D 10.1.12.2 GigabitEthernet0/0/0
10.1.34.0/24 OSPF 10 3 D 10.1.12.2 GigabitEthernet0/0/0<R1>display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 148 36 80000006 1
Router 1.1.1.1 1.1.1.1 149 36 80000004 1
Network 10.1.12.2 2.2.2.2 149 32 80000002 0
Sum-Net 10.1.23.0 2.2.2.2 1096 28 80000001 1
Sum-Net 10.1.34.0 2.2.2.2 520 28 80000001 2
Sum-Asbr 4.4.4.4 2.2.2.2 454 28 80000001 2
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 4.4.4.4 4.4.4.4 472 36 80000001 1
External 10.1.34.0 4.4.4.4 472 36 80000001 1
以上输出的是R1的OSPF LSDB,从中可以看出在R1的LSDB中有1、2、3、4、5类LSA。其
中3类LSA是描述10.1.23.0/24及10.1.34.0/24这两个网段的。4类LSA描述ASBR,也就是R4,
这条LSA由ABR R2产生。另外还有2条AS外部LSA,描述4.4.4.4/32和10.1.34.0//24。
此时R1是全网可达的。<R1>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 3 Routes : 3
OSPF routing table status : <Active>
Destinations : 3 Routes : 3
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 OSPF 10 2 D 10.1.12.2 GigabitEthernet
0/0/0
10.1.23.0/24 OSPF 10 2 D 10.1.12.2 GigabitEthernet
0/0/0
10.1.34.0/24 OSPF 10 3 D 10.1.12.2 GigabitEthernet
0/0/0
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
<R1>display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 443 36 80000005 1
Router 1.1.1.1 1.1.1.1 451 36 80000005 1
Network 10.1.12.2 2.2.2.2 443 32 80000002 0
Sum-Net 0.0.0.0 2.2.2.2 496 28 80000001 1
Sum-Net 10.1.23.0 2.2.2.2 496 28 80000001 1
Sum-Net 10.1.34.0 2.2.2.2 496 28 80000001 2[R1] display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 347 36 80000005 1
Router 1.1.1.1 1.1.1.1 346 36 80000009 1
Network 10.1.12.1 1.1.1.1 347 32 80000002 0
Sum-Net 0.0.0.0 2.2.2.2 348 28 80000005 1<R4> display ospf lsdb
OSPF Process 1 with Router ID 4.4.4.4
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 902 36 80000004 1
Router 3.3.3.3 3.3.3.3 901 36 80000006 1
Network 10.1.34.3 3.3.3.3 901 32 80000002 0
Sum-Net 10.1.23.0 3.3.3.3 1103 28 80000001 1
Sum-Net 10.1.12.0 3.3.3.3 1103 28 80000001 2
NSSA 4.4.4.4 4.4.4.4 910 36 80000001 1
NSSA 10.1.34.0 4.4.4.4 910 36 80000002 1
NSSA 0.0.0.0 3.3.3.3 1103 36 80000001 1[R4] display ospf lsdb
OSPF Process 1 with Router ID 4.4.4.4
Link State Database
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 294 36 8000002E 1
Router 3.3.3.3 3.3.3.3 298 36 8000002B 1
Network 10.1.34.4 4.4.4.4 294 32 80000002 0
Sum-Net 0.0.0.0 3.3.3.3 304 28 80000001 1
NSSA 4.4.4.4 4.4.4.4 1283 36 80000022 1
NSSA 10.1.34.0 4.4.4.4 1283 36 80000023 1
NSSA 0.0.0.0 3.3.3.3 300 36 80000024 1