OSPF邻居建立过程

OSPF邻居建立过程

前言

本人不才,此文是学习过程中的总结并不是官网文档,难免会有疏漏错误之处欢迎指正,虚心学习。
此篇也算是本人的学习笔记。
在这里插入图片描述
   R1的Router-ID是1.1.1.1; R2的Router-ID是2.2.2.2 。

正文

1. R1和R2双方接口激活OSPF后会相互发送组播的hello报文。假设R1发送了一个hello报文,该报文OSPF头部中填写这R1的Router-ID接口的区域ID,hello报文载荷中填写这R1 g/0/0接口的网络掩码,hello间隔,路由器失效时间,因为R1现在还未发现邻居所以此时hello包内的邻居字段为空。
2. R2收到这个hello报文后,首先会对该报文进行检查。由于双方使用以太网接口互联,在这种类型的接口上,OSPF将会检查双方的网络掩码是否一致。(P2P就不需要)此外还会检查g/0/0接口的hello时间,路由器失效时间,认证。。。是否一致。如果通过检查则会R2将R1的状态设置为init
3. 接下来R2在自己的hello报文中的邻居(neighbor)字段中写入R1的Router-ID。而当R1收到R2发送过来的hello报文时,发现报文中的邻居字段中发现了自己Router-ID,R1便意识到邻居R2已经发现并认可了自己的存在,于是R1将R2添加到自己的邻居表并且把R2的状态设置为2-way
4. 同理R1也在自己的hello报文中的邻居字段写入R2的Router-ID:2.2.2.2,R2收到后把R1加入到邻居表种且把R1的的状态设置为2-way
5. 邻居关系达到2-way状态,因为是多路访问网络类型,DR/BDR的选举将在这里展开。
6. 在Exstart状态下的路由器R1,R2需要交互空报头来协商master/slave。由于R2的Router-ID更大,他将胜出为master路由器。用于协商的主从的DD报文并不携带任何LSA头部。一开始双方都认为自己是master路由器,因此各自都在DD报文中将MS比特位设置为1,I(init初始)=1.R1在自己发送的DD报文中写入自己的设定DD序列号=200.并宣布自己是master路由器。R2收到报文后自然是不认为对方为master路由器,在R2发送的报文中MS比特位=1,DD序列号为自己设定=300,。R1收到DD报文后发现对方的Router-ID确实比我大,接受了自己非master路由器的事实。然后将R2的状态切换到Exchange并发送一个带有LSA头部的DD报文,这个DD报文的序列号=300(就是R2发送过来的seq),M为设置为1表示后续还有更多的DD报文,MS比特位设置为0.接着R2收到了R1发送过来来的DD报文,于是将R1的状态切换到Exchange
7. 随后开始相互发送携带LSA头部的DD报文。master路由器R2将DD报文序列号逐次+1,slave路由器则使用前者的DD序列号发送自己的DD报文。经过数次交互之后如果master路由器先描述完了自己的LSDB信息,则master继续发送空DD报文来获取slave路由器的LSDB。如果slave的LSDB先描述完,则slave回应空DD报文M=0,表示收到了master的DD报文。
 当master和slave的LSDB都描述完了之后,他们发送空的DD报文(M=0)这时候LSDB交互就结束了。此时双方R1和R2把彼此邻居状态切换为loading
8. 接下来就是数据库同步的过程。R1向R2发送LSR报文请求自己感兴趣的完整的LSA;R2则使用包含完整的LSU报文进行回应。同理R2也向R1请求自己感兴趣的LSA,R1则使用完整的LSU报文进行回应。
9. 相互交互多次直到双方形成了完整的LSDB之后使用LSACK确认这些LSA。当R1和R2发现没有其他LSA需要从邻居获取后,便将邻居的状态切换为FULL

附上其他需要的知识点:
OSPF报文格式和类型的总结

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值