高效率地进行LSA的交换
在RIP等距离向量路由协议中,路由信息的交互是通过周期性地传送整张路由表的机制来完成的,该机制使距离向量路由协议无法高效地进行路由信息的交换。在OSPF协议中,为了提高传输效率,在进行链路状态通告(LSA)数据包传输时,使用包含LSA头(Head)的链路状态数据库描述数据包进行传输,因为每个LSA头中不包含具体的链路状态信息,他只含有各LSA的标识(该标识唯一代表一个LSA),所以,该报文非常小。邻接路由器间使用这种字节数非常小的数据包,首先确认在相互之间哪些LSA是对方没有的,而哪些LSA在对方路由器中也存在,邻接路由器间只会传输对方没有的LSA。对于自己没有的LSA,路由器会发送一个LS Request报文给邻接路由器来请求对方发送该LSA,邻接路由器在收到LS Request报文后,回应一个LS Update报文(包含该整条LSA信息),在得到对方确认后(接收到对方发出的LS ACK报文),这两台路由器完成了本条LSA信息的同步。
由此可见,OSPF协议采用增量传输的方法来使邻接路由器保持一致的链路状态数据库(LSDB)。
小结
综上所述,我们能归纳出在OSPF协议中使用到的五种协议报文,并简单介绍了他们的作用,我们作个简单的小结:
◆ Hello报文,通过周期性地发送来发现和维护邻接关系;
◆ DD(链路状态数据库描述)报文,描述本地路由器保存的LSDB(链路状态数据库);
◆ LSR(LS Request)报文,向邻居请求本地没有的LSA;
◆ LSU(LS Update)报文,向邻居发送其请求或更新的LSA;
◆ LSAck(LS ACK)报文,收到邻居发送的LSA后发送的确认报文。
OSPF协议采用的特别机制
指定路由器和备份指定路由器
在OSPF协议中,路由器通过发送Hello报文来确定邻接关系,每一台路由器都会和其他路由器建立邻接关系,这就需求路由器之间两两建立邻接关系,每台路由器都必须和其他路由器建立邻接关系,以达到同步链路状态数据库的目的,在网络中就会建立起n×(n-1)/2条邻接关系(n为网络中OSPF路由器的数量),这样,在进行数据库同步时需要占用一定的带宽。
为了解决这个问题,OSPF采用了一个特别的机制:选举一台指定路由器(DR),使网络中的其他路由器都和他建立邻接关系,而其他路由器彼此之间不用保持邻接。路由器间链路状态数据库的同步,都通过和指定路由器交互信息完成。这样,在网络中仅需建立n-1条邻接关系。备份指定路由器(BDR)是指定路由器在网络中的备份路由器,他会在指定路由器关机或产生问题后自动接替他的工作。这时,网络中的其他路由器就会和备份指定路由器交互信息来实现数据库的同步。
要被选举为指定路由器,该路由器应符合以下需求:
◆ 该路由器是本网段内的OSPF路由器;
◆ 该OSPF路由器在本网段内的优先级(Priority)>0;
◆ 该OSPF路由器的优先级最大,如果所有路由器的优先级相等,路由器号(Router ID)最大的路由器(每台路由器的Router ID是唯一的)被选举为指定路由器。
满足以上条件的路由器被选举为指定路由器,而第二个满足条件的路由器则当选为备份指定路由器。
指定路由器和备份指定路由器的选举,是由路由器通过发送Hello数据报文来完成的。
OSPF协议中的区域划分
OSPF协议在大规模网络的使用中,链路状态数据库比较庞大,他占用了非常大的存储空间。在执行最小生成数算法时,要耗费较长的时间和非常大的CPU资源,网络拓扑变化的概率也大大增加。这些因素的存在,不仅耗费了路由器大量的存储空间,加重了路由器CPU的负担,而且,整个网络会因为拓扑结构的经常变化,长期处于“动荡”的不可用的状态。
OSPF协议之所以能够支持大规模的网络,进行区域划分是个重要的原因。
OSPF协议允许网络方案设计人员根据需要把路由器放在不同的区域(Area)中,两个不同的区域通过区域边界路由器(ABR)相连。在区域内部的路由信息同步,采取的方法和上文提到的方法相同。在两个不同区域之间的路由信息传递,由区域边界路由器(ABR)完成。他把相连两个区域内生成的路由,以类型3的LSA向对方区域发送。此时,一个区域内的OSPF路由器只保留本区域内的链路状态信息,没有其他区域的链路状态信息。这样,在两个区域之间减小了链路状态数据库,降低了生成数算法的计算量。同时,当一个区域中的拓扑结构发生变化时,其他区域中的路由器不必重新进行计算。OSPF协议中的区域划分机制,有效地解决了OSPF在大规模网络中应用时产生的问题。
OSPF协议使用区域号(Area ID)来区分不同的区域,其中,区域0为骨干区域(根区域)。因为在区域间不再进行链路状态信息的交互(实际上,在区域间传递路由信息采用了可能导致路由自环的递归算法),OSPF协议依靠维护整个网络链路状态来实现无路由自环的能力,在区域间无法实现。所以,路由自环可能会发生在OSPF的区域之间。解决这一问题的办法是,使所有其他的区域都连接在骨干区域(Area 0)周围,即所有非骨干区域都和骨干区域邻接。对于一些无法和骨干区域邻接的区域,在他们和骨干区域之间建立虚连接。
结束语
本文对OSPF动态路由协议的主要原理和特性作了简单的介绍,没有涉及到自治系统(AS)以外的路由及路由聚合。
OSPF协议采用路由器间建立和维护邻接关系,维护链路状态信息数据库,采用最短生成树算法,避免了路由自环。同时,又采用了一些特别的机制,确保了他在大规模网络中的可用性。
转载于:https://blog.51cto.com/393065138/501797