首页 > 其他分享 >OSPF(1):基础知识与数据包、状态机、工作过程

OSPF(1):基础知识与数据包、状态机、工作过程

时间:2025-01-17 18:28:09浏览次数:3  
标签:数据包 DBD RIP 状态机 区域 RID OSPF hello

引言

上一篇我们学习了RIP:RIP基础知识与配置,可是通过学习,我们发现RIP似乎只能运用在中小型网络中,那么中大型网络应该怎么做呢?这一篇博客我们就来学习OSPF

OSPF--- 开放式最短路径优先协议

动态路由优势评价维度:选路佳,收敛快,占用资源少

 

RIP与OSPF比较

1.OSPF本身是链路状态型协议,所以计算出的路径不会存在环路,并且使用带宽作为选路依据,所以,OSPF在选路的角度上优于RIP

2.OSPF的计时器时间也短于RIP,所以OSPF收敛速度会快于RIP

3.因为OSPF协议传递的是LSA信息,所以单个数据包的资源占用远大于RIP;但因为RIP存在30S一次的周期更新,而OSPF并没有如此高频率的周期更新,并且OSPF协议存在许多针对资源占用的优化措施。所以从整体的角度看,OSPF资源占用上应该小优于RIP

 

RIP存在3个版本

  1. RIPV1
  2. RIPV2 : IPV4 
  3. RIPNG:IPV6

OSPF也存在3个版本

  1. OSPFV1(实验室阶段就夭折了)
  2. OSPFV2: IPV4
  3. OSPFV3 :IPV6

RIPV2和OSPFV2

相同点:

1.OSPFV2和RIPV2一样,都是无类别的路由协议,都支持VLSM和CIDR;

2.OSPFV2和RIPV2一样,都是使用组播发送数据

RIPV2:224.0.0.9

OSPFV2:224.0.0.5 & 224.0.0.6

3.OSPFV2和RIPV2都支持等开销负载均衡

不同点:

RIP协议只能适用于小型网络环境中,而OSPF协议可以应用在中大型网络环境中 —— OSPF协议可以实现结构化部署(划分区域)

OSPF的结构化部署 --- 区域划分

区域划分的主要目的 : 区域内部传递拓扑信息,区域之间传递路由信息 ——链路状态型协议的距离矢量特征

如果一个OSPF网络只存在一个区域,这个网络称为单区域OSPF网络;

如果一个OSPF网络存在多个区域,这样的网络称为多区域OSPF网络。

区域边界路由器ABR)

同时属于多个区域,一个接口对应一个区域,必须有一个接口在区域0中,将区域内的拓扑信息收集计算成路由信息,之后进行传递。区域之间可以存在多个ABR设备,一个ABR设备可以处于多个区域

区域划分的要求:

  1. 区域之间必须存在ABR设备;
  2. 区域划分必须按照星型拓扑结构进行划分星型拓扑的中间区域—骨干区域)。

为了方便区分和标识不同的区域,所以我们给每一个区域都定义一个区域ID:area id,是32位二进制构成的,有两种表示方法:

  1. 直接使用十进制进行表示;
  2. 使用点分十进制进行表示: 骨干区域的区域ID定义为区域0

OSPF的数据包

hello包:周期性的发现,建立保活邻居关系。

  • hello包的发送周期(hello时间 ):10S(以太网)/30S
  • 死亡时间(dead time):4倍的hello时间(40S/120S)

DBD包: 数据库描述报文( LSDB — 链路状态数据库 ——LSA — “菜单”)

LSR包: 链路状态请求报文( 基于DBD包,请求未知的LSA信息——“点菜”)

LSU包:链路状态更新报文 (真正携带LSA的数据包—— “上菜”)

LSACK包:链路状态确认报文 (确认包)

OSPF协议具有周期更新机制,每个30MIN发送一次。

Router ID——RID (区分和标识不同的路由器 —本质由32位二进制构成)

  1. 格式统一
  2. 全网唯一

RID的生成方式:

  1. 手工配置
  2. 自动生成 (首先,设备将优先选择环回接口的IP地址作为RID,如果存在多个环回接口,则将选择所有环回接口中IP地址最大的作为RID;如果没有配置环回接口,则将使用设备的物理接口的IP地址作为RID,如果物理接口存在多个,则选择IP地址最大的作为RID)

OSPF的状态机

我们通过思科的几张图片来看看到底有几种状态机:

d13d0047b331470794a35cb9686233ed.png

 

05e407de7bd246269ab4dc85c9226035.png

9a0e8652f7fe425fa767c731e8783779.png

1.down状态:启动ospf之后,发出hello包进入下一个状态

 

2.init(初始化)状态 :收到对方的hello包中包含自己本地的RID,则进入到下一个状态Two-way(双向通信),标志着邻居关系的建立(条件匹配)匹配成功,则进入到下一个状态;失败则停留在邻居状态,仅使用hello包进行周期保活

 

T3.wo - Way(双向通信)状态 :标志着邻居关系的建立。

(条件匹配)条件匹配成功则可以进入到下一个状态;如果条件匹配失败,则将停留在邻居关系,则仅周期性的发送hello包进行保活

 

4.exstart(预启动)状态 :通过发送没有携带数据的DBD包来进行主从关系选举,比较RID来进行选举,RID大的为主,为主可以优先进入后面的exchange(准交换)状态

  • 主从关系选举 :通过发送没有携带数据的DBD包来进行主从关系选举,比较RID来进行选举,RID大的为主,为主可以优先进入后面的状态。
  • 之所以使用DBD包主要是为了和之前的邻居关系进行区分。

5.exchange(准交换)状态:交换携带数据(摘要信息)的DBD包进行LSDB数据库目录共享

 

6.loading(加载)状态 : 基于对端发送的DBD包,使用LSR/LSU/LSACK交换未知的LSA信息

 

7.FULL状态:标志着邻接关系的建立 ——主要目的是为了和之前的邻居关系进行区分,邻居只能通过hello包进行保活,而邻接之间,可以交换LSA信息。

 

OSPF的工作过程

启动配置完成,ospf协议向本地所有运行协议的接口以组播的形式(224.0.0.5)发送hello包;hello包中携带自己本地RID,以及本地已知的邻居的RID。之后,将收集到的邻居关系记录在一张表中 :邻居表

邻居关系建立完成后,进行条件匹配。失败则停留在邻居关系,仅hello包进行保活。  

匹配成功,则开始建立邻接关系。首先,使用未携带数据的DBD包进行主从关系选举。之后,使用携带数据的DBD包共享目录信息,之后,基于DBD包,通过LSR/LSU/LSACK获取未知的LSA信息。将所有的LSA信息保存本地的LSDB数据库: 数据库表

最后,基于LSDB,使用SPF算法进行计算,得到未知网段的路由信息,将其加载到路由表。收敛完成后,周期性的发送hello包进行保活,每30min一次周期更新。

结构突变:

  1. 突然新增一个网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK确认
  2. 突然断开一个网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK确认
  3. 无法联系 ——dead time:40s

OSPF的基础理论我们就到这里结束了,下一篇博客:ospf(2)我会对OSPF的基础配置与综合实验进行分解,想要继续了解的小伙伴可以关注或者订阅,以便查看后续博客。

 

 

标签:数据包,DBD,RIP,状态机,区域,RID,OSPF,hello
From: https://blog.csdn.net/2401_86511216/article/details/145161965

相关文章

  • OSPF(2):基础配置、拓展配置
    引言在前面的学习中我们知道了ospf的基础理论知识:ospf(1),那么这一节我们就来继续学习ospf的配置吧,而在本节我们的学习将基于以下这张图来讲解配置命令:R1、R2、R3都有一个环回接口,分别为1.1.1.1、2.2.2.2、3.3.3.3,每个物理接口的IP地址如图。由于在前面几篇内容中我们已经详......
  • 2025/1/16 实验作业——OSPF
    R1-3为区域0,R3-4为区域1,其中R3的环回在区域0:R3的0/0/0接口和环回在区域0,0/0/1接口在区域1R3为DR设备:R3的RIP值最大R4的环回不能宣告:要配缺省路由全网可达:全网通保证更新安全:进行手工认证减少路由条目:进行手工汇总192.168.1.0/24进行合理分配:此拓扑图中共有2个广播域和......
  • 2025/1/14 笔记 OSPF开放式最短路径优先协议
    一.距离矢量型协议:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载于自己的路由表中;但是对于网络中的所有路由器而言,路由器并不清楚网络的结构,只能简单的知道要去往某个地方方向在哪里,距离是多远。这既是......
  • 状态机幂等
    何为状态幂等?先了解何为幂等。幂等大家应该都知道。在针对数据更新操作的幂等中,有一个实现方案是基于版本号的数据库乐观锁。在账户记账业务中,我们通常会使用这种方式。具体的姿势是下面2步(前提是表里有version):查询数据,然后执行业务逻辑处理执行完业务逻辑,在更新数据时,......
  • 【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论
    文章目录【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论和实操14.1选择题在H3C设备上配置OSPF时,以下哪个命令用于启动OSPF进程?A.[H3C]ospfenableB.[H3C]ospf1C.[H3C]ospfstartD.[H3C]ospfprocessOSPF区域0......
  • 【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论
    文章目录14.1选择题解题思路和参考答案14.2理论题解题思路和参考答案14.3实操题解题思路和参考答案思科(Cisco)设备华为(Huawei)设备小米/锐捷(或其他支持标准CLI命令的设备)通过网络管理工具注意事项【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章o......
  • TCP与UDP数据包分析
    注意:帧规定最小为64bytes,最大为1518byte;帧头部+尾部占18bytes(6(DesMAC)+6(SrcMAC)+2(type)+4(CRC32校验))IP包中包头占20bytesTCP包中包头占20bytes(TCP的大小没有规定,主要靠在IP层中分片)UDP包中包头占8bytes(在lntent中规定UDP包大小为556byte,在局域网内可以达到64k)1、概述首先......
  • 【DNS攻防】深入探讨DNS数据包注入与DNS中毒攻击检测 (C/C++代码实现)
    DNS数据包注入和DNS中毒攻击是网络安全领域中的两个重要主题。DNS(域名系统)是互联网中的一项核心服务,负责将域名转换为与之相对应的IP地址。DNS数据包注入是指攻击者通过篡改或伪造DNS请求或响应数据包来干扰或破坏DNS服务的过程。攻击者可通过注入恶意数据包来改变DNS解析结果,将......
  • 《网络安全必备:Wireshark助力解析数据包,防范网络风险于未然》
    Wireshark安装入门之软件介绍软件简介Wireshark是一款开源的网络数据包分析软件,广泛应用于网络故障排除、网络安全分析、协议开发和教学等领域。它能够捕获和分析网络上的数据包,帮助用户理解网络通信的细节。平台支持WindowsLinuxmacOS安装步骤Windows安装访问Wireshark......
  • python 代码实现了一个结合数据包络分析(DEA)和粒子群优化(PSO)算法的模型,主要用于寻找一
    importnumpyasnpimportpandasaspdimportpickleimportrefromscipy.optimizeimportminimizeimportrandomimportmatplotlib.pyplotaspltimportscipy.statsasstatsfromconcurrent.futuresimportThreadPoolExecutor#加载数据,添加文件存在性验证......