当前位置:   article > 正文

ospf邻接关系建立过程_简述ospf邻接关系建立过程

简述ospf邻接关系建立过程

概念:

首先我们应该知道的是,邻居关系是指什么,邻居关系是指OSPF达到了2 way状态才叫邻居关系的建立,而邻接关系则是达到full状态。 那么OSPF 有什么状态呢?

  • Down
  • Init
  • 2way
  • Extart
  • Exchange
  • Loading
  • Established (也就是full状态)

确切来说是有八种状态的,另一种是Attempt状态,这个只在NBMA(非广播多路网络)中才会产生,这里就不加进去。

           路由器R1<---------------------------->路由器R2

假设上面两台路由器都配置了OSPF路由协议,那么他们是怎么建立到邻接关系的呢,现在我们开始讲解: 这里需要大家提前看看OSPF的五种报文(hello报文,DD报文,LSR报文,LSU报文,LSACK报文),包括每个报文包含什么字段,理解起来才更容易点!

邻居关系的建立过程

  1. 首先,路由器会向目的地址为组播地址224.0.0.5,并且和他处于相同网段的设备发送hello报文。(报文简单记住三要素:router id,认证字段,areaID,这三个一定要记住,另外有一个叫neighborhood字段,用来存放邻居的ID,此时的routerID就是路由器自己的ID,neighborhood ID则是为空的)
  2. 假设现在R1发送了hello报文给了R2,R2在收到hello报文后,会将收到R1报文的这个接口状态设置为init状态,并将R1发送过来的hello报文中的router ID 1.1.1.1 放到自己路由器的邻居表中,并发送一个包含自己router ID,neighborhood ID为1.1.1.1的报文发送给R1(以组播方式发送,地址224.0.0.5)
  3. R1收到R2发送过来的hello报文后,查看报文中的neighborhood ID字段是自己,就将自己收到R2报文的这个接口状态设置为2 way状态,并再以同样的方式,目的地址为224.0.0.5,hello 报文中的neighborhood ID 为2.2.2.2 ,并且router ID为自己的报文发送给R2
  4. R2收到报文后,检测neighborhood ID 字段是自己,就将接收的端口设置为2way状态 这样,R1 R2两台路由器的端口都建立起了双向的2way状态,邻居关系才建立起来。

邻接关系的建立过程

两台路由器建立起了邻居关系之后,才会进行数据库的同步过程。邻居关系才得以建立。在建立起了邻居关系之后,路由器之间就开启了数据库的同步过程。数据库的同步过程是通过LSA(链路状态)来实现的。这里需要再一下认识这五种报文

  • hello报文,(前面用到,这里不用到)
  • DD报文,(用来描述数据库,包括数据库的LSA头部)
  • LSR报文,(lsa请求报文)
  • LSU报文,(lsa的更新报文,存放真正的数据信息)
  • LSACK报文(lsa确认报文)
  1. 首先,路由器之间会发送DD报文,但是前两份报文是空的,空的是要干嘛呢?是为了要在这两个空报文中选举出master路由器和slave路由器,并且这时候进行MTU确认,确认两台路由器的MTU是否一样,只有MTU一样才能进行下面的步骤,否则无法进行,但是这里要提的是,华为的设备是不用比对MTU的值就可以建立的。 (这里选举出的master我们把他理解为老板,slave理解为小弟)。
  2. 选举出了老板和小弟之后,路由器就会继续发送DD报文给对方,那么,哪个先发呢?就是小弟R1先发送,发送的内容是自己路由器数据的头,也就是LSA头部信息,(并不是真正的链路信息),另外还有一个序列号200(假设为200)发送给了老板R2。
  3. 老板R2收到了DD报文后,会拿了里面的LSA头部信息,并返回一个序列号为201的、有自己路由器链路信息报头的LSA给小弟,这里要注意的是,master收到slave发来的DD报文后,返回给小弟的肯定是在小弟的序列号上加1,也一定会回复小弟的。这里的状态为EXtart状态
  4. 就这样,两台路由器彼此交换了LAS头部信息后,才将进入到下一同步过程,
  5. 假设小弟R1收到了老板发来的DD报文后,发现自己的LSA头部信息已经都发给了老板R2,这个时候就开始发送起LSR报文,也就是请求报文,向老板R2索取真正的链路数据。(这里需要注意的是,序列号是不断累加上去的)这里的状态为loading状态
  6. 老板R2收到请求之后,则会回复LSU报文给小弟R1,同样这里的序列号加1,这里的状态为loading状态
  7. 小弟R1收到LSU报文后,肯定会拿了数据链路信息放到自己的lsdb数据库中,并回复老板R2的LSACK报文。这里的状态为loading状态
  8. 就这样,老板和小弟就这样完成数据库的同步关系,邻居关系就成为了full状态。邻接关系就这样建立起来。

原文出处及转载信息见文内详细说明,如有侵权,请联系删除。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/755082
推荐阅读
相关标签
  

闽ICP备14008679号