OSPF路由协议——上

OSPF路由协议

RIP的不足

以跳数评估的路由并非最优路径

image-20250723193130785
  • 如果RTA选择s0/0传输,传输需时会大大缩短为3s

最大跳数为16跳,导致网络尺度小

image-20250723193319047
  • RIP协议限制网络直径不能超过16跳,并且16跳为不可达。

收敛速度慢

  • RIP 定期路由更新
    • 更新计时器:定期路由更新的时间间隔,默认为30s
    • 失效计时器:失效计时器内未收到更新,路由失效,默认180s
    • 清除计时器:清除计时器内未收到更新,路由清除,默认240s
image-20250723193659930

更新发送全部路由表,浪费网络资源

image-20250723193752213
  • 假设RTA和RTB各有1000条路由,每条路由需占用20个字节
  • 每次路由更新时,RTA和RTB之间单向需消耗至少160Kb的带宽资源

OSPF简介

什么是OSPF

  • OSPF英文全称Open Shortest Path First(开放式最短路径优先)
  • OSPF是IETF开发的一种链路状态路由协议,使用基于带宽的度量值
  • OSPF采用SPF(Shortest Path First,最短路径优先算法)算法计算路由,从算法上保证了无路由环路
  • OSPF通过邻居关系维护路由,避免了定期更新第带宽的消耗
  • OSPF路由更新效率高,网络收敛快,适用于大中型网络
  • OSPF报文封装于IP,协议号89,组播地址224.0.0.5和224.0.0.6

OSPF的基本工作原理

OSPF协议模型

  • OSPF基本协议模型
image-20250723194835980
  • LSA(Link-State Advertisement,链路状态通告)

  • LSDB(Link-State Database,链路状态数据库)

  • OSPF的四张表

OSPF基本概念——Router ID

  • 一台路由器要想运行OSPF协议,则必须存在Router ID(RID)
  • RID是一个32比特无符号整数,可以在一个自治系统中唯一的标识一台路由器。
  • RID可以手工配置,也可以自动生成。
  • 如果没有通过命令指定RID,将按照如下顺序自动生成一个RID:
    • 如果当前设备配置了Loopback接口(虚拟接口),将选取所有Loopback接口上数值最大的IP地址作为RID;
    • 如果当前设备没有配置Loopback接口,将选取它所有已经配置IP地址且链路UP的接口上数值最大的IP地址作为RID。

Router ID选举实例

image-20250723200125147

OSPF基本概念——LS

  • 链路状态(LS):路由器周边的链路状态
    • 直连网段状态:通过接口网段和接口状态感知
      • 描述直连网段:(网段、掩码、接口开销)
    • 直连拓扑状态:通过OSPF邻居和邻居状态感知
      • 描述直连拓扑:(邻居RID、连接接口、接口开销)
    • 接口开销:OSPF参考带宽/接口带宽
      • OSPF参考带宽默认为100Mbps
      • Loopback接口的开销默认为1
image-20250723200638236

OSPF基本概念——LSA

  • 链路状态通告(LSA)
    • 按一定格式封装后的链路状态信息
      • LSA 1:路由器链路状态通告
        • 每台路由器都会发起自己的LSA1
      • LSA 2:传送网络链路状态通告
image-20250723201245860

OSPF基本概念——LSDB

  • 链路状态数据库(LSDB)
    • 每台OSPF路由器上都有一个LSDB,用于存储LSA。
    • 同一个 区域中的OSPF路由器的LSDB一致。
      • LSA封装在LSU报文中,在区域内洪泛,最终到达区域内LSDB一致。
      • LSA在洪泛过程中保持不变
image-20250723201625682

OSPF基本概念——SPF

  • SPF计算
    • 以自己LSA 1为根,进行SPF计算。
    • 各OSPF路由器单独进行SPF计算,互不影响
image-20250723201749778

SPF开销计算

  • OSPF路由开销计算
    • 以自己为根,到达目标网段的出接口的开销的和。
image-20250723201951888
  • OSPF的度量值为cost,也叫开销,是以链路的接口带宽为依据;
  • 计算的方法为10的8次方除以带宽

OSPF基本概念——OSPF网络类型

  • Broadcast广播多路访问:以太网接口
  • NBMA(Non-Broadcast Multi-Access,非广播多点访问网络):帧中继接口
  • P2MP(Point-to-MultiPoint,点到多点)
  • P2P(Point-to-Point,点到点):PPP HDLC接口

OSPF基本概念——OSPF报文类型与封装

OSPF报文类型作用
Hello建立并维护邻居关系
Database Description(DD)数据库内容的汇总(仅包含LSA头部)
Link State Request(LSR)请求自己没有的或者比自己更新的链路状态详细信息
Link State Update(LSU)链路状态更新信息(LSA头部和内容)
Link State Acknowledge(LSAck)对LSU的确认
  • OSPF报文封装在IP报文中,协议号为89
image-20250723212502105

OSPF报文的目的地址

image-20250723212633050

建立邻居关系(点对点)

image-20250723212702626

维持邻居关系(点对点)

image-20250723212732839
  • 邻居之间通过交换Hello报文(默认30s),确认邻居是否工作正常
  • 如果在一定的时间间隔内(120s),没有收到邻居发来的Hello报文,就认为邻居已经失效,从邻居表中删除。

DR/BDR的选举(广播多路访问)

image-20250723212949512
  • 采用DR/BDR建立邻接关系,可以降低需要维护的邻接关系的数量

除了被选举出来的DR/BDR,其他的路由器都称为DROther,只需要和DR/BDR建立邻居关系即可,不需要再依次相互建立邻接关系,所有的LSA将由DR收取,统一进行洪泛,BDR作为DR的备份路由,当DR出故障了的时候,直接替代DR成为新的DR。

DR/BDR的选举原则

  • 首先比较Hello报文中携带的优先级

    • 优先级最高的被选举为DR,优先级次高的被选举为BDR
    • 优先级为0的不参与选举
  • 优先级一致的情况下,比较Router ID

    • Router ID越大越优先
  • 保持稳定原则

    • 当DR/BDR已经选举完毕,就算一台具有更高优先级的路由器变为有效,也不会替换该网段中已经选举的DR/BDR成为新的DR/BDR

DR/BDR的选举示例一

image-20250723214359728
  • RTE后来加入网络,虽然它的Router ID比原来的DR和BDR都要高,但是出于稳定性考虑,只能成为DRother路由器

DR/BDR选举示例二

image-20250723214533226
  • 当DR失效时,BDR立刻成为新的DR
  • DRother路由进行竞争,Router ID高的成为新的BDR

邻居关系无法建立原因总结

参数配置要点
router id每台OSPF路由器的router id必须唯一
area id同一网段的所有接口应当配置在同一区域内
Interface network-type同一网络接口的类型要相同,及hello时间与hellodown时间双方要一致
network mask除了点到点网络之外,同一网段的所有端口应当配置相同的掩码
authentication type同一区域的验证类型必须一致
authentication data同一网段的验证码必须一致
extern option配置stub区域或者NSSA时,区域内所有的路由器都要指定stub特性或者NSSA特性
peerNBMA网络上的邻居需要手动指定

OSPF基本概念——邻居状态变换(邻居关系)

image-20250723215352743

OSPF基本概念——邻居状态变换(邻接关系)

image-20250723215509980

DOWN、Init、two-way(邻居)

image-20250723220648173

ExStart和Exchange(邻接)

image-20250723220810046

Loading和Full(邻接)

image-20250723220912387

包含在各种报文中的LSA信息

image-20250723220942321

LSA报文头部

image-20250723221046303
字段名长度(字节)作用说明
LS age2字节LSA 生存时间(秒),最长3600秒,超过就作废。控制 LSA 生命周期。
Options1字节支持的OSPF功能选项,比如是否支持NSSA、E位(E1/E2)、DC位等。
LS type1字节LSA 类型(例如1类Router-LSA,2类Network-LSA)
Link State ID4字节LSA的“名字”,类型不同含义不同,例如:
Router-LSA:本路由器的Router ID;
Network-LSA:DR的接口IP。
Advertising Router4 字节发出该 LSA 的路由器 ID,谁发的谁填它。
LS Sequence Number4 字节序号,新LSA比旧的号大。
用于更新判断。初始值为 0x80000001,每次变化加1。
LS Checksum2字节CRC校验,用于验证 LSA 内容是否损坏。
Length2 字节包括头部在内的 LSA 总长度(字节)。一般为20字节

Loading和Full(续)

image-20250723222527100
  • OSPF协议包具备超时重传机制
  • OSPF协议具备序列号,对重复包不做处理

泛洪新LSA

image-20250723222636560

当有新的LSA生成或者收到时,这条心的LSA应当被泛洪

泛洪新的LSA时,只需要使用LS Update报文和LS Ack报文:

1.当RTA有新的LSA要泛洪时,RTA向RTB发送一个LS Update报文,在这个报文里包含这条LSA

2.当收到新的LSA以后,RTB向RTA泛洪一个LS Ack报文进行确认。

当在两个处于完全邻接状态(邻居状态为Full)的路由器之间泛洪新的LSA时,邻居状态不受影响

广播网络中LSDB更新

image-20250723223522800
  • 在广播和NBMA网络中,链路状态发送变化时,主要是通过DR路由器发送更新报文

OSPF LSA洪范与老化

  • OSPF LSA老化
    • LSA不老化的缺点:当网络长时间中断,故障网络中的设备发起的LSA长时间无效,但仍然存储在LSDB中,浪费设备内存。
    • OSPF LSA采用递增老化
      • LSA自发起时开始计时,到达最大老化时间后,从LSDB中清除。
      • OSPF最大老化时间3600秒,LSA头部的老化时间字段用于计时。
image-20250723223857523
  • OSPF LSA老化与全网刷新
    • 正常OSPF网络的路由维护
      • SA老化时间到达最大老化时间的一半(30分钟),发起路由器随机等待一段时间后重新发起该LSA,然后洪泛,刷新所有路由器LSDB。
      • 新发起的LSA序列号加1,老化时间为0。
    • LSA在整个洪泛过程中,除老化时间外,其余各字段都保持不变。
image-20250723224047595

泛洪新LSA(续)

image-20250723224150506

OSPF区域划分

OSPF协议分区域管理及路由器角色

image-20250723224452468

OSPF区域号

  • OSPF路由域:运行OSPF路由协议的网络
  • OSPF区域:OSPF是一种支持划分多区域的协议
    • Area ID:32位,用数字或IP地址表示
image-20250723224623162

OSPF协议区域LSA发布

image-20250723224650776

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90349.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(LeetCode 面试经典 150 题) 219. 存在重复元素 II (哈希表)

题目&#xff1a;219. 存在重复元素 II 思路&#xff1a;哈希表&#xff0c;时间复杂度0(n)。 哈希表记录每个数最新的下标&#xff0c;遇到符合要求的返回true即可。 C版本&#xff1a; class Solution { public:bool containsNearbyDuplicate(vector<int>& nums,…

Cookies 详解及其与 Session 的协同工作

Cookies 详解及其与 Session 的协同工作 一、Cookies 的本质与作用 1. 什么是 Cookies&#xff1f; Cookies 是由服务器发送到用户浏览器并存储在本地的小型文本文件。核心特性&#xff1a; 存储位置&#xff1a;客户端浏览器数据形式&#xff1a;键值对字符串&#xff08;最大…

DeepSeek Janus Pro本地部署与调用

step1、Janus模型下载与项目部署 创建文件夹autodl-tmp https://github.com/deepseek-ai/Janus?tabreadme-ov-file# janusflow 查看是否安装了git&#xff0c;没有安装的话安装一下&#xff0c;或者是直接github上下载&#xff0c;上传到服务器&#xff0c;然后解压 git --v…

【Elasticsearch】BM25的discount_overlaps参数

discount_overlaps 是 Elasticsearch/Lucene 相似度模型&#xff08;Similarity&#xff09;里的一个布尔参数&#xff0c;用来决定&#xff1a;> 在计算文档长度归一化因子&#xff08;norm&#xff09;时&#xff0c;是否忽略“重叠 token”&#xff08;即位置增量 positi…

Linux | LVS--Linux虚拟服务器知识点(上)

一. 集群与分布式1.1 系统性能扩展方式当系统面临性能瓶颈时&#xff0c;通常有以下两种主流扩展思路&#xff1a;Scale Up&#xff08;向上扩展&#xff09;&#xff1a;通过增强单台服务器的硬件配置来提升性能&#xff0c;这种方式简单直接&#xff0c;但受限于硬件物理极限…

【Linux-云原生-笔记】keepalived相关

一、概念Keepalived 是一个用 C 语言编写的、轻量级的高可用性和负载均衡解决方案软件。 它的主要目标是在基于 Linux 的系统上提供简单而强大的故障转移功能&#xff0c;并可以结合 Linux Virtual Server 提供负载均衡。1、Keepalived 主要提供两大功能&#xff1a;高可用性&a…

计算机网络:概述层---计算机网络的组成和功能

&#x1f310; 计算机网络基础全景梳理&#xff1a;组成、功能与核心机制 &#x1f4c5; 更新时间&#xff1a;2025年7月21日 &#x1f3f7;️ 标签&#xff1a;计算机网络 | 网络组成 | 分布式 | 负载均衡 | 资源共享 | 网络可靠性 | 计网基础 文章目录前言一、组成1.从组成部…

Linux中scp命令传输文件到服务器报错

上传本地文件到Linux服务器使用scp命令报错解决办法使用scp命令报错 Could not resolve hostname e: Name or service not known 解决办法 不使用登录服务器的工具传输&#xff0c;打开本地cmd&#xff0c;使用scp命令传输即可。 scp E:\dcm-admin.jar root127.0.0.1:/

历史数据分析——国药现代

医药板块走势分析: 从月线级别来看 2008年11月到2021年2月,月线上走出了两个震荡中枢的月线级别2085-20349的上涨段; 2021年2月到2024年9月,月线上走出了20349-6702的下跌段; 目前月线级别放巨量,总体还在震荡区间内,后续还有震荡和上涨的概率。 从周线级别来看 从…

#Linux内存管理# 在一个播放系统中同时打开几十个不同的高清视频文件,发现播放有些卡顿,打开视频文件是用mmap函数,请简单分析原因。

在播放系统中同时使用mmap打开几十个高清视频文件出现卡顿&#xff0c;主要原因如下&#xff1a;1. 内存映射&#xff08;mmap&#xff09;的缺页中断开销按需加载机制&#xff1a;mmap将文件映射到虚拟地址空间&#xff0c;但实际数据加载由“缺页中断&#xff08;Page Fault&…

AI黑科技:GAN如何生成逼真人脸

GAN的概念 GAN(Generative Adversarial Network,生成对抗网络)是一种深度学习模型,由生成器(Generator)和判别器(Discriminator)两部分组成。生成器负责生成 synthetic data(如假图像、文本等),判别器则试图区分生成数据和真实数据。两者通过对抗训练不断优化,最终…

FireFox一些设置

firefox后台打开新的链接&#xff0c;例如中键打开一个链接 地址栏输入about:config 找到下面三项&#xff0c;全部设为true browser.tabs.loadInBackground browser.tabs.loadDivertedInBackground browser.tabs.loadBookmarksInBackground 参考&#xff1a;FireFox/chrome…

【黑马SpringCloud微服务开发与实战】(六)分布式事务

1. 什么是分布式事务下单失败&#xff0c;购物车还被清理了。不符合一致性。2. seata的架构和原理3. 部署TC服务docker network ls docker inspect mysql mysql 在hm-net下&#xff0c;这里我的ncaos不是跟着视频配的&#xff0c;因此需要。 docker network connect hm-net nac…

【力扣】第15题:三数之和

原文链接&#xff1a;15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; 思路解析 双指针&#xff1a; &#xff08;1&#xff09;头尾指针对应值相加如果大于目标值(target)&#xff0c;那么只能尾指针-1&#xff1b;如果小于target&#xff0c;那么只能头指针1。 &#x…

Linux PCI总线子系统

The Linux Kernel Archives Linux PCI总线子系统 — The Linux Kernel documentation

LeetCode热题100--24. 两两交换链表中的节点--中等

1. 题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#x…

京东视觉算法面试30问全景精解

京东视觉算法面试30问全景精解 ——零售智能 供应链创新 工业落地:京东视觉算法面试核心考点全览 前言 京东作为中国领先的零售科技企业,在智能物流、供应链管理、智能仓储、商品识别、工业质检等领域持续推动视觉AI的创新与大规模落地。京东视觉算法岗位面试不仅关注候…

【设计模式】观察者模式 (发布-订阅模式,模型-视图模式,源-监听器模式,从属者模式)

观察者模式&#xff08;Observer Pattern&#xff09;详解一、观察者模式简介 观察者模式&#xff08;Observer Pattern&#xff09; 是一种 行为型设计模式&#xff08;对象行为型模式&#xff09;&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监…

Linux的`<< EOF`(Here-Document)详解多回答笔记250722

Linux的<< EOF(Here-Document)详解多回答笔记250722 Linux 中的 << EOF 结构称为 Here Document&#xff08;立即文档或嵌入文档&#xff09;&#xff0c;它是一种在 Shell 脚本中直接嵌入多行文本输入流&#xff08;通常作为命令的标准输入&#xff09;的方式。E…

Go语言实战案例-简单配置文件(INI格式)解析器

以下是《Go语言100个实战案例》中的 文件与IO操作篇 - 案例20&#xff1a;简单配置文件&#xff08;INI格式&#xff09;解析器 的完整内容&#xff0c;适合入门学习如何用 Go 语言解析常见的 .ini 配置文件格式。&#x1f3af; 案例目标使用 Go 语言解析一个 .ini 格式的配置文…