你知道DR和BDR选举过程吗?了解一下?!精华总结(华为设备,抓包分析,OSPF的DR不抢占原则和wait时间)

前言

  • OSPF的邻接关系建立有七个状态,其中DR和BDR的选举在ExStart状态(准启动状态)完成。
  • 那么DR和BDR的选举过程会这么单一吗?

一:OSPF邻接关系

1.1:七个状态

状态 描述
Down状态 只知道自己的ID,不知道其他任何路由器
Init状态(初始化状态) Down状态的端口接收到Hello信息后,自动激活init状态,此时,只能接收Hello包,不能发送Hello包
2-Way状态 route系统加载完成后从Init状态进入2-Way状态。2-Way状态中既可以接收Hello包也可以发送Hello包(选举出两个最大的Router ID,但是并不会确定主从路由身份)
ExStart状态(准启动状态) 确定主从路由身份。即确定DR和BDR身份。
Exchange状态 交换DBD信息库,同时接收到后也会有LSACK包。
Loading状态 最繁忙状态,包的种类最多,有LSR,LSU(包含多个LSA),LSACK,形成的路由表
Full 状态 稳定状态开始转发数据包

二:抓包分析选举过程

2.1:环境

  • eNSP软件
  • 三台路由器
  • 一台交换机

2.2:拓扑图

mark

2.3:配置并抓包分析

  • 配置R1

    sysname R1
    #
    ...
    #
    interface GigabitEthernet0/0/0
     ip address 13.0.0.1 255.255.255.0
    #
    ...
    #
    interface LoopBack0
     ip address 1.1.1.1 255.255.255.255
    #
    ospf 1 router-id 1.1.1.1
     area 0.0.0.0
      network 1.1.1.1 0.0.0.0
      network 13.0.0.0 0.0.0.255
    

    mark

    mark

  • 配置R2

    sysname R2
    #
    ...
    #
    interface GigabitEthernet0/0/0
     ip address 13.0.0.2 255.255.255.0
    #
    ....
    #
    interface LoopBack0
     ip address 2.2.2.2 255.255.255.255
    #
    ospf 1 router-id 2.2.2.2
     area 0.0.0.0
      network 13.0.0.0 0.0.0.255
      network 2.2.2.2 0.0.0.0
    

    mark

  • R3用相同方法配置,不再赘述

三:DR和BDR选举的总结

3.1:第一个hello包什么时候出现?会和DR有关吗?

  • 接口宣告之后开始发送第一个hello,里边没有DR,40秒 wait时间之后 虽然没有别的邻居,
    当然也不能行成2-way状态,但是DR选举结果已经在HELLO包中体现了。
    由此可以得出结论DR/BDR选举是在接口宣告就启动选举等待时间wait40内进行,和2-way状态无关,
    2way只是衡量邻居,有没有选举资格,不能说选举是在2way中(后)选举,非常不严谨 。

  • 要说两台或者多台,进行选举的条件是都需要对方是2way状态才能参加选举。但不是选举的唯一条件,
    没有2way关系的邻居(候选人),仍然会进行选举。

3.2:选举DR和BDR的另一种情况

  • 当然选举DR/BDR有几种情况。
    还是使用如上拓扑。不同的是 R2 也做配置并宣告。

  • 1.广播网络中,路由器R1/R2 初始配置ospf,比如R1先配置ospf 并宣告接口 (R1的route id 1.1.1.1)
    R2紧接着也配置ospf并宣告接口(R2 route id 2.2.2.2)。此时R1开始发送hello包,并启动wait 40s 计时器。
    并将收到的hello包 放在自己备选DR/BDR 列表中。(如果40秒内没有收到任何HELLO包,就宣布自己是DR)。
    如果wait时间内收到就比较优先级/route id 越大的胜出。通过hello宣布选举结果。

3.3:你知道DR不抢占原则和wait时间吗?

  • 这里涉及到概念第一个wait时间,这个是每个路由器宣告进网络的时候都要启动的计时器,

    • 目的是防止DR抢占
      (ospf的DR有不抢占原则,就是当有人宣告自己是DR的时候。其他路由器默认承认)
    • 还有个作用就是留出时间进行选举,
      尤其是初始网络这个时间可以等待收取路由器的hello来比较优先级和route id。
  • DR可能不是优先级最高
    如果某个设备优先级最高,而且加入network的时间不晚于其他设备30s(waiting timer 的40s再留出10s,达到two-way状态),
    就一定可以成为DR,晚于30s就不一定能成为DR了(取决于它能参加选举时,选举是否已经完成)

  • 也就说R1和R2优先级相同
    的情况下虽然R1的route id 小 但是在wait时间之后也就是选举之后就会成为DR,然后因为不抢占原则,
    所以才会有有小的ID成为DR的可能。每台只要运行ospf的路由器,在广播网络中都在第一个hello 发出后在本地进行
    DR 、BDR选举 其他路由器要想参与到对方选举中,只能在和这个路由形成2-way状态之后才有资格参与选举。

  • 路由器在有效选举时间内做出选举结果并用hello包通告结果。网络中出现第一个通告选举结果的,
    其他的路由器停止选举,承认DR选举。(DR不抢占原则)

他路由器要想参与到对方选举中,只能在和这个路由形成2-way状态之后才有资格参与选举。

  • 路由器在有效选举时间内做出选举结果并用hello包通告结果。网络中出现第一个通告选举结果的,
    其他的路由器停止选举,承认DR选举。(DR不抢占原则)
发布了94 篇原创文章 · 获赞 60 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/CN_TangZheng/article/details/103708273