<向OSPF区域注入默认路由>

第一种做法:

需要先写一条静态的默认路由,再用命令下发。

ip route 0.0.0.0 0.0.0.0 Serial 0

router ospf 100

default-information originate

O*E2 0.0.0.0/0 [110/1] //以外部路由的形式下发默认路由,metric值默认为1

第二种做法:

不需要写一条静态的默认路由,直接下发。

router ospf 100

default-information originate always

还可在下发默认路由时指定metric的类型和metric值 router ospf 11

default-information originate always metric-type 1 metric 3

<OSPF特殊区域>

在OSPF中共有四类特殊区域,都是用来对OSPF做优化的。可以减少一个区域中的LSA3和LSA5。

1、Stub

2、Totally Stub 3、NSSA

4、Totally NSSA

<Stub>

·将某区域设为Stub可阻止LSA4/5进入Stub区域,缩小了区域内路由器的LSDB,降低内存消耗。

·Stub区域中,ABR会发出一条LSA3默认路由给Stub区域的其他路由器。 默认的Seed Cost=1

·配置Stub区域的注意点:

1、必须将Stub区域的所有路由器都配成Stub。

2、Stub区域不能用作虚链路的中转区域。 3、Stub区域中不能出现ASBR。 4、Area 0不能配成Stub。

·hello报文中有一个stub area flag,也叫E位,所有的stub路由器会将这一位置为0,路由器建邻居的时候,将比较这一位,要求必须匹配。

配置命令:

router ospf 110 area 2 stub

area 2 default-cost 6 (在ABR上做,改Seed Cost=6)在同时有两个ABR的情况下,可通过修改这个COST值来实现选路

<Totally Stubby > Cisco 私有 ·更加缩小区域内路由器的LSDB,在Stub基础上,又阻止LSA3。(阻止LSA3/4/5 ) ·也会由ABR发出一条LSA3默认路由给Stub区域内的其他路由器。

配置步骤:

先配置出一个STUB区域,然后在ABR上打上以下命令: router ospf 110

area 2 stub no-summary //(只需在ABR上做)

<NSSA(Not-So-Stubby Areas)>

·NSSA区域和Stub区域一样会阻止LSA4/5。

·NSSA区域打破了Stub区域的规则,可以存在ASBR。

·ASBR会引入外部路由,是以LSA7引入的,只有NSSA区域中才会现LSA7。 ·NSSA区域的边界ABR会将LSA7转成LSA5,传播到其他区域。这时,ABR也成为了ASBR,因为它也引入了LSA5。其它区域路由器看到LSA5的通告路由器是ABR。 ·如果在NSSA区域中,有两个ABR的话,只有router-id大的ABR会做7转5的工作。

配置命令:

router ospf 110 area 2 nssa

注意:NSSA区域不会自动产生默认路由,要手动下发一条

router ospf 110

area 2 nssa default-information-originate

(在ABR上做,由ABR产生一条LSA7默认路由传播到NSSA其他路由器,默认Seed Cost=1,并且不会发生变化)

还可改动默认路由的metric类型,metric值 router ospf 110

area 2 default-cost 6 //(在ABR上做,改Seed Cost=6) area 2 nssa default-information-originate metric 6 metric-type 1

对ABR上有外部路由进入NSSA区域时,如果要将其阻止,用以下命令,因为在ABR向nssa区域下发默认路由后,不需要它再将它连接的一些外部区域路由传进NSSA区域

router ospf 110

area 2 nssa no-redistribution //在ABR上做

在NSSA区域中,LSA7的forward address会出现不为零的情况,会变为ASBR上最后一个宣告进OSPF区域的接口的address。在特定的环境下,这将给网络造成问题,可用以下命令解决: router ospf 110

area 2 nssa translate type7 suppress //这个命令通常用在NSSA区域的边界路由器上,作用是在7类转5类出去的时候,把这个forward address变成0.0.0.0

totally NSSA area

也是CISCO私有特性--

Totally NSSA,能阻止LSA3/4/5,并且由ABR产生LSA3默认路由传播到NSSA其他路由器

R2(config-router)#area 2 nssa no-summary //把三类的LSA也干掉,同时也下发一条三类的默认路由,并且这条默认路由会取代default-information-originate所下发的默认路由

如果在ABR上用下面的命令,LSDB中会出现LSA3/7默认路由,路由表中只会显示LSA3默认路由 router ospf 110

area 2 nssa no-redistribution default-information-originate no-summary

在下列这种情况下5类LSA的forward address也会出现不为0的情况:

1、在R1和R2上运行OSPF

2、在R1上写静态路由,下一跳指向R3 (是静态,不是默认) 3、和R3相连的接口必须是以太口 4、将R1的E0口也宣告进OSPF

5、R1的E0口不能是passive-interface 6、在R1上将静态路由重分布进OSPF

这时,你会发现R1产生的5类LSA中forward address是R3的接口IP

如果在R1上写默认路由指向R3,然后在R1上使用default-information originate 下发默认路由,这条默认路由LSA的forward address也会变为R3的接口IP。

<OSPF区域的连接问题>

如果出现下面这种情况:一个普通区域没有跟area 0区域相连,可使用下面的三种方法来解决。

1)在ABR上起不同OSPF进程,进行OSPF之间的重分布。

例如:R1的s0口在area 1中,进程号是10,s1口在area 2中,进程号是20,然后重分布

Router ospf 10 router ospf 20

Redistribute ospf 20 subnets redistribute ospf 10 subnets

2)tunnel 只要在区域的两个边界上配置

R1: R2:

Int tunnel 1 int tunnel 2

Tunnel source s1 tunnel source s1

Tunnel destination 12.1.1.2 tunnel destination 12.1.1.1