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 ...
随机推荐
- openEuler RISC-V上磁盘I/O性能测试的IOZone实例
IOZone 是一个广泛使用的文件系统性能基准测试工具,旨在评估磁盘 I/O 性能.它能够测试各种类型的文件操作,包括顺序读写.随机读写.重载(re-write).读取已写入的数据等.通过这些测试 ...
- 开源 Material Design WPF UI 控件库,易用且功能强大
前言 Material Design 是由 Google 开发的一套设计指南,提供统一的设计语言,使用户界面更加直观.美观和一致. Material Design In XAML Toolkit 是一 ...
- JVM实战—12.OOM的定位和解决
大纲 1.如何对系统的OOM异常进行监控和报警 2.如何在JVM内存溢出时自动dump内存快照 3.Metaspace区域内存溢出时应如何解决(OutOfMemoryError: Metaspace) ...
- # 个人认为windows下最好用的一批软件 #
个人认为windows下最好用的一批软件 chrome 为什么是chrome而不是edge2? 这当然不是因为我是谷歌吹什么的.其实当得知edge2比chrome更省内存,运行更快,而且不跨越城墙就能 ...
- CF div3 995 (A~G)
期末周之第三把网瘾(真是越来越放肆了...).这次赛时了一把div 3 , 又一次只做出了A~E,写完E后剩下的题没时间看了(受了些寝室噪音的干扰,最后二十分钟才出).赛后看了下F和G,感觉也是一时半 ...
- Java注意事项
阅读目录 一.Comparable简介 二.Comparator简介 三.Comparable和Comparator区别比较 一.Comparable简介 Comparable是排序接口.若一个类实现 ...
- 头文件中 ifndef/define/endif 有什么用?
1. 相同的声明可以多次出现,重复声明不是错误! 定义不可以,无论是单个文件还是多个文件,某个特定作用域(比如全局变量),不可以重复定义变量. 2. 类/结构体的定义可以在多个文件中多次出现,但是不可 ...
- String类的使用1
/*String:字符串,使用一对""引起来表示.1.String声明为final的,不可被继承2.String实现了Serializable接口:表示字符串是支持序列化的. 实现 ...
- idea遇见Command line is too long. Shorten command line for Main or also for Application default configuration?
<property name="dynamic.classpath" value="true" /> 第一步:找到项目目录下的.idea\works ...
- Linux驱动---字符设备
目录 一.基础简介 1.1.Linux设备驱动分类 1.2.字符设备驱动概念 二.驱动基本组成 2.1.驱动模块的加载和卸载 2.2.添加LICENNSE以及其他信息 三.字符设备驱动开发步骤 3.1 ...