Loading

Network系列:OSPF建立邻接关系详细过程(四)

OSPF建立邻接关系详细过程

1. OSPF工作过程概览

image-20220908173209731


2. 建立邻居关系

image-20220908173302990

R1和R2路由器相互发送Hello报文,第一个Hello报文包含的邻居列表为空。

R2收到R1发送的Hello报文后,如果各项参数匹配,再次发送Hello报文时,将R1加入自己的邻居列表。

在以太网链路上,通常以组播形式发送Hello报文:

  • 224.0.0.5的组播地址为OSPF设备的预留IP组播地址。
  • 224.0.0.6的组播地址为OSPF DR/BDR的预留IP组播地址。

对于不支持组播的链路,OSPF支持采用单播的方式发送Hello报文。


Hello报文

image-20220908161139200

image-20220908161217798•Hello


报文的主要作用:

邻居发现:自动发现邻居路由器。

邻居建立:完成Hello报文中的参数协商,建立邻居关系。

邻居保持:通过周期性发送和接收,检测邻居运行状态。


3.建立邻接关系

image-20220908173538376

image-20220908173613478

  1. R1和R2的Router ID分别为10.0.1.1和10.0.2.2并且二者已建立了邻居关系。当R1的邻居状态变为ExStart后,R1会发送第一个DD报文。此报文中,M设置为1,表示后续还有DD报文要发送,MS设置为1,表示R1宣告自己为Master。DD序列号被随机设置为X,I设置为1,表示这是第一个DD报文。
  2. 同样当R2的邻居状态变为ExStart后,R2也会发送第一个DD报文。此报文中,DD序列号被随机设置为Y(I=1,M=1,MS=1,含义同上)。由于R2的Router ID较大,所以R2将成为真正的Master。收到此报文后,R1会产生一个Negotiation-Done事件,并将邻居状态从ExStart变为Exchange。
  3. 当R1的邻居状态变为Exchange后,R1会发送一个新的DD报文,此报文中包含了LSDB的摘要信息,序列号设置为R2在步骤2中使用的序列号Y,I=0,表示这不是第一个DD报文,M=0,表示这是最后一个包含LSDB摘要信息的DD报文,MS=0,表示R1宣告自己为Slave。收到此报文后,R2将邻居状态从ExStart变为Exchange。
  4. 当R2的邻居状态变为Exchange后,R2会发送一个新的DD报文,此报文包含了LSDB的摘要信息。DD序列号设置为Y+1, MS=1,表示R2宣告自己为Master。
  5. 虽然R1不需要发送新的包含LSDB摘要信息的DD报文,但是作为Slave,R1需要对Master发送的每一个DD报文进行确认。所以,R1向R2发送一个新的DD报文,序列号为Y+1,该报文内容为空。发送完此报文后,RTA产生一个Exchange-Done事件,将邻居状态变为Loading。R2收到此报文后,会将邻居状态变为Full(假设R2的LSDB是最新最全的,不需要向R1请求更新)。

image-20220908180844020

  1. R1开始向R2发送LSR报文,请求那些在Exchange状态下通过DD报文发现的、并且在本地LSDB中没有的链路状态信息。
  2. R2向R1发送LSU报文,LSU报文中包含了那些被请求的链路状态的详细信息。R1在完成LSU报文的接收之后,且没有其他待请求的LSA后,会将邻居状态从Loading变为Full。
  3. R1向R2发送LSAck报文,作为对LSU报文的确认。

4. DR与BDR

image-20220908220526196


DR与BDR的选举规则(ExStart状态开始选举)

image-20220908220634034

DR/BDR的选举是非抢占式的,是基于接口的。

接口的DR优先级越大越优先,接口的DR优先级相等时,Router ID越大越优先。


广播链路或者NBMA链路上DR和BDR的选举过程如下:

  1. 接口UP后,发送Hello报文,同时进入到Waiting状态。在Waiting状态下会有一个WaitingTimer,该计时器的长度与DeadTimer是一样的。默认值为40秒,用户不可自行调整。
  2. 在WaitingTimer触发前,发送的Hello报文是没有DR和BDR字段的。在Waiting阶段,如果收到Hello报文中有DR和BDR,那么直接承认网络中的DR和BDR,而不会触发选举。直接离开Waiting状态,开始邻居同步。
  3. 假设网络中已经存在一个DR和一个BDR,这时新加入网络中的路由器,不论它的Router ID或者DR优先级有多大,都会承认现网中已有的DR和BDR。
  4. 当DR因为故障Down掉之后,BDR会继承DR的位置,剩下的优先级大于0的路由器会竞争成为新的BDR。
  5. 只有当不同Router ID,或者配置不同DR优先级的路由器同时起来,在同一时刻进行DR选举才会应用DR选举规则产生DR。

posted @ 2023-09-18 09:45  YinJayChen  阅读(191)  评论(0编辑  收藏  举报