OSPF简介
OSPF(OPEN SHORTEST PATH FIRST)开放式最短路径优先,它是一种链路状态路由协议,根据链路的成本来选择最佳路径。OSPF是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(Autonomous System,AS)内决策路由。
OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。就是说,每个运行OSPF进程的路由器都有整个网络的“地图”。
基本原理
在一个自治系统内可划分出若干个区域,每个区域根据自己的拓扑结构计算最短路径,这减少了OSPF路由实现的工作量;
OSPF属动态的自适应协议,对于网络的拓扑结构变化可以迅速地做出反应,进行相应调整,提供短的收敛期,使路由表尽快稳定化;
每个路由器都维护一个相同的、完整的全网链路状态数据库。这个数据库很庞大,寻径时,该路由器以自己为根,构造最短路径树,然后再根据最短路径构造路由表。路由器彼此交换,并保存整个网络的链路信息,从而掌握全网的拓扑结构,并独立计算路由。
OSPF的三张表:
一旦设置了多区域,区域间的路由是通过ABR(区域边界路由器)转发的,区域内部的路由器只要知道到ABR的路由就行了,大大减少了内部区域的路由条目,提高了路由器的性能。
首先,当路由器开启OSPF后,路由器之间就会相互发送HELLO报文,HELLO报文中包含一些路由器和链路的相关信息,发送HELLO报文的目的是为了形成邻居表。
然后,路由器之间就会发送LSA(LINK STATE ADVERTISEMENT,链路状态通告),LSA告诉自己的邻居路由器和自己相连的链路的状态,经过发LSA,记录LSA,转发LSA,最后形成LSDB(链路状态数据库,即拓扑表),形成网络的拓扑表。
形成拓扑表之后,再经过SPF算法,通过计算LSDB,最后形成路由表。
形成路由表后,路由器就可以根据路由表来转发数据包,如果网络拓扑发生了变化,或是网络链路出现了问题,OSPF协议还是会经过这三张表来重新计算新的路由,只不过不会这么复杂了,路由器在默认情况下,10S就会发送一次HELLO报文,以检测链路状态,保证链路始终是正常的。