OSPF协议报文
OSPF(Open Shortest Path First,开放最短路径优先)是一种内部网关协议(Interior Gateway Protocol,IGP),用于在同一个自治系统(Autonomous System,AS)内的路由器之间交换路由信息。
链路状态路由协议:比如OSPF、IS-IS、
采用链路状态算法,层次式的链路状态,传递LSA
距离矢量路由协议:比如RIP、EIGRP
1、路由器之间周期性的交换路由表
2、交换的是整张路由表的内容
3、水平分割技术
一、RIP和OSPF特性对比:

二、OSPF的主要特点包括:
链路状态协议:OSPF是一种链路状态协议,这意味着它维护一个关于网络拓扑的数据库,包括每个路由器与其邻居之间的连接状态。路由器之间交换链路状态信息,然后每个路由器使用这些信息来构建自己的网络拓扑图,并计算到达每个目的地的最短路径。
无类别域间路由(CIDR)支持:OSPF支持CIDR,这意味着它可以处理不同大小的IP地址块,从而提高了IP地址的利用率。
区域划分:OSPF允许将大型网络划分为多个区域(Area),每个区域运行一个OSPF实例。这有助于减少路由器之间的链路状态信息交换量,降低网络带宽的占用,并提高网络的稳定性。
多种路径计算:OSPF支持多种路径计算方法,包括最短路径优先(SPF)算法,以确保数据包能够沿着最优路径传输。
认证和安全性:OSPF提供了多种认证机制,如明文认证和MD5认证,以确保路由器之间交换的链路状态信息的安全性。
支持VLSM和子网划分:OSPF能够很好地支持可变长子网划分(VLSM)和子网划分,使得网络设计更加灵活。
三、Router-id:格式为点分十进制
官方文档:
1、手动配置OSPF的Router-id
2、环回接口IP地址最大的作为Router-id
3、物理接口IP地址最大的作为Router-id
实际情况:
1、手动配置OSPF的Router-id
2、使用路由器全局router-id作为OSPF的Router-id
3、全局router-id为设备第一个配置了IP并且UP的接口IP地址
dis router id 查看路由器全局router-id
DR与BDR的选举:
先选BDR,再选DR
四、OSPF报文详解

1.HELLO报文
Hello报文
用于发现、建立和维持邻居关系的


2.DD报文
DD报文
链路状态信息摘要报文
DD报文中的MTU
DD报文中的第一个字段就是发出该报文接口的MTU值,正常来说,OSPF邻居建立是需要要求两端接口的MTU值保持一致,否则无法建立,但是华为默认不检查MTU值,因此一般会显示为0(默认MTU为1500)(思科默认检查MTU)
可以手动开启MTU检测 接口下:ospf mtu-enable
当接口开启MTU检测后,DD报文中MTU的值将正常显示,如果两端接口只有一端开启MTU检测,不影响邻居建立,必须两端同时开启MTU检测后才会生效
如果slave路由器接口的MTU>master路由器的MTU,那么从路由器卡在exchange,主路由器卡在exstart状态
如果master路由器接口的MTU>slave路由器的MTU,双方都卡在exstart状态(从发送较小MTU的DD报文,主可以收到,但是主MTU较大,发送给从无法收到)

3.LSR报文
LSR报文
用于向邻居请求自身缺少的LSA
当路由器收到LSR报文时,会根据报文中的LSA三要素在自身LSDB中查找相关LSA,并将其封装到LSU中回复。


4.LSU报文
LSU报文
用于发送完整的LSA信息


5.LSAck报文
LSAck报文
用于确认收到的LSA,使用LSA头部信息做确认回复。


五、OSPF邻居状态机流程
1、两台路由器没有宣告OSPF之前,属于**DOWN**状态
2、宣告OSPF后,在收到第一个HELLO包后,将邻居的router-id放到自己的HELLO包内active neighbor字段发出,此时状态为**INIT**。
3、再次收到对方发来的hello包内active neighbor字段为自己的router-id,状态进入**2-way**。在init到**2-way**这个阶段,OSPF判断网络类型是否需要和邻居建立邻接关系,是否要发送DD报文。
4、双方分别发送DD报文,i=1,m=1,ms=1开始选举主从,两台路由器都认为自己是主,此时为**exstart**状态。
5、确定主从关系之后(router-id大的为主),从路由器发送DD摘要,i=0,m=0,ms=0其中m取决于后续是否还有摘要报文,此时从路由器是**exchange**状态,主路由器是**exstart**状态
6、主路由器收到DD摘要后,发送LSR。之后发送DD摘要给从路由器,i=0,m=0,ms=1。m取决于后续是否还有摘要报文,此时从路由器是**loading**状态,主路由器是**exchange**状态。
7、从路由器收到DD报文后,发送LSR。然后发送DD报文,i=0,m=0,ms=0。这个DD报文没有摘要信息,只为了告诉主路由器摘要交换完毕,且让主路由器从**exchange**进入**loading**状态。
8、双方路由器之间更新LSU之后,回复LSACK,进入**FULL**状态
扩展:两台设备无法建立邻居关系的原因
1、两台设备的区域类型不一致
2、两台设备发送HELLO包时间不一致
3、两台设备的认证类型不一致
4、两台设备的router-id冲突
5、两台设备是否能ping通
六、OSPF报文的确认机制
1、hello报文,10s一个,40s老化
2、DD报文,用seq做隐式确认主从(DD sequence:数值,双方设备随机发送seq数值,如果从设备认为自己比不过主设备,则会发送和主设备同样的DD seq数值)
例如:R1->R2 seq:244
R2->R1 seq:243
R1->R2 seq:243 R2为主,R1为从
3、LSR报文,使用LSU报文作为确认回复
4、LSU报文,使用LSAck报文作为确认回复
七、网络类型对OSPF建立邻居的影响
Broadcast:当链路层协议为以太网时,OSPF网络类型默认为广播型。Hello时间10s,dead时间40s。DR和BDR和DRother建立邻接,DRother之间建立邻居。组播地址:224.0.0.5 224.0.0.6。所有设备使用单播交互DD、LSR,所有设备固定使用224.0.0.5交换hello报文
P2P:建立邻接关系,当链路层协议为PPP/HDLC时,OSPF网络类型默认为点到点。Hello时间10s,dead时间40s。不选举DR和BDR,所有报文通过224.0.0.5更新
NBMA:当链路层协议为帧中继DR/ATM时,OSPF网络类型默认为NBMA。在OSPF进程中,还需要使用peer x.x.x.x指定对端邻居IP,NBMA有一个attempt状态。Hello时间30s,dead时间120s。需要选举DR和BDR。所有报文单播发送
P2MP:一般手动配置,多用于DSVPN技术,hellos时间30s,dead时间120s,不选举DR和BDR,直接建立邻接关系
广播和p2p可以建立邻接关系,但是无法传递路由信息
OSPF协议报文的更多相关文章
- 学习总结---OSPF协议
总结: 1.ospf协议报文不会泛洪扩散,而是逐级路由器处理后,再从所有ospf启用端口发送出去,也就是说,只能从邻居接收到ospf报文,报文的源ip是邻居的ip地址,目的ip是组播ip. 2.开启o ...
- OSPF协议总结
总结: 1.ospf协议报文不会泛洪扩散,而是逐级路由器处理后,再从所有ospf启用端口发送出去,也就是说,只能从邻居接收到ospf报文,报文的源ip是邻居的ip地址,目的ip是组播ip. 2.开启o ...
- 动态选路、RIP协议&&OSPF协议详解
动态选路.RIP协议&&OSPF协议详解 概念 当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路.路由器之间必须采用选路协议进行通信,这样的选路协议 ...
- OSPF协议详解
CCNP OSPF协议详解 2010-02-24 20:30:22 标签:CCNP 职场 OSPF 休闲 OSPF(Open Shortest Path Fitst,ospf)开放最短路径优先协议,是 ...
- OSPF协议介绍及配置 (上)
OSPF协议介绍及配置 (上) 一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加 ...
- OSPF协议介绍及配置
一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中,而对于这个网 ...
- H3C路由器配置——动态路由OSPF协议
一.介绍 1.OSPF协议介绍 (1).OSPF(Open Shortest Path First,开放最短路径优先)路由协议是用于网际协议(IP)网络的链路状态路由协议.是一个被各厂商设备广泛支持的 ...
- OSPF协议原理及配置5-LSA分析
OSPF协议原理及配置5-LSA分析 前面,已经介绍了邻接关系的建立和LSDB的同步.通过同步过程的介绍,我们可以了解LSDB的同步是通过交互LSA实现的. 不同角色的路由器发出的LSA的内容是不 ...
- OSPF协议原理及配置3-邻居关系的建立
OSPF协议原理及配置3-邻居关系的建立 OSPF协议的邻居关系是通过交换Hello报文建立的,所以我们先对OSPF的报文的种类,及Hello报文的结构做一了解. 1 OSPF协议有5种协议报文( ...
- OSPF协议原理及配置4-邻接关系的建立和LSDB同步
OSPF协议原理及配置4-邻接关系的建立和LSDB同步 进入ExStart状态后,广播和NBMA型网络要等待4倍的Hello时间,确定DR和BDR.然后建立邻接关系,并交互链路状态通告,以使用LS ...
随机推荐
- 【Windows 开发环境配置——C++ 篇】VSCode+MSVC/MinGW/Clangd/LLDB+Xmake
环境安装 Microsoft Visual Studio 这里以Visual Studio 2022为例,在Visual Studio 2022 版本发行说明 | Microsoft Learn选择所 ...
- ESLint is disabled since its execution has not been approved or denied yet
VS Code 装好ESLint 插件报黄线的问题,具体解决方法如下所示: ESLint is disabled since its execution has not been approved o ...
- 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-10- 标签页(tab)操作 - 上篇 (详细教程)
1.简介 本来按照计划这一系列的文章应该介绍Context和Page两个内容的,但是宏哥看了官方文档和查找资料发现其实和宏哥在Python+Playwright系列文章中的大同小异,差不了多少,再在这 ...
- 前端开发常用git命令详细版
1.新建代码库 当前目录创建一个git代码库 git init 新建一个目录文件 将其初始化为git代码库 git init [pro-name] 远端拉去项目 git clone [url] 2.基 ...
- CDS标准视图:维护策略描述 I_MaintStrategyTextData
视图名称:维护策略描述 I_MaintStrategyTextData 视图类型:基础视图 视图代码: 点击查看代码 @EndUserText.label: 'Maintenance Strategy ...
- elsa工作流-调度(安排后台作业)
前言 elsa内部很多地方都会用到后台作业,也就是在后台线程中执行一堆任务,这与我们通常理解的后台作业没有区别. elsa将后台作业也称为调度Schedul,相关功能由Elsa.Scheduling模 ...
- 类的加载与ClassLoader的理解
加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口(即引用地址).所 ...
- Map 实现类之:TreeMap(SortedMap的实现类) 和 Properties(Hashtable的实现类)
TreeMap存储 Key-Value 对时,需要根据 key-value 对进行排序.TreeMap 可以保证所有的 Key-Value 对处于 有序状态.TreeSet底层使用 红黑树结构存储 ...
- java重载-构造方法也存在重载-数据类型的提升
重载 1.一个类中不能声明多个相同的方法,属性. 2.上面的相同指的是方法名,参数列表相同.和返回值类型无关. 3.如果方法名相同,但是参数列表(个数,顺序,类型)不相同,会认为是不同的方法,在jav ...
- java中的文件流File
数据 + 流(转)操作 IO I表示的是:输入Input O表示的是:Output Stream表示流转 java中的管道不止一个.并且管道有可能不是一样的. 有的管道粗有的管道细 File的常用方法 ...