首页 > 其他分享 >OSPF的8种状态机总结,小白必看!

OSPF的8种状态机总结,小白必看!

时间:2023-11-30 14:32:46浏览次数:42  
标签:邻居 LSA 报文 状态机 小白必 RouterB RouterA OSPF DD

OSPF概述

在OSPF网络中,为了交换路由信息,邻居设备之间首先要建立邻接关系,邻居(Neighbors)关系和邻接(Adjacencies)关系是两个不同的概念。

邻居关系

OSPF设备启动后,会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF设备会检查报文中所定义的参数,如果双方一致就会形成邻居关系,两端设备互为邻居。

邻接关系

形成邻居关系后,如果两端设备成功交换DD报文和LSA,才建立邻接关系。

OSPF的8种状态机总结,小白必看!_OSPF

邻居状态机

OSPF共有8种状态机

分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。

Down:邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。

Attempt:该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(dead interval)超时前仍然没有回复Hello报文。此时路由器依然每发送轮询Hello报文的时间间隔(poll interval)向对端发送Hello报文。

Init:收到Hello报文后状态为Init。

2-way:收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。

Exstart:开始协商主从关系,并确定DD的序列号,此时状态为Exstart。

Exchange:主从关系协商完毕后开始交换DD报文,此时状态为Exchange。

Loading:DD报文交换完成即Exchange done,此时状态为Loading。

Full:LSR重传列表为空,此时状态为Full。

在广播网络中建立OSPF邻接关系

1.建立邻居关系

OSPF的8种状态机总结,小白必看!_状态机_02

a、RouterA的一个连接到广播类型网络的接口上激活了OSPF协议,并发送了一个Hello报文(使用组播地址224.0.0.5)。此时,RouterA认为自己是DR路由器(DR=1.1.1.1),但不确定邻居是哪台路由器(Neighbors Seen=0)。

b、RouterB收到RouterA发送的Hello报文后,发送一个Hello报文回应给RouterA,并且在报文中的Neighbors Seen字段中填入RouterA的Router ID(Neighbors Seen=1.1.1.1),表示已收到RouterA的Hello报文,并且宣告DR路由器是RouterB(DR=2.2.2.2),然后RouterB的邻居状态机置为Init。

c、RouterA收到RouterB回应的Hello报文后,将邻居状态机置为2-way状态,下一步双方开始发送各自的链路状态数据库。

注意:在广播网络中,两个接口状态是DR Other的路由器之间将停留在此步骤。

2.主/从关系协商、DD报文交换

a、RouterA首先发送一个DD报文,宣称自己是Master(MS=1),并规定序列号Seq=X。I=1表示这是第一个DD报文,报文中并不包含LSA的摘要,只是为了协商主从关系。M=1说明这不是最后一个报文。

为了提高发送的效率,RouterA和RouterB首先了解对端数据库中哪些LSA是需要更新的,如果某一条LSA在LSDB中已经存在,就不再需要请求更新了。为了达到这个目的,RouterA和RouterB先发送DD报文,DD报文中包含了对LSDB中LSA的摘要描述(每一条摘要可以惟一标识一条LSA)。

为了保证在传输的过程中报文传输的可靠性,在DD报文的发送过程中需要确定双方的主从关系,作为Master的一方定义一个序列号Seq,每发送一个新的DD报文将Seq加一,作为Slave的一方,每次发送DD报文时使用接收到的上一个Master的DD报文中的Seq。

b、RouterB在收到RouterA的DD报文后,将RouterA的邻居状态机改为Exstart,并且回应了一个DD报文(该报文中同样不包含LSA的摘要信息)。由于RouterB的Router ID较大,所以在报文中RouterB认为自己是Master,并且重新规定了序列号Seq=Y。

c、RouterA收到报文后,同意了RouterB为Master,并将RouterB的邻居状态机改为Exchange。RouterA使用RouterB的序列号Seq=Y来发送新的DD报文,该报文开始正式地传送LSA的摘要。在报文中RouterA将MS=0,说明自己是Slave。

d、RouterB收到报文后,将RouterA的邻居状态机改为Exchange,并发送新的DD报文来描述自己的LSA摘要,此时RouterB将报文的序列号改为Seq=Y+1。

上述过程持续进行,RouterA通过重复RouterB的序列号来确认已收到RouterB的报文。RouterB通过将序列号Seq加1来确认已收到RouterA的报文。当RouterB发送最后一个DD报文时,在报文中写上M=0。

3.LSDB同步(LSA请求、LSA传输、LSA应答)

a、RouterA收到最后一个DD报文后,发现RouterB的数据库中有许多LSA是自己没有的,将邻居状态机改为Loading状态。此时RouterB也收到了RouterA的最后一个DD报文,但RouterA的LSA,RouterB都已经有了,不需要再请求,所以直接将RouterA的邻居状态机改为Full状态。

b、RouterA发送LSR报文向RouterB请求更新LSA。RouterB用LSU报文来回应RouterA的请求。RouterA收到后,发送LSAck报文确认。

上述过程持续到RouterA中的LSA与RouterB的LSA完全同步为止,此时RouterA将RouterB的邻居状态机改为Full状态。当路由器交换完DD报文并更新所有的LSA后,此时邻接关系建立完成。

在NBMA网络中建立OSPF邻接关系

NBMA网络和广播网络的邻接关系建立过程只在交换DD报文前不一致,如图中的蓝色标记。
在NBMA网络中,所有路由器只与DR和BDR之间形成邻接关系。

OSPF的8种状态机总结,小白必看!_状态机_03

1.建立邻居关系

a、RouterB向RouterA的一个状态为Down的接口发送Hello报文后,RouterB的邻居状态机置为Attempt。此时,RouterB认为自己是DR路由器(DR=2.2.2.2),但不确定邻居是哪台路由器(Neighbors Seen=0)。

b、RouterA收到Hello报文后将邻居状态机置为Init,然后再回复一个Hello报文。此时,RouterA同意RouterB是DR路由器(DR=2.2.2.2),并且在Neighbors Seen字段中填入邻居路由器的Router ID(Neighbors Seen=2.2.2.2)。

2.主/从关系协商、DD报文交换过程

同广播网络的邻接关系建立过程。

3.LSDB同步(LSA请求、LSA传输、LSA应答)过程

同广播网络的邻接关系建立过程。

                       关注公众号↑↑↑:IT运维大本营,获取60个G的《网工大礼包》

标签:邻居,LSA,报文,状态机,小白必,RouterB,RouterA,OSPF,DD
From: https://blog.51cto.com/atomguo/8629843

相关文章

  • FPGA入门笔记007_A——按键消抖模块设计与验证(状态机、$random、仿真模型、task语法)
    实验现象:每次按下按键0,4个LED显示状态以二进制加法格式加1。每次按下按键1,4个LED显示状态以二进制加法格式减1。知识点:1、testbench中随机数发生函数$random的使用;2、仿真模型的概念1、按键波形分析:按键未按,FPGA管脚检测到高电平。按键按下,FPGA管脚检测到低电平。2、设......
  • 小白必知:AIGC 和 ChatGPT 的区别
    原文:https://openaigptguide.com/chatgpt-aigc-difference/AIGC和ChatGPT都是人工智能技术,但它们的功能和应用场景不同。AIGC(AI-GeneratedContent,人工智能自动生成内容)是人工智能、计算机图形学和深度学习等领域的技术结合,用于生成大量的文本、图片或视频等内容,例如新闻稿......
  • OSPF
    OSPF1.概念OSPF是典型的链路状态路由协议,是业内使用非常广泛的IGP协议之一。有Version2和Version3,2是IPv4用的,3是IPv6的。2.协议相关内容组成2.1Router-ID(路由器标识符)用于在一个OSPF域中唯一的标识一台路由器·,可以手工配置也可以系统自动配置2.2OSPFArea用于标识一个OS......
  • 职场小白必备知识点-PPTP&L2TP协议​
    PPTP协议介绍客户端发起PPTP请求设备回复PPTP请求,建立GRE隧道客户端发送PPP认证协议,通过GRE封装设备解GRE封装,交给PPP处理程序处理认证设备从认证报文里取得用户名和密码HASH,和认证数据库比对设备PPP服务程序回复认证结果给PPTP服务程序,PPTP服务程序把回复的PPP包用GRE封装,返回客户......
  • FPGA入门笔记006——状态机设计实例
    状态分析:状态1:等待“H”的到来,如果检测到“H”,进入状态2,检测“e”,否则一直等待“H”;状态2:检测当前字符是否是“e”,如果是“e”,跳转到状态3,检测“l”,否则,回到状态1,重新等待“H”;状态3:检测当前字符是否是“l”,如果是“l”,跳转到状态4,检测“l”,否则,回到状态1,重新等待“H”;状态4:......
  • 职场小白必备知识点-FTP协议
    FTP的协议介绍什么是FTP呢?FTP是TCP/IP协议组中的协议之一,是英文FileTransferProtocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台......
  • Log4j入门使用(小白必读!!)
    Hii,mJinXiang⭐前言 ⭐本篇文章主要介绍Log4j入门使用以及部分理论知识本篇又称(Log4j日志级别及使用规范)......
  • OSPF常用配置和常用的查看命令
    1.启动OSPF进程,进入OSPF视图。[Huawei]ospf[process-id|RouterIDRouterID]路由器支持OSPF多进程,进程号是本地概念,两台使用不同OSPF进程号设备之间也能够建立邻接关系。2.创建并进入OSPF区域视图[Huawei-ospf-1]areaarea-id在OpenShortestPathFirst(OSPF)协议中,Ar......
  • 使用ensp搭建路由拓扑,并使用ospf协议实现网络互通实操
    1.使用ENSP搭建如下拓扑:              数据准备为完成此配置例,需准备如下的数据:设备RouterIDProcessIDIP地址DeviceA1.1.1.11区域0:192.168.0.0/24区域1:192.168.1.0/24DeviceB2.2.2.21区域0:192.168.0.0/24区域2:192.168.2.0/24DeviceC3.3.3.31区域1......
  • 职场小白必备知识点-RIP&OSPF​路由协议
    路由简介作为网络工程师,你需要为某园区规划网络,预计有路由器若干,网络拓扑如下:规划网络之前,我们先来了解一下路由的相关知识。什么是路由所谓的路由,通俗来说就是路由器后台里,一张由目的地址、子网掩码、下一跳构成的表;它的作用是告知路由器需要如何处理收到的数据包;比如,路由器收到......