1.大型OSPF网络域存在的问题
我们把一系列连续的OSPF路由器组成的网络称为OSPF域(Domain),为了保证每台路由器能够正确地计算路由,就不得不要求域内所有的路由器同步LSDB,即拥有相同的LSDB,从而达到对整个OSPF网络的一致认知。当网络的规模变得越来越大时,每台路由器所维护的LSDB也逐渐变得臃肿,而基于这个庞大的LSDB进行的计算也势必需要耗费更多的设备资源,这无疑将导致设备的负担加大。另外网络拓扑的变化将会引起整个域内所有路由器的重计算。而且域内路由无法进行汇总,随着网络规模的增大,每台路由器需要维护的路由表也越来越庞大,这又是一个不能被忽略的资源消耗。
2.多区域的优势
基于上述考虑,OSPF引入了区域(Area)的概念。在一个较大规模的网络中,我们会把整个OSPF域切割成多个区每个区域独立地进行SPF计算。区域内的拓扑结构对于区域外部而言是不可见的,而且区域内部拓扑变化的通知可以被局限在该区域内,从而避免对区域外部造成影响。如果一台路由器的多个接口分别接入了多个不同的区域,则它将为每个区域分别维护一套LSDB。多区域的设计极大程度地限制了LSA的泛洪,有效的把拓扑变化的影响控制在区域内,另外在区域边界路由器上可以通过执行路由汇总来减少网络中的路由条目数量。多区域提高了网络的可扩展性,有利于组建更大规模的网络。
3.区域ID
OSPF的每一个区域都有一个编号,不同的编号表示不同的区域,这个区域编号也被称为区域ID(Area-ID)。OSPF的区域ID是一个32bit的非负整数,按点分十进制的形式(与IPv4地址的格式一样)呈现,例如Area0.0.0.1,为了简便起见,我们也会采用十进制的形式来表示:Area0.0.0.1等同于Areal。许多网络厂商的设备同时支持这两种区域ID配置及表示方式。
4.骨干区域Area0
上文已经说到,一个OSPF域中允许存在多个区域,就像一个城市可以包含多个行政区,而每个城市都有一个中心区,类似于枢纽的概念,对于OSPF而言,这就是骨干区域Area0。OSPF要求域中的所有非骨干区域(非0区域)都必须与Area0相连。一个域中如果存在多个区域,那么必须有且只能有一个Area0,Area0负责在区域之间发布路由信息。为避免区域间的路由形成环路,非骨干区域之间不允许直接相互发布区域间的路由。因此,所有的ABR(Area border router区域边界路由器)都至少有一个接口属于Area0,所以Area0始终包含所有的ABR。形象一点的理解是,区域间的路由模型有点类似星型结构,骨干区域在中间,而每个非骨干区域是分支。
5.虚链路(Virtual link)
在某些场景下,比如企业合并,有可能出现非骨干区域没有和Area0相连,此时该区域的路由计算就会出现问题。但是网络改动可能牵涉到成本等问题,此时采用一种临时的解决方案,那就是OSPF虚链路(Virtual link)。Virtual link是一种逻辑的链路,并非一条真实的链路,您可以将它理解为骨干区域的一个延伸,通过搭建一条Virtual Link可以将原本没有与骨干区域直接相连的区域和后者连接起来。另一个有可能遇到的问题是,骨干区域不连续或者被分割的情况。从而导致同一个OSPF域中出现不连续的骨干区域,这是也可以使用虚链路临时解决问题。
值得一提的是,Virtual link并不作为一种常规的技术手段在实际的项目中被部署,而是一种临时性的方案,合理的OSPF网络规划依然是一个最佳的选择。
转载请注明:零五宝典 » OSPF从入门到精通系列(25)—OSPF多区域、虚链路