发现邻居--选举DR/BDR--形成链路状态数据库--SPF算法--形成路由网络
在 发现邻居--选举DR/BDR 阶段路由器之间互相发送Hello报文,根据Hello包,每台路由器生成了基本的Datebase;然后根据优先级和RID在每一个网段选出一个DR/BDR;这个时候路由器处在two-way状态。
在 形成链路状态数据库--SPF算法--形成路由网络 过程中,首先互相发送DBD报文,互相交换Datebase,这个时候路由器处于Exstate状态;如果发现收到的Datebase和自己的有出入,马上向IR/ABR/ASBR和DR/BDR发送LSR链路请求报文,这个时候路由器处于Exchange状态;收到的一方会发送LSU链路更新报文,链路更新报文承载着LSA(十一种),LSA(Link State Advertisement)链路状态通告包含着各种路由信息,通过这些路由信息更新生成自己的LSDB,这个时候路由器处于Loading状态;通过SPF计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由,这个时候路由器达到Full状态,整个OSPF路由网络建成。
Hello报文 发现邻居、建立邻接、维持邻接、确保双向通信、选举DR和BDR。
DBD报文 Datebase description 数据库描述报文
LSR报文 Link-state Resquest 链路请求报文
LSU报文 Link-state Update 链路更新报文
LSACK报文 Link-state Acknowledgement 链路确认报文
Down:此状态还没有与其他路由器交换信息。首先从其ospf接口向外发送hello分组,还并不知道DR(若为广播网络)和任何其他路由器。发送hello分组使用组播地址224.0.0.5。
Attempt: 只适于NBMA网络,在NBMA网络中邻居是手动指定的,在该状态下,路由器将使用HelloInterval取代PollInterval来发送Hello包。
Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来。
two-way: 双向会话建立,而RID彼此出现在对方的邻居列表中。(若为广播网络:例如:以太网。在这个时候应该选举DR,BDR。)
ExStart: 信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DD Sequence Number,路由器ID大的的成为Master。
Exchange: 信息交换状态,本地路由器和邻居交换一个或多个DBD分组(也叫DDP),DBD包含有关LSDB中LSA条目的摘要信息。
Loading: 信息加载状态:收到DBD后,将收到的信息同LSDB中的信息进行比较。如果DBD中有更新的链路状态条目,则向对方发送一个LSR,用于请求新的LSA。
Full: 完全邻接状态,邻接间的链路状态数据库同步完成,通过邻居链路状态请求列表为空且邻居状态为Loading判断。