OSPF是一种基于SPF算法的链路状态路由协议。算法
上图是在一个OSPF区域里面添入一台新的路由器的时候,OSPF协议的工做过程,若是你能很是详细的叙述出这张图的话,基本上OSPF协议的工做过程你就掌握了。
首先你们要清楚,一台运行了OSPF协议的路由器,最终都会存储三张表:邻居表、拓扑表、路由表。下面以这三张表的产生过程为线索,来分析在这个过程当中,路由器发生了哪些变化,从而说明OSPF协议的工做过程。数据库
(一)邻居表的创建网络
一台新加入OSPF区域的路由器首先要跟邻居路由器创建邻接关系,过程以下:并发
新路由器发出第一个hello分组之后等待应答,等待的时间间隔为hello分组的四倍等待期间的状态称为路由器的初始状态,等待期间,新路由器从另一台路由器那里收到hello分组,并获知DE和BDR,若是没有,则开始选择。网络上的其余路由器收到新路由器发的hello0分组之后将该路由器的router Tn加入到拓扑数据库中,并发一回应hello分组,其中包含本身的router ID全部邻居组成的列表。ide
新路由器看到本身的ID出如今其余路由器应答的邻居列表中创建了邻接关系,新路由器将其状态改成双向。学习
经过上面3步,新加入的路由器和其邻居路由器已经创建了邻接关系。spa
(二)拓扑表的创建orm
在创建拓扑表的时候,新加入的路由器要经历预启动状态、交换状态、加载状态、彻底邻接状态。下面就将此过程,以图的形式展现给你们:router
(2)交换状态:两台路由器都发送DBD,DR发送一系列的DBD,其中包括含了存储在其database中的网络。DBD中没有包含详细的必要信息,只是为了从其余邻居路由器接收到DBD消息报文以后,与本身的数据库进行比较。blog
(3)加载状态:新路由器须要更详细的信息,将使用LSR(链路状态请求包)进行特定某LSA的详细信息的请求,而被请求端则会响应,而且会发送LSU(链路状态更新包),此包包含了信息的LSA信息。
通过以上四步,此OSPF区域的全部路由器的数据拓扑图都达到了同步。
(三) 而后每一个路由器按照产生的全区域数据拓扑图,再运行SPF算法,产生到达目标网络的路由条目。
通过以上三大步,OSPF协议的运行过程基本结束。
在上面的过程中有几个很重要的问题须要注意:
1》此协议的管理距离是1十、OSPF路由进程ID的范围必须在1-65535之间,并且只具备本地含义,不一样路由器的路由进程ID能够不一样、区域ID在0至4294967295,当区域值取0时本区域称为主干区域;
2》肯定router ID遵循以下顺序:
用router ID 命令指定的路由器ID的优先级最高
若是没有指定,那么选IP地址最大的环回接口的IP地址为route ID
若是没有换回接口,就选择UP端口中IP值最大的为router ID
但仍是建议使用命令指定,这样可控性比较好;
3》DR选举的原则
首要因素是时间,最早启动的路由器被选举成为DR
若是同时启动,或者从新选举,则看接口优先级(0-255),优先级最高的被选举成DR,在默认状况下,多路访问网络的接口优先级为1,点到点网络的接口优先级为0,修改接口优先级的命令是“ip ospf priority”,若是接口的优先级被设置为0,那么该接口不参与DR选举。
更多网工学习资料,获取认证相关学习内容,能够关注我私信回复:“学习”
若是前二者相同,最后看路由器ID,路由器ID最高的被选举成DR。
DR选举时非抢占的,除非人为地从新选举。从新选举DR的方法有两种,一是路由器从新启动;二是执行“clear ip ospf process"命令。
但愿能给各位带来帮助,peace!