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报文 |
| Loading | OSPF邻居之间开始交互LSR、LSU、LSAck报文。 |
| Full | LSDB同步完成,OSPF邻居之间完成邻接关系的建立 |

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

拓扑

(1)基础配置

复制代码
AR1
system
sysname AR1
interface g0/0/0
ip add 192.168.1.1 24

AR2
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.255

AR2
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协商错误

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

相关推荐
深度智能科技1 分钟前
IPv6无网络访问权限怎么解决?【图文讲解】Win10/Win11 IPv6无网络访问权限完整修复实操教程
网络·ipv6·深度c盘清理·ipv6协议开启自动获取ip·ipv6无网络访问权限·上不了网怎么办·防火墙拦截ipv6
weixin_3077791325 分钟前
Linux下ClickHouse数据仓库故障系统化诊断脚本
linux·运维·clickhouse·自动化·数据库开发
xianjixiance_29 分钟前
鸿蒙实战:SharePage 报告分享——雷达图预览与 pasteboard 剪贴板
华为·harmonyos
梦帮科技39 分钟前
Rust+Tauri+EVM:构建下一代内存安全级数字版权(DRM)主权音频网络与跨链金融系统的技术实践与全景架构
网络·安全·架构·rust·区块链·音视频·web3.py
mudtools39 分钟前
HttpUtils:一个编译时生成的声明式 HTTP 客户端框架
网络·网络协议·http·.net
luj_17689 小时前
残熵算法实时化三大瓶颈突破
c语言·开发语言·网络·经验分享·算法
吴懿不在9 小时前
某次热身赛re方向wp WORDS 51,500 READ 172 MIN base64,
网络
全堆鸿蒙11 小时前
27 RdbPredicates 条件查询详解:EqualTo、OrderBy、组合条件
华为·harmonyos·鸿蒙系统
心中有国也有家11 小时前
AtomGit Flutter 鸿蒙客户端: ChangeNotifier 模式
学习·flutter·华为·harmonyos
RisunJan11 小时前
Linux命令-rlogin(远程登录)
linux·运维