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状态。邻接关系就这样建立起来。

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

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OSPF(Open Shortest Path First)是一种用于路由选择的内部关协议(IGP)。在OSPF中,邻接关系是指相邻的两个路由器之间建立的连接,用于交换网络信息和更新路由表。下面是OSPF邻接关系建立过程的步骤: 1. Hello消息交换:路由器通过发送Hello消息来探测相邻路由器。Hello消息包含了路由器的标识和其他参数,如Hello计时器的值、区域ID等。当两个路由器收到对方的Hello消息并验证通过后,它们就成为邻居候选者。 2. 邻居确认:当一个路由器收到另一个路由器的Hello消息后,它会检查对方的参数是否符合要求。如果符合要求,它会发送一条Hello消息作为确认,并将对方添加到邻居列表中,此时邻接关系成立。 3. DD(Database Description)消息交换:在邻接关系建立后,路由器会交换DD消息。DD消息包含了路由器的LSDB(链路状态数据库)的摘要信息。通过比较DD消息中的摘要信息,路由器可以判断自己的LSDB是否比对方的新。 4. LSR(Link State Request)消息交换:如果一个路由器发现自己的LSDB不是最新的,它会发送LSR消息向邻居请求缺失的LSA(链路状态广告)。 5. LSU(Link State Update)消息交换:当一个路由器收到LSR消息后,如果它有被请求的LSA,它会发送LSU消息将这些LSA发送给请求者。 6. LSAck(Link State Acknowledgment)消息交换:接收到LSU消息的路由器会发送LSAck消息进行确认,以保证信息的可靠性。 邻居是指在OSPF网络中相互连接的路由器。邻接关系建立在邻居之间的,它表示两个相邻路由器之间可以进行OSPF信息的交换。邻接关系建立是通过Hello消息的交换和参数验证来实现的。邻接关系建立对于构建OSPF网络拓扑、更新路由表非常重要。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值