在大型网络中,使用OSPF路由协议时经常会遇到以下问题:
1、在大型网络环境中,网络结构的变化是时常发生的,因此OSPF路由器就会经常运行SPF算法来重新计算路由信息,大量消耗路由器的CPU和内存资源。
2、在OSPF网络中,随着多条路径的增加,路由表变得越来越大,每一次路径的改变都会使路由器不得不花费大量的时间和资源去重新计算路由表,路由器变得越来越低效。
3、包含完整网络结构信息的链路状态数据库也会越来越大,这将有可能使路由器的CPU和内存资源彻底耗尽,从而导致路由器的崩溃。
所以,为了解决这个问题,OSPF允许把大型网络划分成多个更易管理的小型区域。这些小型区域可以交换路由汇总信息,而不是每一个路由器的细节。通过划分成很多个小型区域,OSPF的工作可以更加流畅。
生成OSPF多区域后能够改善网络的可扩展性、实现快速收敛。
OSPF的容量:
单个区域所支持的路由器的数量范围是30~200,但在一个区域内实际加入的路由器数量要小于单个区域所能容纳的路由器的最大数量。因为还有更为重要的一些因素影响着这个数量,如一个区域内链路的数量、网络拓扑稳定性、路由器的内存和CPU性能、路由汇总的有效使用和注入这个区域的汇总链路状态通告(LSA)的数量等。正是由于这些因素,有时在一些区域里包含25台路由器可能都显得多,而在另外一些区域内却可以容纳多于500台路由器。
OSPF被分成多区域的能力是依照分层路由实现的,分层路由具有以下优势:
1、降低了SPF运算的频率。
2、减小了路由表。
3、减小了链路状态更新报文(LSU)的流量。
路由器的类型分为:内部路由器、区域边界路由器和自治系统边界路由器。
内部路由器(Internel Router):指所有的接口都属于同一个区域的路由器。
区域边界路由器(ABR):指连接一个或多个区域到骨干区域的路由器,并且这些路由器会作为域间通信量的路由网关。因而,ABR路由器至少有一个接口是属于骨干区域的,而且必须为每一个与之相连的区域维护不同的链路状态数据库。所以,ABR路由器通常需要比一般的内部路由器有更多的内存和更高性能的路由处理器。ABR路由器将会汇总与它相连区域的拓扑信息给骨干区域,然后将这些汇总信息传送给其他区域。
自治系统边界路由器(ASBR):可以认为他是OSPF域外的通信量进入OSPF域的网关路由器,也就是说,ASBR路由器是用来把其他路由选择协议学习到的路由通过路由选择重分配的方式注入OSPF域的路由器。一个ASBR路由器可以是位于OSPF域的AS内部的任何路由器,他可以是一台内部路由器或者ABR路由器。
OSPF将区域划分为不同类型,包括骨干区域、标准区域、末梢区域、完全末梢区域、非纯末梢区域。根据互联区域的类型和数量不同,OSPF提供了不同类型的路由更新。
运行OSPF的整个区域属于一个AS,AS范围外的路由都属于外部路由。骨干区域用于连接其他区域,跨区域的流量都要通过骨干区域传递,骨干区域的稳定性、健壮性至关重要。骨干区域上的路由器大都是ABR。
1、骨干区域 Area 0:该区域的ID一定为0,它是连接所有其他区域的核心域,相当于交换网络的汇聚层。
2、标准区域:该区域可以接收各种链路状态信息和汇总的路由通告。没有特殊定义的区域就是标准区域。其他区域类型将在后面进行讲解。
一台运行OSPF路由协议的路由器中,所有有效的LSA通告都被存放再它的链路状态数据库中,正确的LSA通告可以描述一个OSPF区域的网络拓扑结构。
每台路由器都创建了由每个接口、对应的相邻节点和接口速率组成的数据库,链路状态数据库中的每个条目都称为LSA(链路状态通告)。
常见的LSA有六种类型,分别是:LSA1、LSA2、LSA3、LSA4、LSA5、LSA7,其中各LSA的的作用如下:
LSA1:路由器LSA,每一台运行OSPF路由协议的路由器都会产生路由器LSA通告,这个最基本的LSA通告列出路由器所有的链路或接口,并指明了他们的状态和沿每条链路方向出站的开销。这些LSA通告只会在始发它们的区域内部进行泛洪,可以通过show ip ospf database router来查看数据库中列出的所有路由器LSA通告。
OSPF的常用检查命令:
配置OSPF多区域的命令:
R1(config)#router ospf 1
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0 (area 后跟区域ID号)
R1(config-router)#network 10.0.0.0 0.255.255.255 area 0
R1(config-router)#network 20.0.0.0 0.255.255.255 area 1
在OSPF区域中,一些区域出口很少,对区域外的路由仅需要一条默认路由,为了减少区域内路由器的路由条目,可以把此区域配置为末梢区域,在末梢区域中仅仅需要域内的路由条目和一条指向区域边界路由器的默认路由就能实现所有的选路,所以在末梢区域中可以减少不必要的LSA泛洪。
能够进入或存在末梢区域的链路状态通告LSA的类型为1、2、3类型。
而完全末梢区域只存在1、2类型。
满足一下四个条件的区域可以被认定为末梢区域或者完全末梢区域。
1、只有一个默认路由作为其区域的出口
2、区域不能作为虚链路的穿越区域
3、Stub区域里无自治系统边界路由器ASBR
4、不是骨干区域Area 0
末梢区域的配置:
R1(config)#router ospf 1
R1(config-router)#network 1.1.1.1 0.0.0.0 area 1
R1(config-router)#network 10.0.0.0 0.255.255.255 area 1
R1(config-router)#area 1 stub (将此区域配置为末梢)
完全末梢区域的配置:
R1(config)#router ospf 1
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 10.0.0.0 0.255.255.255 area 0
R1(config-router)#network 20.0.0.0 0.255.255.255 area 1
R1(config-router)#network 30.0.0.0 0.255.255.255 area 2
R1(config-router)#area 1 stub no-summary (关闭汇总功能)
R1(config-router)#area 2 stub (配置末梢)