<向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