OSPF协议LSDB同步过程和邻居状态机

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系!

厦门微思网络​​​​​​ https://www.xmws.cn
华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom
Linux\RHCE\RHCE 9.0\RHCA\
Oracle OCP\CKA\K8S\
CISP\CISSP\PMP

OSPF LSDB同步过程

状态含义:
  • ExStart:邻居状态变成此状态以后,路由器开始向邻居发送DD报文。Master/Slave关系是在此状态下形成的,初始DD序列号也是在此状态下确定的。在此状态下发送的DD报文不包含链路状态描述。
  • Exchange:在此状态下,路由器与邻居之间相互发送包含链路状态信息摘要的DD报文。
  • Loading:在此状态下,路由器与邻居之间相互发送LSR报文、LSU报文、LSAck报文。
  • Full:LSDB同步过程完成,路由器与邻居之间形成了完全的邻接关系。
LSDB同步过程
  • RTA和RTB的Router ID分别为1.1.1.1和2.2.2.2并且二者已建立了邻居关系。当RTA的邻居状态变为ExStart后,RTA会发送第一个DD报文。此报文中,DD序列号被随机设置为X,I-bit设置为1,表示这是第一个DD报文,M-bit设置为1,表示后续还有DD报文要发送,MS-bit设置为1,表示RTA宣告自己为Master。
  • 当RTB的邻居状态变为ExStart后,RTB会发送第一个DD报文。此报文中,DD序列号被随机设置为Y(I-bit=1,M-bit=1,MS-bit=1,含义同上)。由于RTB的Router ID较大,所以RTB将成为真正的Master。收到此报文后,RTA会产生一个Negotiation-Done事件,并将邻居状态从ExStart变为Exchange。
  • 当RTA的邻居状态变为Exchange后,RTA会发送一个新的DD报文,此报文中包含了LSDB的摘要信息,序列号设置为RTB在步骤2中使用的序列号Y,I-bit=0,表示这不是第一个DD报文,M-bit=0,表示这是最后一个包含LSDB摘要信息的DD报文,MS-bit=0,表示RTA宣告自己为Slave。收到此报文后,RTB会产生一个Negotiation-Done事件,并将邻居状态从ExStart变为Exchange。
  • 当RTB的邻居状态变为Exchange后,RTB会发送一个新的DD报文,此报文包含了LSDB的摘要信息,DD序列号设置为Y+1, MS-bit=1,表示RTB宣告自己为Master。
  • 虽然RTA不需要发送新的包含LSDB摘要信息的DD报文,但是作为Slave,RTA需要对Master发送的每一个DD报文进行确认。所以,RTA向RTB发送一个新的DD报文,序列号为Y+1,该报文内容为空。发送完此报文后,RTA产生一个Exchange-Done事件,将邻居状态变为Loading。RTB收到此报文后,会将邻居状态变为Full(假设RTB的LSDB是最新最全的,不需要向RTA请求更新)。

  • RTA开始向RTB发送LSR报文,请求那些在Exchange状态下通过DD报文发现的、并且在本地LSDB中没有的链路状态信息。
  • RTB向RTA发送LSU报文,LSU报文中包含了那些被请求的链路状态的详细信息。RTA在完成LSU报文的接收之后,会将邻居状态从Loading变为Full。
  • RTA向RTB发送LSAck报文,作为对LSU报文的确认。RTB收到LSAck报文后,双方便建立起了完全的邻接关系。

从建立邻居关系到同步LSDB的过程较为复杂,错误的配置或设备链路故障都会导致无法完成LSDB同步。为了快速排障,最关键的是要理解不同状态之间切换的触发原因。

OSPF邻居状态机

这是形成邻居关系的过程和相关邻居状态的变换过程。

  • Down:这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PollInterval,通常和Router DeadInterval间隔相同。
  • Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果Router DeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。
  • Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。在此状态下的邻居要被包含在自己所发送的Hello报文的邻居列表中。
  • 2-Way Received:此事件表示路由器发现与邻居的双向通信已经开始(发现自己在邻居发送的Hello报文的邻居列表中)。Init状态下产生此事件之后,如果需要和邻居建立邻接关系则进入ExStart状态,开始数据库同步过程,如果不能与邻居建立邻接关系则进入2-Way。
  • 2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。
  • 1-Way Received:此事件表示路由器发现自己没有在邻居发送Hello报文的邻居列表中,通常是由于对端邻居重启造成的。
  • ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的;初始DD序列号是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。
  • Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。
  • Loading:相互发送LS Request报文请求LSA,发送LS Update通告LSA。
  • Full:两台路由器的LSDB已经同步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/641222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术型企业如何选择安全、性价比高的FTP替代方案?

FTP作为世界上第一款文件传输协议,在全球范围内应用广泛,它解决了文件传输协议空白的问题,为文件传输场景提供了专业的解决方案。 但随着网络技术的演进,技术型企业进行文件传输的需求也更多元和复杂,FTP的缺陷也更多的…

Flutter中的AppLifecycleListener:应用生命周期监听器介绍及使用

引言 当你在Flutter中需要监听应用程序的生命周期变化时,可以使用AppLifecycleListener。在Flutter 3.13中,AppLifecycleListener被添加到Framework中,用于监听应用程序的生命周期变化,并响应退出应用程序的请求等支持。 在Flut…

CmakeList教程

一、CmakeList介绍: cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。它会通过写的语句自动生成一个MakeFile,从而实现高效编译 二、CmakeList的常用指令 1.指定…

【 CSS 】定位

不要因为小小的失败而放弃大大的梦想,每一次坚持都是通向成功的一步。- 马克吐温 1. 定位 1.1 为何使用定位 我们先来看一个效果,同时思考一下用标准流或浮动能否实现类似的效果? 场景1: 某个元素可以自由的在一个盒子内移动位置&#xff0c…

#Uniapp:uni.request(OBJECT)

uni.request(OBJECT) 发起网络请求。 示例 uni.request({url: https://www.example.com/request, //仅为示例,并非真实接口地址。data: {text: uni.request},header: {custom-header: hello //自定义请求头信息},success: (res) > {console.log(res.data);thi…

微服务基础概念、架构图、划分图

基础概念 1、微服务 微服务架构风格,就像是把一个单独的应用程序,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是http api。这些服务围绕业务能力来构建。并…

Java 日期处理

主要从以下三方面讲解: java.util 包提供了 Date 类来封装当前的日期和时间。java.util 包提供了 Calendar 类用来设置和获取日期数据的特定部分。java.text 包提供了 SimpleDateFormat 类来格式化日期的格式。 Date类 Date类的构造函数 Date 类主要提供了两个构…

小程序学习-21

目前小程序分包大小有以下限制: 整个小程序所有分包大小不超过 20M单个分包/主包大小不能超过 2M 独立分包:"independent": true

docker compose安装milvus

下载对应版本的milvus-standalone-docker-compose.yml wget https://github.com/milvus-io/milvus/releases/download/v2.3.5/milvus-standalone-docker-compose.yml重新命令为docker-compose.yml mv milvus-standalone-docker-compose.yml docker-compose.yml启动milvus doc…

记一次 stackoverflowerror 线上排查过程

一.线上 stackOverFlowError xxx日,突然收到线上日志关键字频繁告警 classCastException.从字面上的报警来看,仅仅是类型转换异常,查看细则发现其实是 stackOverFlowError.很多同学面试的时候总会被问到有没有遇到过线上stackOverFlowError?有么有遇到栈溢出?具体栈溢出怎么来…

postman测试导入文件

01 上传文件参数 1.选择请求方式 选择post请求方式,输入请求地址 2.填写Headers Key:Content-Type ; Value:multipart/form-data 如下图 3.填写body 选择form-data,key选择file类型后value会出现按钮&#xff0…

(十二)Head first design patterns代理模式(c++)

代理模式 代理模式:创建一个proxy对象,并为这个对象提供替身或者占位符以对这个对象进行控制。 典型例子:智能指针... 例子:比如说有一个talk接口,所有的people需要实现talk接口。但有些人有唱歌技能。不能在talk接…

表单的总数据为什么可以写成一个空对象,不用具体的写表单中绑定的值,vue3

<el-form :model"form" label-width"120px"><el-form-item label"Activity name"><el-input v-model"form.name" /></el-form-item> </el-form> const form ref({})from为空对象 在v-model里写form…

verde生成网格坐标

文章目录 网格坐标区域调整 Verde是Python用于地理空间数据处理的一个库&#xff0c;由于采用了一些机器学习的方法&#xff0c;所以除了科学计算三件套之外&#xff0c;还需要基于sklearn模块。考虑到依赖关系&#xff0c;这里比较推荐用conda安装。 conda install verde --c…

分布式websocket即时通信(IM)系统保证消息可靠性【第八期】

b站上面本期视频版本&#xff0c;观看视频食用更佳&#xff01;点击即可跳转,找不到视频可以直接搜索我 目前叫 呆呆呆呆梦 目前已经写的文章有。并且有对应视频版本。 git项目地址 【IM即时通信系统&#xff08;企聊聊&#xff09;】点击可跳转 sprinboot单体项目升级成sprin…

Windows 10中的驱动程序与device guard的兼容性

文章目录 Windows 10中的驱动程序与device guard的兼容性windows的device guard是什么如何构建兼容的驱动程序如何验证驱动程序的兼容性驱动程序验证程序兼容性检查启用基于虚拟化的隔离代码完整性HLK测试&#xff08;桌面和服务器&#xff09;Device Guard准备工具DGReadiness…

VsCode容器开发 - VsCode连接远程服务器上的docker

VsCode容器开发 - VsCode连接远程服务器上的docker 前言 之前在服务器上的Docker内开发&#xff0c;文件编辑起来就很不爽。不如使用VsCode直接打开远程服务器上的Docker&#xff0c;这样就能在VsCode里直接无缝编辑Docker里的文件了。 但是百度和必应得到的中文结果都很奇葩…

openssl3.2/test/certs - 013 - primary server-EKU root: sroot-cert

文章目录 openssl3.2/test/certs - 013 - primary server-EKU root: sroot-cert概述笔记END openssl3.2/test/certs - 013 - primary server-EKU root: sroot-cert 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 // \file my_openssl_linux_log_doc_013.txt // \not…

Java 实现二叉排序树(BST)

文章目录 介绍实现先定义一个节点树测试 总结 介绍 二叉排序树&#xff08;Binary Search Tree&#xff0c;简称BST&#xff09;是一种特殊的二叉树&#xff0c;其中每个节点的值都大于其左子树的任意节点值&#xff0c;而小于其右子树的任意节点值。 它具有以下特点&#xf…

笔记-孙子兵法-第三篇-谋攻(2)-集中优势兵力;将在外君命有所不受;知彼知己,百战不殆;

笔记-From 《华杉讲透孙子兵法》和《兵以诈立&#xff0c;我读孙子》 目录 第三篇-谋攻&#xff08;2&#xff09; 原文&#xff1a; Ankie的笔记-集中优势兵力&#xff1b;将在外君命有所不受&#xff1b;知彼知己&#xff0c;百战不殆&#xff1b; 第三篇-谋攻&#xff08…