文/姜杏春、许亮
OSPF在不同类型的区域中引入缺省路由,OSPF缺省路由产生和通告的方式是不同的,所以在介绍OSPF缺省路由之前,我们先从OSPF的区域类型展开介绍。
OSPF根据网络的需求可以定义为下列几种类型:
l 普通区域
l STUB区域
l 完全STUB区域
l NSSA区域
l 完全NSSA区域
当区域被缺省定义时,它被认为是普通区域。普通区域可以是标准区域或骨干区域。标准区域是最通用的区域,它携带区域内路由,区域间路由和外部路由。骨干区域是连接所有其它OSPF区域的中央区域。
STUB区域是一个不允许AS外部LSA在其内部泛洪的区域。STUB区域只可以携带区域内路由和区域间路由。在这些区域中路由器的OSPF数据库和路由表规模以及路由信息传递的数量都会大大减少,为了保证到自治系统外的路由依旧可达,由该区域的ABR生成一条缺省路由0.0.0.0 传播到区域内,所有到自治系统外部的路由都必须通过ABR才能到达。
完全STUB区域是区域中最受限的形式,它不仅不允许携带外部路由,甚至连区域间路由也不允许携带,只可以携带区域内路由。在这些区域中路由器的OSPF数据库和路由表规模以及路由信息传递的数量都会大大减少,为了保证到区域外的路由依旧可达,由该区域的ABR生成一条缺省路由0.0.0.0 传播到区域内,所有到该区域外部的路由都必须通过ABR才能到达。
NSSA区域允许一些外部路由通告到OSPF自治系统内部,而同时保留自治系统的区域部分的STUB区域的特征。假设一个STUB区域中的路由器连了一个运行其他路由进程的自治系统,现在这台路由器就变成了ASBR,所以这个区域就不能再称为STUB区域了。然而如果把这个区域配置成一个NSSA区域,ASBR会产生NSSA外部LSA(类型7),可以泛洪到整个NSSA区域。这些7类LSA在NSSA ABR上会转换成5类LSA并且泛洪到整个OSPF域中。
和NSSA区域相似,完全NSSA区域允许一些外部路由通告到OSPF自治系统内部,而同时保留自治系统区域部分的完全STUB区域的特征。该区域的ASBR会产生NSSA外部LSA(类型7)在其区域内部泛洪并通过该区域的ABR转换成5类LSA在整个OSPF域泛洪。同时,该区域的ABR也会产生一条缺省路由0.0.0.0传播到区域内,所有域间路由都必须通过ABR才能到达。
缺省情况下,在普通OSPF区域内的OSPF路由器是不会产生缺省路由的,即使它有缺省路由。
当网络中缺省路由通过其他路由进程产生时,必须能够将缺省路由通告到整个OSPF域中。这个时候要想产生缺省路由必须在ASBR上OSPF协议视图下手动配置:
[Router-ospf-1]default-route-advertise [always]
使用了该命令将在整个OSPF域中通告缺省路由0.0.0.0,但前提是该ASBR自己已经有缺省路由,否则不会通告缺省路由。
如果在该命令上加上关键字always的话,则无论ASBR是否有缺省路由都将在整个OSPF域中通告缺省路由0.0.0.0,这将强制缺省路由总是出现在路由表中,所以慎用关键字always。
使用了该命令后将会产生一个链路状态ID为0.0.0.0,网络掩码为0.0.0.0的ASE LSA(5类),并且通告到整个OSPF域中。
由于STUB区域不允许外部LSA在其内部泛洪,所以该区域内的路由器除了ABR外没有自治系统外部路由,如果它们想到自治系统外部时应该怎么办?在STUB区域里的路由器将本区域内ABR作为出口,ABR会产生缺省路由0.0.0.0通告给整个STUB区域内的路由器,这样的话到达自治系统外部的路由可以通过ABR到达。
配置了STUB区域之后,ABR自动会产生一条Link ID为0.0.0.0,网络掩码为0.0.0.0的SUMMARY LSA(3类),并且通告到整个STUB区域内。
完全STUB区域不仅不允许外部LSA在其内部泛洪,连区域间的路由也不允许携带,所以在完全STUB区域里的路由器要想到别的区域或自治系统外部时应该怎么办呢?同样的,在完全STUB区域里的路由器也将本区域内ABR作为出口,ABR会产生缺省路由0.0.0.0通告给整个完全STUB区域内的路由器,这样的话到达本区域外部的路由都通过ABR到达就可以了。
配置了完全STUB区域之后,ABR自动会产生一条Link ID为0.0.0.0,网络掩码为0.0.0.0的SUMMARY LSA(3类),并且通告到整个完全STUB区域内。
NSSA区域允许少量外部路由通过本区域的ASBR通告进来,它不允许携带其他区域的外部路由,这样的话到达自治系统外部路由只能通过本区域的ASBR到达,如果该ASBR没有通告该外路由的,则不能到达。
在只配置了NSSA区域的时候,是不会自动产生缺省路由的。
如果只希望到达自治系统外部的某些路由通过该区域的ASBR到达,其它外部路由通过其它区域出去的话,有没有办法呢?在NSSA ABR上产生缺省路由0.0.0.0通告给整个NSSA区域内的路由器,这样的话除了某少部分路由通过NSSA的ASBR到达,其它都可以通过NSSA ABR到达其它区域的ASBR出去。但是这只是一个需求,并不是必须的,所以这条缺省路由不是配置了NSSA区域就会自动产生的,如果想在NSSA ABR上产生缺省路由0.0.0.0,可以在NSSA ABR上手动配置:
[Router-ospf-1-area-0.0.0.1]nssa default-route-advertise (NSSA区域视图)
使用了该命令后,在NSSA ABR上就会产生一条Link ID为0.0.0.0,网络掩码为0.0.0.0的NSSA LSA(7类),将在整个NSSA区域内通告缺省路由0.0.0.0。
但是如果希望所有的外部路由只通过本区域的NSSA ASBR到达,希望ASBR通告一条缺省路由0.0.0.0,可以在NSSA ASBR上手动配置:
[Router-ospf-1-area-0.0.0.1]nssa default-route-advertise (NSSA区域视图)
NSSA ASBR和NSSA ABR使用相同的命令,与NSSA ABR不同的是NSSA ASBR必须是在自身已经有一条缺省路由的情况下才会产生一条Link ID为0.0.0.0,网络掩码为0.0.0.0的NSSA LSA(7类),在NSSA区域内通告缺省路由0.0.0.0。
因为缺省路由只是在本NSSA区域内泛洪,并没有泛洪到整个OSPF域中,只能实现本NSSA区域内的路由器在找不到路由之后从该NSSA ASBR出去,不能实现整个OSPF域的路由器从这个出口出去。
完全NSSA区域和NSSA区域不同的是,它不允许携带区域间路由,如果要到其他区域的时候应该怎么办呢?同样的,缺省路由又出场了,在该区域ABR上会产生一条缺省路由0.0.0.0,通告给整个完全NSSA区域,所有的域间路由都将NSSA ABR作为出口。
配置了完全NSSA区域后,就会自动产生一条Link ID为0.0.0.0,网络掩码为0.0.0.0的SUMMARY LSA(3类),在NSSA区域内通告缺省路由0.0.0.0。
与NSSA区域ABR上缺省路由产生的方式不同的是,在完全NSSA区域ABR上的缺省路由是配置好区域之后自动产生类型3的缺省LSA,在NSSA区域上ABR的缺省路由是自己可配置的,因为在完全NSSA区域产生的缺省路由是必须的,它起着指导本区域内路由器区域间路由的作用。
缺省情况下,普通区域不产生缺省路由。图1中为Area1和Area2都是普通区域。路由器2是普通区域的ASBR。(路由器名字改成R+数字格式)
路由器RT2已经有一条指向路由器RT1的静态缺省路由,该缺省路由需要在OSPF域通告,在路由器RT2上配置:
default-route-advertise
[RT2]
#
ospf 1
import-route rip
import-route static
default-route-advertise
area 0.0.0.2
network 2.2.2.2 0.0.0.0
network 10.23.0.0 0.0.0.255
#
ip route-static 0.0.0.0 0.0.0.0 10.12.0.1 preference 60
#
观察路由器RT2的链路状态数据库可以发现,路由器RT2产生一条类型5的缺省LSA,Link ID为0.0.0.0。
[RT2]display ospf lsdb
OSPF Process 1 with Router ID 2.2.2.2
Link State Database
Area: 0.0.0.2
……………………
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
External 0.0.0.0 2.2.2.2 50 36 80000002 1
External 6.6.6.6 6.6.6.6 163 36 80000004 1
……………………
External 1.1.1.1 2.2.2.2 1174 36 80000091 1 List
路由器RT2生成的缺省LSA:
[RT2]display ospf lsdb ase 0.0.0.0
Type : External
LS ID : 0.0.0.0
Adv Rtr : 2.2.2.2
LS Age : 606
Len : 36
Options : E
Seq# : 80000004
Checksum : 0xdaec
Net Mask : 0.0.0.0
TOS 0 Metric: 1
E Type : 2
Forwarding Address :0.0.0.0
Tag: 1
查看路由器RT3、RT4、RT5的链路状态数据库和路由表,验证路由器RT2的缺省路由的泛洪情况。
路由器RT3的信息:
<RT3>display ospf lsdb
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
External 0.0.0.0 2.2.2.2 491 36 80000003 1
External 6.6.6.6 6.6.6.6 332 36 80000005 1
……………………
External 1.1.1.1 2.2.2.2 1352 36 80000092 1
<RT3>display ip routing-table 0.0.0.0
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 O_ASE 150 1 10.23.0.2 Ethernet1/0
路由器RT4的信息:
<RT4>display ospf lsdb
OSPF Process 1 with Router ID 4.4.4.4
Link State Database
Area: 0.0.0.0
……………………
Area: 0.0.0.1
……………………
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
External 0.0.0.0 2.2.2.2 1403 36 80000003 1
External 6.6.6.6 6.6.6.6 1244 36 80000005 1
……………………
External 1.1.1.1 2.2.2.2 516 36 80000093 1
<RT4>display ip routing-table 0.0.0.0
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 O_ASE 150 1 10.34.0.3 Ethernet0/1
路由器RT5的信息:
<RT5>display ospf lsdb
OSPF Process 1 with Router ID 5.5.5.5
Link State Database
Area: 0.0.0.1
……………………
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
External 0.0.0.0 2.2.2.2 1727 36 80000003 1
……………………
External 1.1.1.1 2.2.2.2 831 36 80000093 1
<RT5>display ip routing-table 0.0.0.0
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 O_ASE 150 1 10.45.0.4 Ethernet2/0
路由器RT3、RT4、RT5都有类型5的缺省LSA,通告者是路由器RT2,并产生相应的缺省路由,可以看出,普通区域的ASBR产生的缺省路由0.0.0.0不仅仅在本区域内泛洪,还泛洪到整个OSPF域中去。
如果路由器RT2自身没有缺省路由,但是仍希望能够在OSPF域中通告缺省路由0.0.0.0,可以在路由器上RT2配置:
default-route-advertise always
配置一个区域成为STUB区域,必须在本区域的所有路由器上区域视图配置:
stub
图3 STUB区域实验组网图
如图,配置区域1为STUB区域,路由器RT4为区域的ABR。
[RT4]
#
ospf 1
default-route-advertise
area 0.0.0.1
network 10.45.0.0 0.0.0.255
stub
#
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 10.34.0.0 0.0.255.255
#
观察路由器RT4的链路状态数据库可以发现,路由器RT4在区域1生成一条类型3缺省LSA,Link ID为0.0.0.0。
<RT4>display ospf lsdb
OSPF Process 1 with Router ID 4.4.4.4
Link State Database
Area: 0.0.0.0
……………………
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Sum-Net 0.0.0.0 4.4.4.4 238 28 80000002 1
Sum-Net 2.2.2.2 4.4.4.4 238 28 80000002 12
……………………
Sum-Net 10.34.0.0 4.4.4.4 238 28 80000089 10
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
External 1.1.1.1 2.2.2.2 1483 36 800000e7 1
路由器RT4成的缺省LSA:
[RT4]display ospf lsdb summary 0.0.0.0
Area: 0.0.0.1
Type : Sum-Net
LS ID : 0.0.0.0
Adv Rtr : 4.4.4.4
LS Age : 697
Len : 28
Options :None
Seq# : 80000002
Checksum : 0x37f5
Net Mask : 0.0.0.0
TOS 0 Metric: 1
查看路由器RT3、RT4、RT5的链路状态数据库和路由表,验证路由器RT4缺省路由的泛洪情况。
路由器RT3的信息:
<RT3>display ospf lsdb
OSPF Process 1 with Router ID 3.3.3.3
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 1231 48 800000b9 0
Router 3.3.3.3 3.3.3.3 7 48 8000008e 0
Network 10.34.0.4 4.4.4.4 1231 32 80000003 0
Sum-Net 2.2.2.2 3.3.3.3 1675 28 80000085 2
Sum-Net 10.45.0.0 4.4.4.4 1136 28 80000059 10
Sum-Net 10.56.0.0 4.4.4.4 1136 28 80000002 20
Sum-Net 5.5.5.5 4.4.4.4 1136 28 80000002 11
Sum-Net 10.23.0.0 3.3.3.3 1675 28 80000085 1
Sum-Asbr 2.2.2.2 3.3.3.3 1675 28 80000088 1
Area: 0.0.0.2
……………………
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
External 1.1.1.1 2.2.2.2 641 36 800000e8 1
<RT3>display ip routing-table
Routing Table: public
Destination/Mask Protocol Pre Cost Nexthop Interface
1.1.1.1/32 O_ASE 150 1 10.23.0.2 Ethernet1/0
2.2.2.2/32 OSPF 10 2 10.23.0.2 Ethernet1/0
3.3.3.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
4.4.4.4/32 OSPF 10 11 10.34.0.4 Ethernet2/0
5.5.5.5/32 OSPF 10 21 10.34.0.4 Ethernet2/0
10.23.0.0/24 DIRECT 0 0 10.23.0.3 Ethernet1/0
10.23.0.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
10.34.0.0/24 DIRECT 0 0 10.34.0.3 Ethernet2/0
10.34.0.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
10.45.0.0/24 OSPF 10 20 10.34.0.4 Ethernet2/0
10.56.0.0/24 OSPF 10 30 10.34.0.4 Ethernet2/0
127.0.0.0/8 DIRECT 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 DIRECT 0 0 127.0.0.1 InLoopBack0
路由器RT5信息:
<RT5>display ospf lsdb
OSPF Process 1 with Router ID 5.5.5.5
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Network 10.56.0.5 5.5.5.5 1527 32 80000003 0
Sum-Net 0.0.0.0 4.4.4.4 1389 28 80000002 1
Sum-Net 2.2.2.2 4.4.4.4 1389 28 80000002 2
……………………
Sum-Net 10.34.0.0 4.4.4.4 1389 28 80000089 1
-
<RT5>display ip routing-table 0.0.0.0
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 OSPF 10 2 10.45.0.4 Ethernet2/0
路由器6信息:
<RT6>display ospf lsdb
OSPF Process 1 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Network 10.56.0.5 5.5.5.5 346 32 80000004 0
Sum-Net 0.0.0.0 4.4.4.4 190 28 80000003 1
Sum-Net 2.2.2.2 4.4.4.4 1389 28 80000002 2
……………………
Sum-Net 10.34.0.0 4.4.4.4 190 28 8000008a 1
<RT6>display ip routing-table 0.0.0.0
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 OSPF 10 3 10.56.0.5 Ethernet1/0
从上述信息发现,在STUB区域内的路由器RT5和RT6都有类型3的缺省LSA,并产生相应的缺省路由,区域0的路由器RT3没有缺省LSA也没有缺省路由,可以看出,STUB区域产生的缺省路由只泛洪到整个STUB区域。
图4 STUB区域缺省路由泛洪
完全STUB区域产生的缺省路由LSA类型、方式和STUB区域一样,并且在STUB区域内泛洪。
配置完全STUB区域,在完全STUB区域的ABR上配置:
stub no-summary
配置一个区域成为NSSA区域,必须在本区域的所有路由器上区域视图配置:
nssa
图5 NSSA区域实验组网图
观察路由器RT4、RT5、RT6的链路状态数据库和路由表,并没有产生任何缺省路由。
要在NSSA区域ABR上产生缺省路由,在区域视图下使用该命令:
nssa default-route-advertise
如图,区域1是NSSA区域,路由器RT4是其区域中的ABR,现在要在路由器RT4上产生一条缺省路由。
[RT4]
ospf 1
area 0.0.0.1
network 10.45.0.0 0.0.0.255
nssa default-route-advertise
#
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 10.34.0.0 0.0.255.255
观察路由器RT4的链路状态数据库可以发现,路由器RT4在区域1生成一条类型7缺省路由的LSA,Link ID为0.0.0.0。
<RT4>display ospf lsdb
OSPF Process 1 with Router ID 4.4.4.4
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Sum-Asbr 2.2.2.2 3.3.3.3 570 28 80000097 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Sum-Net 10.34.0.0 4.4.4.4 1504 28 80000099 1
NSSA 0.0.0.0 4.4.4.4 1051 36 80000005 1
……………………
NSSA 10.56.0.0 6.6.6.6 282 36 8000000c 1
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
External 10.56.0.0 4.4.4.4 44 36 80000002 1
……………………
External 1.1.1.1 2.2.2.2 7 36 800000f8 1
路由器RT4成的缺省LSA:
[RT4]display ospf lsdb nssa 0.0.0.0
Type : NSSA
LS ID : 0.0.0.0
Adv Rtr : 4.4.4.4
LS Age : 928
Len : 36
Options :None
Seq# : 80000005
Checksum : 0xa4fa
Net Mask : 0.0.0.0
TOS 0 Metric: 1
E Type : 2
Forwarding Address :0.0.0.0
Tag: 1
观察路由器RT3、RT5、RT6的链路状态数据库和路由表,看看路由器RT4缺省路由的泛洪。
路由器RT3的信息:
<RT3>display ip routing-table
Routing Table: public
Destination/Mask Protocol Pre Cost Nexthop Interface
1.1.1.1/32 O_ASE 150 1 10.23.0.2 Ethernet1/0
2.2.2.2/32 OSPF 10 2 10.23.0.2 Ethernet1/0
3.3.3.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
4.4.4.4/32 OSPF 10 11 10.34.0.4 Ethernet2/0
5.5.5.5/32 OSPF 10 21 10.34.0.4 Ethernet2/0
6.0.0.0/24 O_ASE 150 1 10.34.0.4 Ethernet2/0
6.6.6.6/32 OSPF 10 31 10.34.0.4 Ethernet2/0
10.6.0.1/32 O_ASE 150 1 10.34.0.4 Ethernet2/0
10.6.0.2/32 O_ASE 150 1 10.34.0.4 Ethernet2/0
10.6.0.3/32 O_ASE 150 1 10.34.0.4 Ethernet2/0
10.23.0.0/24 DIRECT 0 0 10.23.0.3 Ethernet1/0
10.23.0.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
10.34.0.0/24 DIRECT 0 0 10.34.0.3 Ethernet2/0
10.34.0.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
10.45.0.0/24 OSPF 10 20 10.34.0.4 Ethernet2/0
10.56.0.0/24 OSPF 10 30 10.34.0.4 Ethernet2/0
127.0.0.0/8 DIRECT 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 DIRECT 0 0 127.0.0.1 InLoopBack0
路由器RT5信息:
<RT5>display ospf lsdb
OSPF Process 1 with Router ID 5.5.5.5
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
NSSA 0.0.0.0 4.4.4.4 791 36 80000003 1
……………………
NSSA 10.56.0.0 6.6.6.6 1199 36 8000000d 1
<RT5>display ip routing-table
Routing Table: public
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 O_NSSA 150 1 10.45.0.4 Ethernet2/0
路由器RT6信息:
<RT6>display ospf lsdb
OSPF Process 1 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
NSSA 0.0.0.0 4.4.4.4 994 36 80000003 1
……………………
NSSA 10.56.0.0 6.6.6.6 1400 36 8000000d 1
<RT6> display ip routing-table 0.0.0.0
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 O_NSSA 150 2 10.56.0.5 Ethernet1/0
从上述信息发现,在NSSA区域内的路由器RT5和RT6都有类型7的缺省LSA,并产生相应的缺省路由,区域0的路由器RT3没有该条LSA,可以看出,NSSA区域ABR产生的缺省路由只泛洪到整个NSSA区域,类型7的缺省路由LSA并没有在ABR上转换成类型5的LSA泛洪到整个OSPF域中。
图6 NSSA区域ABR缺省路由泛洪
要在NSSA区域ASBR上产生缺省路由,在区域视图下使用该命令:
nssa default-route-advertise
该命令生效的前提条件是NSSA ASBR已经有一条缺省路由。
如图,区域1是NSSA区域,路由器6是其区域中的ASBR,现在要在路由器RT6上产生一条缺省路由。
[RT6]
ospf 1
import-route direct
area 0.0.0.1
network 6.6.6.6 0.0.0.0
network 10.56.0.0 0.0.0.255
nssa default-route-advertise
#
ip route-static 0.0.0.0 0.0.0.0 6.0.0.2 preference 60
#
观察路由器RT6的链路状态数据库可以发现,路由器RT6在区域1生成一条类型7缺省路由的LSA,Link ID为0.0.0.0。
<RT6>display ospf lsdb
OSPF Process 1 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
NSSA 0.0.0.0 6.6.6.6 423 36 80000003 1
……………………
NSSA 10.56.0.0 6.6.6.6 1382 36 8000000e 1
路由器RT6生成的缺省LSA:
[RT6]display ospf lsdb nssa 0.0.0.0
Type : NSSA
LS ID : 0.0.0.0
Adv Rtr : 6.6.6.6
LS Age : 753
Len : 36
Options : None
Seq# : 80000003
Checksum : 0xeda0
Net Mask : 0.0.0.0
TOS 0 Metric: 1
E Type : 2
Forwarding Address :0.0.0.0
Tag: 1
观察路由器RT3、RT4、RT5的链路状态数据库和路由表,看看路由器RT6缺省路由的泛洪。
路由器RT3的信息:
<RT3>display ip routing-table
Routing Table: public
Destination/Mask Protocol Pre Cost Nexthop Interface
1.1.1.1/32 O_ASE 150 1 10.23.0.2 Ethernet1/0
2.2.2.2/32 OSPF 10 2 10.23.0.2 Ethernet1/0
3.3.3.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
4.4.4.4/32 OSPF 10 11 10.34.0.4 Ethernet2/0
5.5.5.5/32 OSPF 10 21 10.34.0.4 Ethernet2/0
6.0.0.0/24 O_ASE 150 1 10.34.0.4 Ethernet2/0
6.6.6.6/32 OSPF 10 31 10.34.0.4 Ethernet2/0
10.6.0.1/32 O_ASE 150 1 10.34.0.4 Ethernet2/0
10.6.0.2/32 O_ASE 150 1 10.34.0.4 Ethernet2/0
10.6.0.3/32 O_ASE 150 1 10.34.0.4 Ethernet2/0
10.23.0.0/24 DIRECT 0 0 10.23.0.3 Ethernet1/0
10.23.0.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
10.34.0.0/24 DIRECT 0 0 10.34.0.3 Ethernet2/0
10.34.0.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
10.45.0.0/24 OSPF 10 20 10.34.0.4 Ethernet2/0
10.56.0.0/24 OSPF 10 30 10.34.0.4 Ethernet2/0
127.0.0.0/8 DIRECT 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 DIRECT 0 0 127.0.0.1 InLoopBack0
路由器RT4信息:
<RT4>display ospf lsdb
OSPF Process 1 with Router ID 4.4.4.4
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Sum-Asbr 2.2.2.2 3.3.3.3 430 28 800000bb 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Stub 6.6.6.6 6.6.6.6 1434 24 0 0
……………………
Sum-Net 10.34.0.0 4.4.4.4 301 28 80000001 10
NSSA 0.0.0.0 6.6.6.6 956 36 80000023 1
……………………
NSSA 10.56.0.0 6.6.6.6 174 36 8000002f 1
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
External 6.0.0.0 4.4.4.4 65 36 80000002 1
……………………
External 1.1.1.1 2.2.2.2 539 36 80000001 1
<RT4>display ip routing-table 0.0.0.0
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 O_NSSA 150 2 10.45.0.5 Ethernet0/0
路由器5信息:
<RT5>display ospf lsdb
OSPF Process 1 with Router ID 5.5.5.5
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Sum-Net 10.34.0.0 4.4.4.4 557 28 80000001 10
NSSA 0.0.0.0 6.6.6.6 1219 36 80000023 1
NSSA 6.6.6.6 6.6.6.6 1114 36 80000030 1
NSSA 6.0.0.0 6.6.6.6 834 36 80000031 1
NSSA 10.6.0.1 6.6.6.6 771 36 80000031 1
NSSA 10.6.0.2 6.6.6.6 771 36 80000031 1
NSSA 10.6.0.3 6.6.6.6 771 36 80000031 1
NSSA 10.56.0.0 6.6.6.6 428 36 8000002f 1
<RT5>display ip routing-table 0.0.0.0
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 O_NSSA 150 1 10.56.0.6 Ethernet1/0
从上述信息发现,在NSSA区域内的路由器RT4和RT5都有类型7的缺省LSA,并产生相应的缺省路由,区域0的路由器RT3没有该条LSA,可以看出,NSSA区域ASBR产生的缺省路由只泛洪到整个NSSA区域,类型7的缺省路由LSA并没有在ABR上转换成类型5的LSA泛洪到整个OSPF域中。
图7 NSSA区域ASBR缺省路由泛洪
配置一个NSSA区域成为完全NSSA区域,在本区域的ABR上区域视图配置:
nssa no-summary
与NSSA区域不同的是,完全NSSA区域配置后区域内的ABR上会产生一条类型3的缺省路由的LSA,并在NSSA区域内泛洪。
如图,区域1是NSSA区域,路由器RT4是其区域中的ABR,路由器RT6是其中的ASBR。
如图,区域1是NSSA区域,路由器RT4是其区域中的ABR,现在要在路由器RT4上产生一条缺省路由。
[RT4]
ospf 1
area 0.0.0.1
network 10.45.0.0 0.0.0.255
nssa no-summary
#
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 10.34.0.0 0.0.255.255
观察路由器RT4的链路状态数据库可以发现,路由器RT4在区域1生成一条类型3缺省路由的LSA,Link ID为0.0.0.0。
<RT4>display ospf lsdb
OSPF Process 1 with Router ID 4.4.4.4
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Sum-Asbr 2.2.2.2 3.3.3.3 267 28 800000c0 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Sum-Net 0.0.0.0 4.4.4.4 453 28 80000001 1
……………………
NSSA 10.56.0.0 6.6.6.6 1335 36 80000033 1
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
External 6.0.0.0 4.4.4.4 436 36 80000002 1
……………………
External 1.1.1.1 2.2.2.2 49 36 80000006 1
路由器RT4成的缺省LSA:
<RT4>display ospf lsdb summary 0.0.0.0
Type : SumNet
LS ID : 0.0.0.0
Adv Rtr : 4.4.4.4
LS Age : 480
Len : 28
Options :None
Seq# : 80000001
Checksum : 0x39f4
Net Mask : 0.0.0.0
TOS 0 Metric: 1
Tag: 1
查看路由器RT3、RT5、RT6的链路状态数据库和路由表,验证路由器RT4缺省路由的泛洪情况。
路由器RT3的信息:
<RT3>display ip routing-table
Routing Table: public
Destination/Mask Protocol Pre Cost Nexthop Interface
1.1.1.1/32 O_ASE 150 1 10.23.0.2 Ethernet1/0
2.2.2.2/32 OSPF 10 2 10.23.0.2 Ethernet1/0
3.3.3.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
4.4.4.4/32 OSPF 10 11 10.34.0.4 Ethernet2/0
5.5.5.5/32 OSPF 10 21 10.34.0.4 Ethernet2/0
6.0.0.0/24 O_ASE 150 1 10.34.0.4 Ethernet2/0
6.6.6.6/32 OSPF 10 31 10.34.0.4 Ethernet2/0
10.6.0.1/32 O_ASE 150 1 10.34.0.4 Ethernet2/0
10.6.0.2/32 O_ASE 150 1 10.34.0.4 Ethernet2/0
10.6.0.3/32 O_ASE 150 1 10.34.0.4 Ethernet2/0
10.23.0.0/24 DIRECT 0 0 10.23.0.3 Ethernet1/0
10.23.0.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
10.34.0.0/24 DIRECT 0 0 10.34.0.3 Ethernet2/0
10.34.0.3/32 DIRECT 0 0 127.0.0.1 InLoopBack0
10.45.0.0/24 OSPF 10 20 10.34.0.4 Ethernet2/0
10.56.0.0/24 OSPF 10 30 10.34.0.4 Ethernet2/0
127.0.0.0/8 DIRECT 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 DIRECT 0 0 127.0.0.1 InLoopBack0
路由器RT5信息:
<RT5>display ospf lsdb
OSPF Process 1 with Router ID 5.5.5.5
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Sum-Net 0.0.0.0 4.4.4.4 208 28 80000002 1
……………………
NSSA 10.56.0.0 6.6.6.6 1623 36 80000033 1
<RT5>display ip routing-table 0.0.0.0
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 OSPF 10 1 10.45.0.4 Ethernet2/0
路由器RT6信息:
<RT6>display ospf lsdb
OSPF Process 1 with Router ID 6.6.6.6
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
……………………
Sum-Net 0.0.0.0 4.4.4.4 316 28 80000002 1
……………………
NSSA 10.56.0.0 6.6.6.6 1729 36 80000033 1
<RT6>display ip routing-table 0.0.0.0
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 OSPF 10 2 10.56.0.5 Ethernet1/0
从上述信息发现,在NSSA区域内的路由器RT5和RT6都有类型3的缺省LSA,并产生相应的缺省路由,区域0的路由器RT3没有该条LSA,可以看出,完全NSSA区域ABR产生的缺省路由只泛洪到整个NSSA区域。
A:在某些特定组网下(主要是Area 0只采用loopback接口,没有形成邻居),STUB区的ABR不会产生缺省路由。对于区域边界路由器(ABR)来说,一旦失去跟骨干区域的连接(骨干区域没有FULL邻居),那么就要停止发布缺省路由。这主要用于解决当区域存在多个出口的ABR时,此时可以通过别的ABR出口继续转发报文。对于完全NSSA区的ABR设备在产生3类缺省路由时,也是依据同样的原则来判断。
A:不会形成环路的。当一个STUB区域中的ABR接收到同一区域ABR发出的默认路由LSA的时候,它只会将其放到LSA Database里,而不会计算出路由,这样就避免了两个ABR缺省路由相互指向形成环路。
如果OSPF路由器已经发布了缺省路由LSA,那么不再学习其它路由器发布的相同类型缺省路由(即路由计算时不再计算其它路由器发布的相同类型缺省路由LSA)。
原因主要有以下两点:
本路由器自身已经具有对外的出口,所以不需要学习其它路由器发布的缺省路由。
如果学习其它路由器发布的缺省路由,就会形成缺省路由的下一跳相互指向,造成路由环路。
A:不会的。按RFC 3101:OSPF NSSA Option的规定,在NSSA区域有多个ABR时,只有最大的Router ID的ABR负责将type 7 LSA转换为type 5 LSA。
如果OSPF路由器已经发布了缺省路由LSA,那么不再学习其它路由器发布的相同类型缺省路由(即路由计算时不再计算其它路由器发布的相同类型缺省路由LSA)。
OSPF缺省路由发布的方式取决于引入缺省路由的区域类型,主要分普通区域、STUB区域和完全STUB区域、NSSA区域和完全NSSA区域。
OSPF缺省路由发布的方法:
l 配置特定的区域自动生成,STUB/Totally STUB/Totally NSSA
l 配置生成缺省路由的命令:普通区域 default-route-advertise [ always ]
NSSA区域 nssa default-route-advertise
OSPF缺省路由通常应用于下面两种情况:区域边界路由器(ABR)发布和自治系统边界路由器(ASBR)发布。
产生条件
区域类型 | 自动产生 | 配置 | ABR | ASBR | 和骨干区有FULL邻居 | 已有缺省路由 | 产生LSA类型 | 泛洪范围 |
普通区域 |
| default-route-advertise |
| √ |
| √ | 类型5 | 整个OSPF域 |
普通区域 |
| default-route-advertise always |
| √ |
|
| 类型5 | 整个OSPF域 |
Stub区域 | √ |
| √ |
| √ |
| 类型3 | STUB |
完全STUB区域 | √ |
| √ |
| √ |
| 类型3 | STUB |
NSSA区域 |
| nssa default-route-advertise | √ |
|
|
| 类型7 | NSSA |
NSSA区域 |
| nssa default-route-advertise |
| √ |
| √ | 类型7 | NSSA |
完全NSSA区域 | √ |
| √ |
| √ |
| 类型3 | NSSA |
表1 OSPF缺省路由总结表