3.1 第一步:邻居发现与建立邻居关系邻居关系为运行OPSF的设备接口间两两建立,下图为一对邻居建立的过程 。
在一个未知的以太网网络环境中,路由器A向网络中组播发送hello报文 。
文章插图
HELLO报文寻找邻居
路由器B收到路由器A发来的HELLO报文 。
文章插图
HELLO报文寻找邻居
路由器B响应路由器A的HELLO报文 。
文章插图
响应HELLO报文
路由器A确认收到路由器B发送的HELLO报文 。至此A与B的邻居状态为2-WAY,即建立邻居关系 。
文章插图
根据上述的邻居建立过程,路由器A、B、C、D又两两之间互相建立了邻居关系,开始竞选DR和BDR 。
文章插图
竞选DR与BDR
竞选DR与BDR首先需要看OSPF接口的优先级 。最高的成为DR,次高的成为BDR 。优先级为0的路由器不参与DR与BDR的竞选,直接成为DROTHER 。
由于路由器接口默认的OSPF优先级值为均为1,所以Router-ID最大的将成为DR,次大的将成为BDR 。
当一个OSPF区域中的DR与BDR竞选完成后,接口状态将脱离wating,变为DR、BDR或DROTHER状态,此时再有更高优先级的接口进去该区域将不会抢占DR和BDR的地位 。如果DR出现故障则BDR成为DR,重新选举BDR;如果BDR出现故障则重新选举BDR 。
文章插图
竞选DR与BDR完成
3.2 第二步:路由发现与建立邻接关系由于以太网网络下OSPF建立邻接关系仅为DR与BDR、DROTHER与DR和BDR之间,DROTHER与DROTHER仅保持邻居关系 。
文章插图
以太网网络下邻接关系
下图用一对邻接关系来解释邻接之间发现路由的过程:
邻接关系协商主从关系:
文章插图
协商主从关系
交换DBD索引报文:
文章插图
交换DBD索引报文
3.3 第三步:同步LSDB下图用一对邻接关系来解释邻接之间同步LSDB的过程:
同步LSDB分以下两种情况:
第一种:在交换完最后一个DBD分组索引报文后(M标志位为0),若发现邻居发来的所有DBD分组报文中所含的所有索引内容都与本地LSDB中内容相同 。OSPF邻居状态变为FULL状态 。
文章插图
同步LSDB
第二种:在交换完最后一个DBD分组索引报文后(M标志位为0),若发现邻居发来的DBD分组报文中有索引内容与本地LSDB中内容不相同,如果LSDB中LSA信息少于或旧于(LSA序列号用于判断LSA信息的新老程度)DBD报文索引内容,则OSPF邻居状态变为loading状态后,向邻居发送LSR分组报文对缺失或未更新的LSA进行请求,邻居收到LSR分组报文后发送LSU分组报文将缺失LSA信息发给本端,本端收到LSU更新分组报文后向邻居发送LSACK确认分组报文后进入FULL状态 。
文章插图
同步LSDB
OSPF报文类型及作用在之前的原创文章中有讲述,链接如下:
干货分享:OSPF是什么?OSPF基础知识及五种报文类型解析
以上内容均为本人对所掌握知识总结归纳所创作的原创文章,希望能给大家的学习过程带来帮助,如有技术理解错误希望能够得到大家的指正,大家共同学习,共同进步 。
【图文详解以太网中OSPF如何建立邻接关系?】
推荐阅读
- netty 服务端启动流程源码详解
- Shiro框架详解
- WiFi大提速!WiFi 6和WiFi 6E详解
- 网络常见面试题
- SpringCloud Gateway详解
- 白梅花茶的功效与禁忌,详解玫瑰花茶的功效
- Python流程控制语句详解
- 以太网 windows10系统下有线无法识别的解决方案
- Python循环语句代码详解:while、for、break
- 非易失性MRAM基本知识详解