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

devtools/2024/9/24 13:14:59/

什么是OSPF?

开放式最短路径优先OSPF,在大型网络结构当中路由器对IP的路由需要使用到RIP或者OSPF协议实现对链路的收敛,使得路由器能够准确的将IP数据包路由到准确的下一跳地址,接下来介绍一下OSPF实现链路收敛的原理方式。

OSPF相较于rip的优势

  • RIP使用跳点数量作为路径的评判标准,未考虑到链路带宽等其他因素。  OSPF使用cost(标准(指定)带宽/实际带宽)作为链路的评判标准,更加具有合理性。
  • RIP最大记录长度为15跳,在大型网络拓扑当中具有局限性。OSPF使用LSDB数据库的记录形式,没有跳点长度限制。
  • RIP更新次数频繁,每三十秒就对链路发送更新消息,占用网络资源。 OSPF只在路由发生变化或者三十分钟进行一次更新。
  • 收敛速度慢。 OSPF收敛速度快。

OSPF关系的组成

在OSPF当中有以下几种概念:DR BDR 邻接 邻居 Router ID 接下来我将具体讲解不同概念在OSPF当中的作用。

DR

同一个网段当中只能有一个组长、副组长

DR一个OSPF域当中的组长,用于负责对域内路由器LSA信息更新的发生以及给新接入的路由器进行数据同步等操作。

BDR

BDR指ospf域当中的副组长,始终与组长保持数据同步当组长出现故障后会顶替组长进行域内路由条目管理。

邻居

邻居关系是指两个相互连接的路由互为邻居关系。 路由器通过发送HELLO数据包来获取邻居信息。

邻接

邻接关系指DR、BDR与域内成员建立的邻居关系成为邻接关系,只有邻接关系才能实现LSA传输

Router ID

当一个路由器加入到OSPF域内后都会拥有一个RouterID用于在域内做唯一身份标识。这是一个4x8二进制数与IP相同,如果不由人员指定就会自动获取一个接口的IP作为该RouterID。

通常情况下会使用最大的本机回环地址作为RouterID,其次考虑使用最大的接口IP地址作为RouterID。

LSDB、LSA

LSDB指链路状态数据库,其中存放的是LSA,LSA指链路状态公告,路由器可以通过LSA获取整个域内的所有链路cost信息。从而实现选取最优路径。

cost

cost指路径开销,通常值为指定带宽/实际带宽,路径开销的值1越小,该路径的优先级越大,用户可以自己选择配置cost值,实现指定路径。

数据同步与常规LSA泛洪

两个组播地址

组播地址用于组员与组长有路由变更时发送组播让组员和组长实现LSDB更新

224.0.0.5   组员监听

224.0.0.6   组长监听

数据同步

当路由器接入一个OSPF域当中之后,会首先通过HELLO数据包发现域内的DR。

  • 在邻居关系建立后,路由器会与DR进行LSA数据库同步。这一过程称为数据库描述(DBD)交换
  • 路由器通过DBD报文交换其持有的LSA摘要信息。此时,如果路由器发现自己缺少某些LSA,它会通过发送**链路状态请求(LSR, Link State Request)**报文来请求特定的LSA。
  • DR会根据请求,将缺少的LSA发送给请求的路由器,使用**链路状态更新(LSU, Link State Update)**报文来进行传输。

LSA泛洪

LSA泛洪用于实现当域内某一台路由出现路由更新的情况,会首先在此路由本地生成LSA条目再发送给DR,DR接收到该条目后不会立即进行LSA泛洪会等待一段时间确认是否会再次接收到其他LSA条目,再进行泛洪以节省开销。

DR、BDR的确认

为什么要选取DR与BDR?

广播网络NBMA网络中,任意两台路由器之间都要传递路由信息网络中有n台路由器,则需要建立n*(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。

为解决这一问题,OSPF定义了DR。通过选举产生DR后,所有其他设备都只将信息发送给DR,由DR将网络链路状态LSA广播出去

为了防止DR发生故障,重新选举DR时会造成业务中断,除了DR之外,还会选举一个备份指定路由器BDR。这样除DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息,这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量。

DR和BDR的选举是基于以下两个主要因素进行的:

  • 路由器优先级:OSPF路由器接口上配置的优先级(Priority)值。优先级的范围是0到255,数值越大,优先级越高。默认值通常为1。
  • 路由器ID(Router ID):在优先级相同的情况下,使用路由器ID作为次要决策因素。路由器ID是OSPF路由器的唯一标识,通常是路由器上配置的最高IP地址,或手动指定的一个32位值。

五个重要的报文

HELLO报文

HELLO报文用于发现和维持邻居关系

BDB

DBD指发送的LSDB信息摘要,成员路由接收后通过查看摘要确定自己需要的路由LSA。

LSR

成员路由确定所需要的LSA后发送LSR请求需要的LSA信息

LSV

一个LSV包含了多个LSA

LSAck

LSAck表示确认收到了信息。


http://www.ppmy.cn/devtools/100814.html

相关文章

前端面试宝典【CSS篇】【9】

在前端开发的世界里,每一次面试都是一次机遇,也是一次挑战。 你是否曾因技术深度不够而错失良机? 或是面对最新的技术趋势感到迷茫? 我们的【前端面试宝典】正是为此而来。 由拥有多年一线实战经验的资深工程师亲自授课,结合最新的行业动态与实战案例,旨在全面提升你的技…

C语言小项目源码大全(60套)

C语言小项目源码大全60套 目录源码文件 目录 纯c语言迷宫源码.exe . c语言五子棋源码.exe c语言24点游戏源码.exe c语言万年历源码.exe c语言别踩白块儿(双人版)源码.exe c语言奔跑的火柴人游戏源码.exe c语言吃逗游戏源码.exe C语言超市管理系统.exe c语言对对碰游戏…

Autosar(Davinci) --- 创建一个Implementation Data Types

前言 这里我们讲一下如何创建一个Implementation Data Types(IDT) 一、什么是IDT 二、如何创建一个IDT 鼠标右键【Implementation Data Types】,选择【new Type Reference...】 起一个名字【IdtDoorState】,Data Types选择【boolean】,这里…

.NET内网实战:通过回调函数执行Shellcode

01阅读须知 此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧。 02基本介绍 本文内容部分节选自小报童《.NET 通过回调函数执行Shellcode启动进程》! 03编码实现 在红队活动往往需要考虑…

服务器在插入一个新的磁盘后需要做的操作(仅限新盘)

进入服务器的raid配置界面(重启,按CtrlR进入PERC RAID配置工具) 在RAID配置界面中,进行插入操作,出现新的磁盘后,光标移到菜单栏,按F2进入设置界面,选择最下面的【Convert to Non-R…

车路云一体化的优缺点及发展前景

车路云一体化是智能网联汽车发展的一个重要方向,它通过车辆、道路基础设施和云平台的深度融合,实现更安全、更高效的自动驾驶和交通管理。以下是车路云一体化的一些优缺点: 优点: 提高安全性:通过车辆与道路基础设施…

【网络安全】IDOR之请求包分析

未经许可,不得转载。 文章目录 正文正文 某在线游戏平台,在开始测试时,我访问了 /profile 页面(个人资料页面),然后查看 Burp 历史记录,想查看有多少隐藏的请求。 可以看到一个HTTP 的 OPTIONS 方法的请求包: 从图中看到,该请求包含两个参数:player_id_or_name(用…

【408DS算法题】018基础-09年真题_查找链表倒数第k个结点

今日内容稍后补全以下内容来自:https://blog.csdn.net/weixin_60702024/article/details/141307874 Index 今日内容稍后补全以下内容来自:https://blog.csdn.net/weixin_60702024/article/details/141307874真题题目分析实现总结 真题题目 已知一个带有…