OSPF域内路由

简介

Router-LSA

Router-LSA(Router Link State Advertisement)是OSPF(Open Shortest Path First)协议中的一种链路状态通告(LSA),它由OSPF路由器生成,用于描述路由器自身的链路状态信息。Router-LSA是OSPF协议中最为基础和重要的LSA类型之一,

1. Router-LSA的作用

  • 描述路由器的接口信息:Router-LSA详细描述了路由器上所有参与OSPF进程的接口状态,包括接口的IP地址、网络掩码、接口类型(如点到点、广播型、NBMA等)以及接口的开销(Cost)。

  • 描述路由器的邻居关系:Router-LSA还记录了路由器与哪些其他路由器建立了邻接关系(Adjacency)。这对于构建OSPF的拓扑结构至关重要,因为路由器需要知道哪些邻居可以直接通信。

  • 构建链路状态数据库(LSDB):Router-LSA是LSDB的重要组成部分。每个路由器都会根据收到的Router-LSA来构建自己的LSDB,从而了解整个OSPF域内的网络拓扑结构。

  • 计算最短路径树(SPT):基于Router-LSA中的信息,路由器运行SPF(Shortest Path First)算法来计算到达各个网络的最短路径,并生成最短路径树。这些路径最终会被添加到路由器的路由表中,用于数据包的转发。

2. Router-LSA的结构

Router-LSA的结构如下

字段长度(字节)描述
LS age2LSA的生存时间(以秒为单位),最大值为3600秒(1小时)
Options1OSPF选项,如支持的OSPF特性(如VLSM、多拓扑等)
LS type2LSA类型,Router-LSA的类型为1
Linking LS ID4生成该LSA的路由器的Router ID
Advertising Router4生成该LSA的路由器的Router ID
LS sequence number4LSA的序列号,用于版本控制
LS checksum2LSA的校验和,用于检测LSA的完整性
Length2LSA的总长度
Number of Links2路由器的链路数量
Link Description可变描述每条链路的详细信息,包括链路类型、连接的网络、邻居的Router ID等

3. Router-LSA中的链路类型

Router-LSA中可以包含多种类型的链路,每种链路类型都有其特定的描述方式:

  • 点到点链路(Point-to-Point):描述路由器与一个邻居之间的直接连接。这种链路类型通常用于串行链路或点到点的以太网连接。

  • 传输网络(Transit Network):描述路由器连接到一个广播型网络(如以太网)的情况。在这种链路类型中,Router-LSA会列出该网络的DR(Designated Router)的Router ID。

  • 存根网络(Stub Network):描述路由器连接到一个没有其他OSPF路由器的网络。这种链路类型通常用于描述本地网络。

  • 虚拟链路(Virtual Link):用于连接两个非直接相连的区域边界路由器(ABR),以实现区域之间的通信。虚拟链路通常用于穿越骨干区域(Area 0)。

4. Router-LSA的生成和传播

  • 生成:当OSPF路由器启动OSPF进程或接口状态发生变化时,路由器会生成Router-LSA。Router-LSA的生成是基于路由器的接口配置和邻居关系。

  • 传播:Router-LSA在OSPF区域内传播,但不会跨越区域边界。

Network-LSA

Network-LSA(Network Link State Advertisement)是OSPF(Open Shortest Path First)协议中的一种链路状态通告(LSA),它用于描述广播型网络或多访问网络(如以太网)的状态。Network-LSA由指定路由器(Designated Router,DR)生成,用于描述该网络上的所有路由器接口信息。以下是关于Network-LSA的详细内容:

1. Network-LSA的作用

  • 描述广播型网络的状态:Network-LSA用于描述广播型网络(如以太网)的状态,包括该网络上的所有路由器接口信息。这对于构建OSPF的链路状态数据库(LSDB)和计算最短路径树(SPT)至关重要。

  • 列出网络上的所有路由器:Network-LSA中包含了该网络上所有路由器的Router ID,这些路由器通过DR进行协调和信息同步。

  • 提供网络的拓扑信息:通过Network-LSA,其他路由器可以了解到该网络的拓扑结构,包括哪些路由器连接到了该网络以及它们的接口信息。

2. Network-LSA的结构

Network-LSA的结构如下

字段长度(字节)描述
LS age2LSA的生存时间(以秒为单位),最大值为3600秒(1小时)
Options1OSPF选项,如支持的OSPF特性(如VLSM、多拓扑等)
LS type2LSA类型,Network-LSA的类型为2
Linking LS ID4该网络的网络地址(通常是该网络的DR接口的IP地址)
Advertising Router4生成该LSA的路由器的Router ID(通常是DR的Router ID)
LS sequence number4LSA的序列号,用于版本控制
LS checksum2LSA的校验和,用于检测LSA的完整性
Length2LSA的总长度
Network Mask4该网络的子网掩码
Attached Router可变该网络上所有连接的路由器的Router ID

3. Network-LSA的生成

  • 生成者:Network-LSA由指定路由器(DR)生成。在广播型网络中,DR负责收集该网络上的所有路由器接口信息,并生成Network-LSA。

  • 生成时机:当DR启动OSPF进程、网络拓扑发生变化(如新的路由器加入或离开网络)或DR自身状态发生变化时,DR会生成或更新Network-LSA。

4. Network-LSA的传播

  • 传播范围:Network-LSA在OSPF区域内传播,但不会跨越区域边界。它只在生成它的区域内部传播,用于描述该区域内的广播型网络状态。

  • 传播方式:DR会将Network-LSA发送给该网络上的所有其他路由器,这些路由器会将该LSA添加到自己的链路状态数据库(LSDB)中,并根据LSDB中的信息运行SPF算法来计算最短路径。

5. Network-LSA的示例

假设有一个以太网网络,其网络地址为192.168.1.0/24,该网络上有三台OSPF路由器:R1、R2和R3。R1被选为DR,R2和R3为备份DR(BDR)和DROTHER。R1会生成一个Network-LSA,内容如下:

  • LS age:0

  • Options:0x22(支持VLSM和多拓扑)

  • LS type:2

  • Linking LS ID:192.168.1.1(DR的接口IP地址)

  • Advertising Router:R1的Router ID

  • LS sequence number:0x80000001

  • LS checksum:0x1234

  • Length:36

  • Network Mask:255.255.255.0

  • Attached Router

    • R1的Router ID

    • R2的Router ID

    • R3的Router ID

6. Network-LSA的重要性

  • 构建拓扑结构:Network-LSA为OSPF路由器提供了广播型网络的详细拓扑信息,使得路由器能够准确地构建整个网络的链路状态数据库(LSDB)。

  • 优化路由计算:通过Network-LSA,路由器可以了解到广播型网络上的所有路由器接口信息,从而更准确地计算出到达各个网络的最短路径。

  • 提高网络稳定性:DR负责生成和维护Network-LSA,这种机制可以减少网络中的LSA数量,提高网络的稳定性和收敛速度。

SPF

SPF(Shortest Path First)计算是OSPF(Open Shortest Path First)协议中的核心部分,用于计算到达网络中各个目的地的最短路径。以下是SPF计算的详细过程:

1. 初始化

  • 选择起点:SPF计算从路由器自身(即计算路由器)开始,将自身作为起点。

  • 创建拓扑图:根据链路状态数据库(LSDB)中的信息,构建一个拓扑图。这个图包含了网络中的所有路由器和链路,以及链路的开销(Cost)。

2. 计算最短路径树(SPT)

  • 选择最小开销链路:从起点开始,选择开销最小的链路到达相邻的路由器。如果有多条链路开销相同,则可以选择多条路径。

  • 标记已访问节点:将已经选择的路由器标记为已访问,避免重复计算。

  • 递归计算:对于每个已访问的路由器,重复上述过程,选择开销最小的链路到达其相邻的未访问路由器,直到所有路由器都被访问过。

  • 构建最短路径树:通过上述过程,可以构建出一棵以计算路由器为根的最短路径树(SPT)。树中的每个节点代表一个路由器,每条边代表一条链路,边的权重代表链路的开销。

3. 生成路由表

  • 提取路径信息:从最短路径树(SPT)中提取路径信息,包括目的地、下一跳路由器、链路开销等。

  • 添加到路由表:将提取的路径信息添加到路由器的路由表中。如果存在多条到达同一目的地的等开销路径,则可以将多条路径都添加到路由表中,实现负载均衡。

4. 处理特殊情形

  • 处理区域边界路由器(ABR):如果路由器是区域边界路由器(ABR),则需要考虑区域间的路由。ABR会根据区域间的LSA(如Type 3 LSA)来计算区域间的最短路径,并将这些路径添加到路由表中。

  • 处理虚拟链路:如果网络中存在虚拟链路(Virtual Link),则需要在SPF计算中考虑这些链路。虚拟链路通常用于连接两个非直接相连的ABR,以实现区域间的通信。

5. SPF计算的优化

  • 增量SPF(iSPF):当网络拓扑发生变化时,可以只对发生变化的部分进行SPF计算,而不是对整个网络重新计算。这可以减少SPF计算的开销,提高网络的收敛速度。

  • 延迟SPF计算:为了减少SPF计算的频率,可以对SPF计算进行延迟。例如,当网络中发生多个拓扑变化时,可以等待一段时间,直到所有变化都稳定下来后再进行SPF计算。

6. SPF计算示例

假设有一个简单的OSPF网络,包含四个路由器A、B、C、D,以及它们之间的链路开销。路由器A要计算到达其他路由器的最短路径。

  1. 初始化:路由器A将自身作为起点,构建拓扑图。

  2. 计算SPT

    • 从A开始,选择开销最小的链路到达B和C。

    • 从B开始,选择开销最小的链路到达D。

    • 从C开始,选择开销最小的链路到达D。

    • 从D开始,没有未访问的路由器。

  3. 生成路由表

    • 路由器A的路由表中将包含以下条目:

      • 目的地B,下一跳B,开销1

      • 目的地C,下一跳C,开销1

      • 目的地D,下一跳B,开销2(通过B到达D)

      • 目的地D,下一跳C,开销2(通过C到达D)

7. SPF计算的重要性

  • 提供最短路径:SPF计算为OSPF路由器提供了到达网络中各个目的地的最短路径,从而保证了数据包的高效传输。

  • 快速收敛:SPF计算可以快速响应网络拓扑的变化,保证网络的稳定性和可靠性。

  • 负载均衡:SPF计算可以支持多条等开销路径,实现负载均衡,提高网络的利用率。

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

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

相关文章

torch 高维矩阵乘法分析,一文说透

文章目录 简介向量乘法二维矩阵乘法三维矩阵乘法广播 高维矩阵乘法开源 简介 一提到矩阵乘法,大家对于二维矩阵乘法都很了解,即 A 矩阵的行乘以 B 矩阵的列。 但对于高维矩阵乘法可能就不太清楚,不知道高维矩阵乘法是怎么在计算。 建议使用…

瑞萨RA-T系列芯片马达类工程TCM加速化设置

本篇介绍在使用RA8-T系列芯片,建立马达类工程应用时,如何将电流环部分的指令和变量设置到TCM单元,以提高电流环执行速度,从而提高系统整体的运行性能,在伺服和高端工业领域有很高的实用价值。本文以RA8T1为范例&#x…

获取Unity节点路径

解决目的: 避免手动拼写节点路径的时候,出现路径错误导致获取不到节点的情况。解决效果: 添加如下脚本之后,将自动复制路径到剪贴板中,在代码中通过 ctrlv 粘贴路径代码如下: public class CustomMenuItems…

Docker 安装 Oracle 12C

镜像 https://docker.aityp.com/image/docker.io/truevoly/oracle-12c:latest docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/truevoly/oracle-12c:latest docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/truevoly/oracle-12c:latest d…

Linux内核网络协议注册与初始化:从proto_register到tcp_v4_init_sock的深度解析

一、协议注册:proto_register的核心使命 在Linux网络协议栈中,proto_register是协议初始化的基石,主要完成三项关键任务: Slab缓存创建(内存管理核心) prot->slab = kmem_cache_create_usercopy(prot->name, prot->obj_size, ...); if (prot->twsk_prot) pr…

GD32 MCU的真随机数发生器(TRNG)

GD32 MCU的真随机数发生器(TRNG) 文章目录 GD32 MCU的真随机数发生器(TRNG)一、定义与核心特征二、物理机制:量子与经典随机性三、生成方法四、应用场景五、与伪随机数的对比六、局限性⚙️ 七、物理熵源原理🔧 八、硬件实现流程(以GD32F450 GD32L233为例)8.1. **初始…

Vulkan学习笔记6—渲染呈现

一、渲染循环核心 while (!glfwWindowShouldClose(window)) {glfwPollEvents();helloTriangleApp.drawFrame(); // 绘制帧} 在 Vulkan 中渲染帧包含一组常见的步骤 等待前一帧完成(vkWaitForFences) 从交换链获取图像(vkAcquireNextImageKH…

React第六十二节 Router中 createStaticRouter 的使用详解

前言 createStaticRouter 是 React Router 专为 服务端渲染(SSR) 设计的 API,用于在服务器端处理路由匹配和数据加载。它在构建静态 HTML 响应时替代了客户端的 BrowserRouter,确保 SSR 和客户端 Hydration 的路由状态一致。 一…

qt 双缓冲案例对比

双缓冲 1.双缓冲原理 单缓冲:在paintEvent中直接绘制到屏幕,绘制过程被用户看到 双缓冲:先在redrawBuffer绘制到缓冲区,然后一次性显示完整结果 代码结构 单缓冲:所有绘制逻辑在paintEvent中 双缓冲:绘制…

华为云AI开发平台ModelArts

华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…

ParaGraphX [特殊字符]

https://github.com/stevechampion1/paragraphx 一个基于 JAX 的、为 CPU/GPU 加速而生的超高性能图算法库。 ParaGraphX 是一个实验性的 Python 库,旨在利用 JAX 的即时编译 (JIT) 和大规模并行计算能力,为经典的图算法提供惊人的性能提升。我们的目标…

如何用4 种可靠的方法更换 iPhone(2025 年指南)

Apple 每年都会发布新版本的 iPhone。升级到新 iPhone 是一种令人兴奋的体验,但转移所有宝贵数据的想法有时会让人感到畏惧。幸运的是,我们准备了 4 种有效的更换 iPhone 的方法,让你可以毫不费力地更换到你的新 iPhone。 此外,您…

GitLab 拉取变慢的原因及排查方法

前言:在软件开发的快节奏世界里,高效协作与快速交付是制胜关键。然而,当开发团队兴高采烈地投入工作,却发现从GitLab拉取代码的速度慢如蜗牛,那种沮丧感简直能瞬间浇灭热情。在分布式开发环境中,这种情况时…

落水人员目标检测数据集(猫脸码客第253期)

落水人员目标检测:科技守护生命之舟 一、背景与意义 随着人类海洋活动和水上活动的日益频繁,海上与水域安全事故频发。每年都会开展大量的海上救援行动,以搜救数以万计的落难人员。在水上活动区域,如水库、河道等,溺…

JAVA_强制类型转换:

类型范围大的变量,不可以直接赋值给类型变量小的变量 需要进行强制类型转换: 想要完成类型范围大的变量传给类型范围小的变量需要先创建一个新的变量(类型与方法的形参类型要相同)。将类型范围大的变量前面加上(转换类…

打卡第44天:无人机数据集分类

重复以下内容 作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 进阶: 并拆分成多个文件 import os import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader,…

个人网站大更新,还是有个总站比较好

个人网站大更新,还是有个总站比较好 放弃了所有框架,用纯htmlcssjs撸了个网站,这回可以想改啥改啥了。 选择了黑紫作为主色调,暂时看着还算可以。 为什么不用那些框架了 几个原因: 尝试用vuepress、vitepress、not…

高精度算法详解:从原理到加减乘除的完整实现

文章目录 一、为什么需要高精度算法二、高精度算法的数据结构设计2.1 基础工具函数2.2 高精度加法实现2.3 高精度减法实现2.4 高精度乘法实现2.5 高精度除法实现 三、完整测试程序四、总结 一、为什么需要高精度算法 在编程中,处理极大数值是常见需求,例…

排序--计数排序

一,引言 计数排序是一种针对整数数据的高效排序算法。其主要流程可分为三个步骤:首先计算整数数据的数值范围;接着按大小顺序统计各数值的出现次数;最后根据统计结果输出排序后的数据序列。 二,求最值 遍历现有数据,获取最大值…

Kubernetes安全机制深度解析(四):动态准入控制和Webhook

#作者:程宏斌 文章目录 动态准入控制什么是准入 Webhook? 尝试准入Webhook先决条件编写一个准入 Webhook 服务器部署准入 Webhook 服务即时配置准入 Webhook对 API 服务器进行身份认证 Webhook 请求与响应Webhook 配置匹配请求-规则匹配请求&#xff1a…