ospf协议有四个主要工作过程是?
整个ospf协议关系建立分4个主要阶段:
1、邻居发现阶段:
以P2P和广播类型网络中设备为例如下图1
图1 OSPF邻接关系建立示意图
首先,当R1的ospf接口启动路由进程后,会以组播方式向所连接的同网段所有直连的ospf设备发送一个hello报文。此时因为R1没有与其他设备建立邻居关系,不知道其他设备的路由器ID,所以此hello报文中只封装了自己ospf路由区域的路由ID。
当R2收到来自R1的hello报文后,将收到来自R1报文的接口转换为init状态,同时R2从接收到的hello报文中获取R1的路由ID并添加到邻居列表中。
然后在deadinterval超时前以组播方式向所连接网段中的所有直接连接的ospf设备发送一个封装了自己路由ID和R1路由ID的hello报文。
当R1收到来自R2的hello报文后发现里面有自己的路由ID,则将收到来自R2报文的接口转为2-way状态,同时从收到的报文中获取R2的路由ID并添加到邻居列表中,在deadinterval超时前以组播方式向所连接的网段中所直连接的ospf设备发送封装了自己的路由ID 和R2路由ID 的hello报文。
当R2再次收到来自R1的hello报文,发现里面有自己的路由ID后,将收到来自R1报文的接口转换成2-way状态。这是R1和R2建立双向2-way邻居关系。
通过以上4步(两次握手)建立起邻居关系,进入主从关系确立阶段。
2、主从关系确立阶段
也就是DR/BDR的选举。在双方都进入2-way后,各自通过hello报文进行DR/BDR选举。
DR和BDR是由同一网段中所有路由器根据路由优先级和路由器ID选举出来的,只有hello报文中Rtr Pri(优先级)字段大于0 的路由器才具有选举资格。
在与一个或多个邻居之间都进入2-way之后,本地路由器对每个邻居发来的hello包中的优先级、DR、BDR域进行检查。此时,所有路由器都宣称自己为DR(将自己的接口地址置于hello包DR字段中),也都宣称自己为BDR。(将自己的接口地址置于hello包BDR字段中)
DR字段中优先级最高的路由器被宣告为DR,如果优先级一样,则拥有最高路由器ID的邻居被选为DR。
BDR字段中优先级最高的路由器被宣告为BDR,如果优先级一样,则拥有最高路由器ID的邻居被选为BDR;如果没有任何路由被选为BDR,则拥有最高优先级的非DR邻居路由器被选为BDR,如果优先级相同,则最高路由ID者被选为BDR。
进入exstart(预启动)状态后,双方路由器开始以DD报文进行交互,确定双方的主从关系(不是DR与BDR),确定用于数据交换的初始DD报文的序列号,以保证路由器得到的永远是最新的链路状态信息。
通过双方的路由器ID来确定主从关系,路由器ID大的为主设备。确定好主从关系后,从设备以主设备的DD报文序列号向主设备发送DD报文,并转换自己接收DD报文的接口为exchange状态;主设备收到从设备DD报文后也将收到DD报文的接口转换为exchange状态。
本摘自重庆网管博客ospf章节:http://www.023wg.com/lypz/102.html
3、数据库同步阶段
主设备开始向从设备发送带有LSA header字段的报文,对从设备进行数据更新。当主设备向从设备发送最后一个DD报文时,将接收DD报文的接口转换为loading状态;当从设备收到最后一个DD报文时也将收到报文的接口转换为loading状态。
当主设备发送完DD报文后,从设备开始依据所接收的DD报文中的LSA header字段检查自己的LSDB,如果没有,从设备会以LSR报文向主设备发出更新请求;当主设备收到从设备发送来的LSU会向从设备发送对应的LSA;从设备收到主设备的LSU报文后会以LSAck报文进行确认。
在DD报文交换中,主从角色不是固定的,因为双方都可能没有对方的LSA,或者一方的LSA的版本更新,双方都可以向对方发送LSR报文请求更新。
4、完全邻接阶段
当双方的LSDB完全同步后,双方均转为FULL状态,双方OSPF接口间整数建立完全邻接关系。
1、邻居发现阶段
2、主从关系确立阶段
3、数据库同步阶段
4、完全邻接阶段
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(Autonomous System,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯加算法(Dijkstra)算法被用来计算最短路径树。
OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络。OSPFv2是由RFC2328定义的,OSPFv3是由RFC 5340定义的。与RIP相比,OSPF是链路状态协议,而RIP是距离矢量协议。
不同厂商管理距离不同,思科OSPF的协议管理距离(AD)是110,华为OSPF的协议管理距离是10。