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

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

相关推荐
muxue1781 小时前
关于almalinux分区配置:
linux·运维·数据库
独行soc3 小时前
2025年渗透测试面试题总结-某服面试经验分享(附回答)(题目+回答)
linux·运维·服务器·网络安全·面试·职场和发展·渗透测试
C-20024 小时前
使用Deployment部署运行Nginx和Apache服务
运维·kubernetes·apache
yuanlaile4 小时前
HarmonyOS 鸿蒙操作物联网设备蓝牙模块、扫描蓝牙、连接蓝牙和蓝牙通信
物联网·华为·harmonyos·鸿蒙蓝牙·harmonyos 蓝牙模块
O。o.尊都假都4 小时前
UDP协议
linux·服务器·网络·网络协议·udp
leo·Thomas5 小时前
NetBox Docker 全功能部署方案(Ubuntu 22.04 + Docker)
运维·ubuntu·docker·容器·资产管理
惜.己5 小时前
linux中的常用命令(一)
linux·运维·服务器
科技小E5 小时前
国标GB28181视频平台EasyCVR安防系统部署知识:如何解决异地监控集中管理和组网问题
大数据·网络·人工智能·音视频
lcw_lance5 小时前
数字孪生[IOC]常用10个技术栈(总括)
大数据·运维·人工智能
无锡耐特森5 小时前
ProfiNet与CANopen:新能源时代的“语言翻译官”
网络·网络协议