一、基本概念
OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。主要特征:使用分布式的链路状态协议(Link state protocol0)。
二、工作原理
1、工作流程图
OSPF协议工作主要分为四个阶段:寻找邻居、建立邻里关系、链路状态信息传递、计算路由。
2、邻居关系建立流程
3、传递信息
OSPF路由器之间交换链路状态公告(LSA)信息。 LSA: Link-State Advertisement。
OSPF的LSA中包含连接的接口、使用的Metric及其他变量信息。OSPF路由器收集链接状态信息并使用SPF算法来计算到各节点的最短路径,用于维护路由器的路由表。
4.OSPF路由器的状态
(1)Down:此状态还没有与其他路由器交换信息。首先从其ospf接口向外发送hello分组,还并不知道DR(若为广播网络)和任何其他路由器。发送hello分组使用组播地址224.0.0.5。
(2)Attempt: 只适于NBMA网络,在NBMA网络中邻居是手动指定的,在该状态下,路由器将使用HelloInterval取代PollInterval来发送Hello包。
(3)Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来。
(4)two-way: 双向会话建立,而RID彼此出现在对方的邻居列表中。(若为广播网络:例如:以太网。在这个时候应该选举DR,BDR。)
(5)ExStart: 信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DD Sequence Number,路由器ID大的的成为Master。
(6)Exchange: 信息交换状态,本地路由器和邻居交换一个或多个DBD分组(也叫DDP),DBD包含有关LSDB中LSA条目的摘要信息。
(7)Loading: 信息加载状态:收到DBD后,将收到的信息同LSDB中的信息进行比较。如果DBD中有更新的链路状态条目,则向对方发送一个LSR,用于请求新的LSA。
(8)Full: 完全邻接状态,邻接间的链路状态数据库同步完成,通过邻居链路状态请求列表为空且邻居状态为Loading判断。
三、特点
1、向本自治系统中的所有路由器发送信息,使用洪泛法(洪泛法Flooding是一种简单的路由算法,将收到的封包,往所有的可能连结路径上递送,直到封包到达为止)。
2、发送的信息是与本路由器相邻的所有路由器的链路状态。
3、只有当链路状态发生变化时,路由器才向所有路由器使用洪泛法发送此信息。
4、OSPF的链路状态数据库能够较快地进行更新,使各个路由器能及时更新其路由表。更新过程收敛得快。
四、区域划分
OSPF协议引入“分层路由”的概念,将网络分割成一个“主干”连接的一组相互独立的部分,这些相互独立的部分被称为“区域”(Area),“主干”的部分称为“主干区域”。每个区域就如同一个独立的网络,该区域的OSPF路由器只保存该区域的链路状态。每个路由器的链路状态数据库都可以保持合理的大小,路由计算的时间、报文数量都不会过大。
1、区域种类
(1)标准区域:一个标准区域可以接收链路更新信息和路由总结
(2)主干区域:主干区域是连接各个区域的中心实体。主干区域始终是“区域0”,所有其他的区域都要连接到这个区域上交换路由信息。主干区域拥有标准区域的所有性质
(3)存根区域:存根区域是不接受自治系统以外的路由信息的区域
(4)完全存根区域
(5)不完全存根区域:它类似于存根区域,但是允许接收以LSA Type 7发送的外部路由信息,并且要把LSA Type 7转换成LSA Type 5
2、路由器种类
(1)骨干路由器:具有连接主干区域端口的路由器
(2)区域边界路由器:概括从其他区域来的信息,将区域连接到主干网
(3)区域内部路由器:所有端口在同一区域的路由器,维护一个链路状态的数据
(4)自治边界系统路由器:和其他自治系统交换路由信息,将非OSPF的网络信息传入OSPF网络