1、DR和BDR的选举
双方同时进入2-Way状态开始选举,选举时间=死亡时间(40S)
(1) 首先检查DR和BDR字段是否为空,如果都为空(0.0.0.0)表明没有DR也没有BDR。
(2) 先选举出BDR(DR、BDR都为空)
① 先比较优先级,越高越优,默认是1(0不参与选举)。如果已经选举为DR,后手动修改优先级为0,则该路由器从DR变成DBOther。
② 如果优先级相同,比较RouterID,越大越优
③ BDR选举出后,会自动升级为DR,重新再选举BDR
④ 如果DR字段为空,BDR不为空,BDR会自动升级为DR,重新再选举BDR
⑤ 如果BDR为空,DR不为空,重新再选举BDR
(3) 默认DR、BDR是不抢占的(超过40S选举时候后进来的Router不会改变DR和BDR)
2、如果两个设备之间是2-Way说明什么?
(1) 这两个设备可能都不是DR或者BDR
(2) 这连个设备都是DROther
(3) 这两个设备可能有问题
3、邻接的建立
(1) R1和R2都为DOWN状态
(2) R1收到Neighbor字段为空的Hello报文(R1变为Init状态)
(3) R1发送Neighbor字段为R2的RouterID的Hello报文
(4) R2收到Neighbor字段为R2的RouterID的Hello报文(R2变为2Way状态)
(5) R2发送Neighbor字段为R1的RouterID的Hello报文
(6) R1收到Neighbor字段为R1的RouterID的Hello报文(R1变为2Way状态)
(7) R1和R2建立邻居成功(进入Exstart状态)
(8) R1和R2相互发送I位为1,M位为1,MS位为1的空DBD报文。
(9) R1和R2收到对方的空DBD报文后,选举主从。(RouterID大的为主,假设R2为主)(进入ExChange状态)
(10) R1向R2发送DBD摘要信息(MS=0),确认号为刚收到的空DBD报文的确认号
(11) R2向R1发送DBD摘要信息(MS=1),确认号为上一个确认号 1
(12) R1向R2发送空DBD报文,表示确认收到,确认号为刚收到的DBD报文的确认号(M=0,表示后面没有DBD报文了)(进入Loading状态)
(13) 交换LSR、LSU、LSA、LSACK信息
(14) 邻接建立(进入FULL状态)
4、OSPF有两种确认机制:
(1) 隐示确认(主从序列号)
(2) 显式确认(lsr lsu lsack )
5、DBD报文的作用:
(1) 选举主从
① 第一个DBD报文为空,只用来选举主从
② 主从的选举规则:
1) 比较RouterID,大的为主
③ 隐示确认:通过主序列号进行确认:如果主设备收到一条DBD的回复报文,里边的序列号是自己之前发送的,就认为之前的DBD对端已经收到(主从序列号)
(2) 交互LSA摘要信息
6、ospf在不同的网络中
HELLO(s) | DEAD(s) | DBD | LSR | LSU | LSACK | DR,BDR选举 | |
---|---|---|---|---|---|---|---|
NBMA | 30(单播) | 120 | 单播 | 单播 | 单播 | 单播 | 需要 |
点到多 | 30(组播) | 120 | 组播 | 单播 | 单播 | 单播 | 不需要 |
广播 | 10(组播) | 40 | 单播 | 单播 | 单播、组播 | 单播、组播 | 需要 |
点到点 | 10(组播) | 40 | 组播 | 组播 | 组播 | 组播 | 不需要 |
邻居或邻接是否可以建立 | 如果修改HELLO时间 | 是否有路由 | ||
---|---|---|---|---|
广播、P2P | 可以建立 | 不需要 | 没有(LSA有关系) | |
广播、NBMA | 不可以 | 修改也无法建立 | 没有 | 邻居无法建立的原因是与HELLO的目的地址有关(广播类型组播和NBMA是单播) |
广播、P2M | 不可以 | 修改后邻居可以建立 | 没有路由 | |
P2P、P2M | 不可以 | 修改后邻居可以建立 | 有 | |
NBMA、P2P |
7、接口状态机:
(1) 广播、NBMA:down、waiting、loopback
(2) P2P、P2M:down、P2P