OSPF-2 邻接建立关系

上一期我们说了OSPF的邻居建立关系以及OSPF邻居关系建立中建立失败的因素以及相关实验案例

这一期我们来说说OSPF的邻接关系建立时需要交互哪些报文以及失败因素及原因和相关实验案例

一、概述

在运行了OSPF的网络当中为了交互链路状态信息和路由信息,互相之间需要建立邻接关系。

邻居关系不等于邻接关系

不是所有的邻居关系都可以建立邻接关系

在广播型网络当中(MA网络类型)与NBMA网络类型中,Dr other只与DR/BDR建立邻接关系。

什么是邻接关系

邻接关系是建立完邻居关系后进一步建立的,当建立OSPF邻居的两端路由器交互完DD报文以及LSA之后才算建立完邻接关系。

二、OSPF的邻居状态

OSPF的邻居状态

Down这是邻居的初始状态,表示没有从邻居收到任何信息
Init在此状态下,路由器已经从邻居收到了Hello报文,但是自己的Router ID不在收到的Hello报文的邻居列表当中
2-way在此状态下,路由器发现自己的Router ID存在于收到的Hello报文的邻居列表当中

OSPF的邻接状态

Exstart邻居状态变成此状态之后,路由器开始向邻居发送DD报文
Exchange在此状态下,路由器与邻居之间相互发送包含链路状态信息摘要的DD报文
Loading在此状态下,路由器与邻居之间相互发送LSR报文、LSU报文、LSAck报文。
Full路由器完成了邻居的LSDB链路状态数据库同步

三、影响OSPF邻接状态的因素

MTU建立邻接关系的两端路由器的接口MTU参数需要一致
静默接口建立邻接关系的两端路由器的接口不能设置为静默接口,如果设置为静默接口邻居关系也无法建立成功
过滤OSPF报文建立邻接关系的两端路由器不能配置ACL过滤OSPF报文,如果过滤了OSPF报文邻居关系也无法建立成功

1、MTU

建立邻接关系的两端路由器的接口MTU值不一致时会卡在Exstart状态,华为默认不开启MTU检查发出的DD报文中的MTU值为0,所以在默认情况下修改MTU的参数并不会直接影响OSPF邻接关系的建立

只有开启了MTU检测后才会把接口的MTU值写入DD报文中

四、OSPF邻接关系过程

邻居状态Down~2-way路由器在接口下运行OSPF协议,周期性发送Hello报文发现邻居并建立邻居关系
Exstart通过发送DD报文来协商MTU和主从关系,RID大的为主
Exchange基于选举出来的主从关系,由从先发送带有链路状态信息摘要的DD报文
LoadingOSPF邻居之间开始交互LSR、LSU、LSAck报文。
FullLSDB同步完成,OSPF邻居之间完成邻接关系的建立

1、MA广播型网络建立邻接关系过程

拓扑

 (1)基础配置

AR1
system
sysname AR1
interface g0/0/0
ip add 192.168.1.1 24AR2
system
sysname AR2
interface g0/0/0
ip add 192.168.1.2 24

(2)OSPF配置

AR1
ospf 1 router-id 1.1.1.1
area 0
network 0.0.0.0 255.255.255.255AR2
ospf 1 router-id 2.2.2.2
area 0
network 0.0.0.0 255.255.255.255

通过发送Hello报文发现OSPF邻居,建立邻居关系

Down~2-way

当AR1的邻居状态变为Exstart后,AR1会发送第一个DD报文,此报文当中DD报文的序列号为随机的X,I为1表示为第一个DD报文,M为1表示还有后续的DD报文,MS为1表示自己为主

2-way~Exstart

我们可以看到在没有配置MTU检查时发送的DD报文中的MTU值默认为0

I是否为第一个DD报文,如果为1表示为第一个,如果为0表示不是第一个
M是否有后续的DD报文也可以理解为是否为最后一个DD报文,如果为1代表后续还有,如果为0则为最后一个
MS是否为主,如果为1表示为主,如果为0表示为从,所有OSPF邻居在第一个发送DD报文时都认为自己是主所以这里都为1

Exstart~Exchang

我们可以看到是由从先发送后续的DD报文并且这个DD报文中携带了LSA的摘要信息,也就是有内容的DD报文
Exchange~Full

开始交互LSR、LSU、LSAck报文交互LSA链路状态信息

AR1与AR2会发送LSR请求DD报文下发现的并且在本地LSDB中没有的链路状态信息

LSR请求LSA,只携带LSA的摘要信息类似于目录
LSU对LSA的回应,携带全部的LSA信息内容
LSAck对LSU的确认,携带LSA的摘要

此时就完成了OSPF邻接关系的建立

2、开启MTU检查后建立邻接关系

拓扑

 这里我们把AR1的接口MTU配置为1400并在两端开启MTU检查看看是否可以建立OSPF邻接关系

这里我们可以看到AR1发送的DD报文中MTU字段为配置的1400并且邻居状态会卡在Exstart状态,查看错误报告时会发现MTU协商错误

 

 到这里本章内容就到此结束了如果有疑问可以+博主私聊,如果哪里有问题欢迎私聊博主及时更改谢谢大家的观看学习!!!

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

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

相关文章

问deepseek: 如何处理CGNS网格文件里,多个zone之间的链接数据

在CGNS文件中,多个zone之间的链接数据通常通过ZoneGridConnectivity节点处理。以下是处理步骤: 1. 确定链接类型 首先,明确zone之间的链接类型,常见的有: 1-to-1连接:两个zone的边界点一一对应。** Over…

什么是SEO泛目(什么是SEO站群)

SEO泛目录与站群策略:提升网站优化的双剑合璧 在当今竞争激烈的互联网环境中,SEO优化已成为企业提升网站流量和品牌曝光的重要手段。而在众多SEO策略中,泛目录和站群因其独特的技术优势和效果,逐渐成为SEO从业者的热门选择。本文…

conda、pip、npm、yarn换国内源

conda源 # conda源 conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes# 换回conda的默认源 conda config --remove-key channels pip源 # pip源# 永久换源 pip config set global.index-url https://…

Jetson Orin NX jupyter lab的安装和使用

主要是为了梳理一下整个过程,其实步骤很简单,但容易出错。 注意,实际只有两个文件需要写入,一个是jupyter_lab_config.py,一个是jupyter.service。 配置文件的名字要写对,如果总是copy网上的代码&#xff0…

【清华大学第七版】DeepSeek赋能家庭教育的实操案例(批改作文+辅助语文/数学/科学学习+制定学习计划)

我用夸克网盘分享了「DeepSeek完整资料合集」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接:https://pan.quark.cn/s/621259e4af15 近日,清华大学发布了《…

hive 中的各种参数,一般在哪里修改

在实际工作中,Hive 参数的配置和修改可以通过多种方式进行,具体取决于使用场景和需求。以下是常见的参数配置方式和适用场景: 1. 在 Hive CLI 或 Beeline 中临时设置 适用场景: 临时修改参数,仅对当前会话生效。 使用方法: 在 Hi…

Opencv之掩码实现图片抠图

掩码实现图片抠图 目录 掩码实现图片抠图1 掩码1.1 概念1.2 创建掩码1.3抠图思路 2 代码测试 1 掩码 1.1 概念 掩码(Mask)是一种用于指定图像处理操作区域的工具。掩码通常是一个与图像尺寸相同的二值图像,其中像素值为0表示不处理&#xff…

QT编程之JSON处理

一、核心类库及功能 Qt 提供了一套完整的 JSON 处理类库(位于 QtCore 模块),支持解析和生成 JSON 数据: ‌QJsonDocument‌:表示完整的 JSON 文档,支持从 QJsonObject 或 QJsonArray 初始化‌。‌QJsonOb…

在虚拟环境里面配置Linux系统

Linux系统有很多版本,常用的有Ubantu乌班图,和CentOS 不同的版本在使用的时候,有部分执行方式的不同 安装的流程都一样 首先,想要安装Ubantu,要去它的官网,找下载连接,然后下载iso后缀的安装…

CentOS7下安装MongoDB

步骤 1:创建 MongoDB Yum 仓库文件 你需要创建一个 MongoDB 的 Yum 仓库配置文件,以便从官方源下载 MongoDB。打开终端并使用以下命令创建并编辑该文件: sudo vi /etc/yum.repos.d/mongodb-org-7.0.repo 在打开的文件中,输入以下…

机器视觉工程师如何学习C#通讯

建议大家可以提前测试,真实模拟现场的情况,或者采用虚拟串口,虚拟网口频繁测试通讯的稳定性,以后有现场需要,可以快速布局到现场。 机器视觉工程师学习C#通讯协议需要结合工业场景需求,掌握基础协议原理、常…

40.动态规划13

回文子串 class Solution { public:int countSubstrings(string s) {int ns.size();vector<vector<int>> dp(n,vector<int>(n,0));int res0;for(int i0;i<n;i){for(int ji;j>0;j--){if(ij){dp[i][j]1;res;}else{if(s[i]s[j]){if(abs(i-j)<2){dp[i]…

基于ssm的一家运动鞋店的产品推广网站的设计

项目简介 一家运动鞋店实现了以下功能&#xff1a; 实现了用户在线选择试题并完成答题&#xff0c;在线查看考核分数。管理员管理收货地址管理、购物车管理、字典管理、留言版管理、新闻信息管理、产品管理、产品收藏管理、产品评价管理、产品订单管理、单页数据管理、用户管…

3.14学习总结

今天完成了几道关于二叉树的算法题 关于二叉树的最小最大深度和数据流中的第k大元素&#xff0c;用到优先队列&#xff0c;学习了有关java的基础知识&#xff0c;学习了双指针法。

spring boot3 kafka集群搭建到使用

首先自行安装docker&#xff0c;通过docker容器安装kafka CentOS 系统 docker安装地址 1.pom.xml和application.properties或者application.yml文件配置 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</arti…

基于 RWA 模型与 AI - Agent 协同的企业级 aPAAS 架构设计

一、引言 在企业数字化转型不断深化的当下&#xff0c;现实世界资产&#xff08;RWA&#xff09;模型与人工智能智能体&#xff08;AI - Agent&#xff09;的协同融合&#xff0c;为企业级应用平台即服务&#xff08;aPAAS&#xff09;架构的创新发展带来了新契机。这种架构旨在…

Flutter PopScope对于iOS设置canPop为false无效问题

这个问题应该出现很久了&#xff0c;之前的组件WillPopScope用的好好的&#xff0c;flutter做优化打算“软性”处理禁用返回手势&#xff0c;出了PopScope&#xff0c;这个组件也能处理在安卓设备上的左滑返回事件。但是iOS上面左滑返回手势禁用&#xff0c;一直无效。 当然之…

基尔霍夫定律课后学习日志

基尔霍夫定律课后日志 今天在学习基尔霍夫定律后&#xff0c;我对它在实际工程中的价值有了全新的认识。 基尔霍夫电流定律&#xff08;KCL&#xff09;和电压定律&#xff08;KVL&#xff09;是电路分析的基石。在电子电路设计领域&#xff0c;这两个定律发挥着关键作用。以…

矩阵交换行(信息学奥赛一本通-1119)

【题目描述】 给定一个55的矩阵(数学上&#xff0c;一个rc的矩阵是一个由r行c列元素排列成的矩形阵列)&#xff0c;将第n行和第m行交换&#xff0c;输出交换后的结果。 【输入】 输入共6行&#xff0c;前5行为矩阵的每一行元素,元素与元素之间以一个空格分开。 第6行包含两个整…

SWPU 2022 新生赛

webdog1__start if (isset($_GET[web])) {$first$_GET[web];if ($firstmd5($first)) md5 自等 web0e215962017 &#xff08;md5后也是 0e) 登入后得到提示&#xff0c;robots.txt 访问 f14g.php 返回包里发现 hint > if (isset($_GET[get])){$get$_GET[get];if(!strs…