一、OSPF选路规则解析

OSPF作为经典的链路状态路由协议,其选路规则采用层次化优先级机制,不同路由类型遵循严格比较顺序:

1. 路由类型优先级

优先级路由类型描述
1域内路由通过1类、2类LSA生成
2域间路由通过3类LSA生成
3域外路由通过5类/7类LSA生成

2. 不同类型路由比较规则

域内路由之间域间路由之间会选择开销值小的路由加到路由表上

​域内与域间​
域内路由(Intra-Area)绝对优先于域间路由(Inter-Area)

​域间与域外​
域间路由绝对优先于域外路由(External)

​域外路由之间​
E类型路由分为两类:

  • ​类型1(E1)​​:总开销=种子度量值+路径开销
  • ​类型2(E2)​​:总开销=种子度量值(默认类型)

比较规则:

  • E1路由优先于E2路由
  • 同类型比较:
    • E1:比较总开销(种子+路径)
    • E2:先比较种子度量值,相同则比较路径开销

二、OSPF防环机制深度剖析

1. 区域内防环(基于SPF算法的确定性计算)​

1)基础概念​

​核心LSA类型​​:

Router-LSA (Type-1):描述路由器链路状态(接口、邻居、Cost)

Network-LSA (Type-2):由DR生成,描述广播/NBMA网段连接关系

2)有向图构建规则​

链路类型(Link Type)​

Stub链路:

Stub网段表示该网段只有数据入口,例如一个Loopback接口就是一个 Stub网段。 此胶片描述了路由器节点和Stub网段的表示方式。 Cost表示从一个端点到另一个端点的开销,该参数可以在OSPF接口上配置,表示数据离开该接口(出接口)的开销。

Transit链路:

Transit网段有能力转发既不是本网段产生的,也不以本网段做为目的地的数据。 有至少两台路由器的广播型网段或NBMA网段就是一种Transit网段。 从路由器到所连Transit网段的开销值就是连接到这个网段的接口所配置的开销值。 从一个Transit网段到连接到这个网段的路由器的开销为0。(称为伪节点)

Point-to-Point(P2P)链路:

LSDB描述两接口处于同一网段的点到点网段的规则如下: 两台路由器经由两条有向线段直接相连,每个方向一条。 连接两个接口的网段被表示成Stub网段。 两个路由器同时通告Stub连接到该PPP网段。

3)SPF计算过程

OSPF的SPF计算分为​​两个阶段​​,确保不会因Stub网段引入环路:

​第一阶段​​:仅计算有双向箭头的节点,生成最短路径树(SPT)。

  • 使用Dijkstra算法,每次选择最小Cost的节点加入SPT。
  • ​关键防环​​:Transit网段到路由器的Cost=0,确保不会反向计算。

​第二阶段​​:挂载Stub网段到SPT,作为叶子节点。

  • Stub网段不参与拓扑计算,仅作为终点,避免环路。

4)SPF计算实战

拓补:

生成有向图:

第一阶段(忽略Stub):

第二阶段(最终SPT):

2. 区域间防环(基于星型拓扑和水平分割)​

1)​​骨干区域强制连接​

所有非骨干区域(非Area 0)必须直接连接到Area 0,区域间路由需通过Area 0中转,形成逻辑星型拓扑,避免区域间直接传递路由。

​2)ABR的严格规则​

​规则1​​:ABR仅将直连区域的内部路由注入Area 0,不会将非骨干区域的Type-3 LSA回传至Area 0。

示例:若ABR从Area 1收到Type-3 LSA,不会将其重新注入Area 0。

​规则2​​:ABR不会将Type-3 LSA回传到原始区域(类似水平分割)。

​规则3​​:ABR必须与Area 0有活跃邻接关系,否则不参与区域间路由计算。

​3)Cost累加机制​

区域间路由的Cost按距离矢量方式逐跳累加(ABR通告自身Cost,下游路由器叠加到达ABR的Cost),但通过星型拓扑限制路径唯一性。

3. 域外防环(依赖Type-4 LSA和ASBR定位)​

1)​​ASBR的定位​

外部路由(Type-5 LSA)的防环依赖于准确找到ASBR的位置:

  • ​同一区域​​:通过Type-1/2 LSA计算ASBR路径。
  • ​其他区域​​:依赖Type-4 LSA(ASBR Summary LSA)定位ASBR,确保路径可达。

2)​​Type-4 LSA的作用​

  • Type-4 LSA由ABR生成,描述ASBR的位置,其他区域路由器通过Type-4 LSA计算到达ASBR的最短路径,再结合Type-5 LSA计算外部路由。
  • ​防环逻辑​​:Type-5 LSA的传播依赖Type-1/4 LSA的路径计算,确保外部路由的下一跳始终指向正确的ASBR。

三、RFC 2328附录E

1. 问题背景

当存在相同网络号不同掩码的外部路由时:

OSPF是一种基于链路状态型路由协议,其中3 类、5 类、7类LSA传递的是路由信息,但是由于用于标识一条LSA的头部信息中没有掩码信息,会导致路由覆盖的情况。

2. 附录E解决方案

场景处理方式
短掩码先注入长掩码路由使用定向广播地址作为Link-ID
长掩码先注入1. 撤销原LSA
2. 重新注入短掩码路由
3. 长掩码路由使用定向广播地址

3. 实现条件

  • 网络地址需连续分配
  • 避免真实网络使用定向广播地址
  • 序列号递增保证LSA更新有效性

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

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

相关文章

1.1软考系统架构设计师:系统架构的定义与作用 - 超简记忆要点、知识体系全解、考点深度解析、真题训练附答案及解析

超简记忆要点 定义:结构决策 | 抽象概念 | 多视图模型(逻辑/物理/动态)作用:解耦复杂需求 | 集成扩展 | 指导开发(蓝图)要素:构件(原子/复合) | 连接件(API/…

网络socks 代理

在系统/终端中设了这样的环境变量,而没有在代码中覆盖,HTTPX 就会启用该 socks 代理。 env | grep proxy https_proxyhttps://proxyhk.zte.com.cn:80 http_proxyhttp://proxyhk.zte.com.cn:80 no_proxylocalhost,127.0.0.0/8,::1,zte.com.cn,zte.intra,…

PCB规则

PCB封装 原理图绘制完成需要检查 DRC 菜单栏——>设计——>检查 DRC 底部侧边栏——>DRC——>检查 DRC 常见问题: 1)某个导线/网络标签是一个单网络 网络标签名称不一样 网络标签只有一个 引脚没有使用,但是放置了导线 2&#xf…

图像预处理-图像边缘检测(流程)

一.高斯滤波 因为图像边缘检测就是把像素值有差异的地方提取出来,所以噪声会有很大影响,因此需要对图像进行平滑处理,高斯滤波是流程中常用的方法。 二.计算图像的梯度与方向 过程中通常使用sobel算子进行梯度计算,在OpenCV中&am…

ChatBEV:一种理解 BEV 地图的可视化语言模型

25年3月来自上海交大、上海AI实验室、同济大学和MAGIC的论文“ChatBEV: A Visual Language Model that Understands BEV Maps”。 交通场景理解对于智能交通系统和自动驾驶至关重要,可确保车辆安全高效地运行。虽然 VLM 的最新进展已显示出整体场景理解的前景&…

武装Burp Suite工具:xia SQL自动化测试_插件

武装Burp Suite工具:xia SQL自动化测试_插件 插件作者介绍:本插件仅只插入单引号,没有其他盲注啥的,且返回的结果需要人工介入去判断是否存在注入,如果需要所有注入都测试,请把burp的流量转发到xray。 目录…

线段树讲解(小进阶)

目录 前言 一、线段树知识回顾 线段树区间加减 区间修改维护: 区间修改的操作: 区间修改update: 线段树的区间查询 区间查询: 区间查询的操作: 递归查询过程: 区间查询query: 代码&…

neo4j中节点内的名称显示不全解决办法(如何让label在节点上自动换行)

因为节点过多而且想让节点中所有文字都显示出来而放大节点尺寸 从neo4j中导出png,再转成PDF来查看时,要看清节点里面的文字就得放大5倍才行 在网上看了很多让里面文字换行的办法都不行 然后找到一个比较靠谱的办法是在要显示的标签内加换行符 但是我的节点上显示的是…

SQL进阶知识:五、存储过程和函数

今天介绍下关于存储过程和函数的详细介绍,并结合MySQL数据库提供实际例子。 在MySQL中,存储过程(Stored Procedures)和函数(Functions)是数据库编程的重要组成部分,它们可以封装SQL语句&#xf…

CONDA:用于 Co-Salient 目标检测的压缩深度关联学习(总结)

摘要 一 介绍 二 有关工作 三 提出的方法 图2:我们的凝聚式深度关联(CONDA)模型的整体流程图。具体来说,凝聚式深度关联(CONDA)模型首先利用图像特征来计算超关联。然后,全像素超关联由对应诱…

node.js 实战——(path模块 知识点学习)

path 模块 提供了操作路径的功能 说明path. resolve拼接规范的绝对路径path. sep获取操作系统的路径分隔符path. parse解析路径并返回对象path. basename获取路径的基础名称path. dirname获取路径的目录名path. extname获得路径的扩展名 resolve 拼接规范的绝对路径 const…

Kimi做内容社区,剑指小红书?

原创科技新知AI新科技组作者丨樱木编辑丨江蓠 主编丨九黎 对于当前融资形势并不明朗的大模型六小龙来说,该如何生存下去,似乎成了各家急需解决的问题。 根据PitchBook数据,今年一季度风险投资机构在中国AI领域共完成144笔交易,投…

opencv--图像滤波

图像滤波 含义 方法 噪声是怎么产生的 线性滤波 概念 利用窗口对图像中的像素进行加权求和的滤波方式。 图像来源于小虎教程。 图像的滤波是二维滤波的过程。 滤波器窗口: 滤波器窗口(也称为卷积核或模板)是一个小的矩阵(通常为…

Java 实现SpringContextUtils工具类,手动获取Bean

SpringContextUtils 工具类实现 下面是一个完整的 Spring 上下文工具类实现,用于从 Spring 容器中获取 Bean。这个工具类考虑了线程安全、性能优化和易用性,并提供了多种获取 Bean 的方式。 完整实现代码 import org.springframework.beans.BeansExce…

基于 Vue 2 开发的分页卡片列表组件(带懒加载和点击事件)

功能目标&#xff1a; CardList.vue 中支持分页&#xff0c;每页显示指定数量的卡片。添加“加载中”动画。支持懒加载&#xff1a;滚动到底部自动加载下一页。点击卡片的事件逻辑由 Card.vue 内部发出&#xff0c;并由 CardList 向上传递。 主页面文件 Home.vue <templat…

【数据结构和算法】6. 哈希表

本文根据 数据结构和算法入门 视频记录 文章目录 1. 哈希表的概念1.1 哈希表的实现方式1.2 哈希函数&#xff08;Hash Function&#xff09;1.3 哈希表支持的操作 2. Java实现 在前几章的学习中&#xff0c;我们已经了解了数组和链表的基本特性&#xff0c;不管是数组还是链表…

【python】如何将文件夹及其子文件夹下的所有word文件汇总导出到一个excel文件里?

根据你的需求,这里提供一套完整的Python解决方案,支持递归遍历子文件夹、提取Word文档内容(段落+表格),并整合到Excel中。以下是代码实现及详细说明: 一个单元格一个word的全部内容 完整代码 # -*- coding: utf-8 -*- import os from docx import Document import pand…

leetcode-位运算

位运算 371. 两整数之和 题目 给你两个整数 a 和 b &#xff0c;不使用 运算符 和 - &#xff0c;计算并返回两整数之和。 示例 1&#xff1a; 输入&#xff1a; a 1, b 2 输出&#xff1a; 3 示例 2&#xff1a; 输入&#xff1a; a 2, b 3 输出&#xff1a; 5 提示&am…

飞帆控件:在编辑模式下额外加载的库

飞帆是一个自由的控件设计平台。在飞帆中&#xff0c;我们可以很方便地创建基于 Vue 2 组件的控件&#xff0c;并使用控件来搭建网页。 他山之石&#xff0c;可以攻玉。在创建控件中&#xff0c;使用 js 、css 依赖库能让我们的控件更强大。 有些时候&#xff0c;在编辑模式下…

GPLT-2025年第十届团体程序设计天梯赛总决赛题解(共计266分)

今天偶然发现天梯赛的代码还保存着&#xff0c;于是决定写下这篇题解&#xff0c;也算是复盘一下了 L1本来是打算写的稳妥点&#xff0c;最后在L1-6又想省时间&#xff0c;又忘记了insert&#xff0c;replace这些方法怎么用&#xff0c;也不想花时间写一个文件测试&#xff0c…