OSPF防环文档

OPSF在区域内会产生俩类LSA:Router LSA ,Network LSA

路由器以自己为树根构建最短路径树 ,这里的最短路径树按两步形

成,第一步,仅考虑路由器和传输网络之间的连接。通过 Dijkstra 算法,根据链路状态数据库的子集形成树。第二步,考虑末节网络连接, 作为叶子加入树。

区域内部OSPF对网络是通过Router LSA ,Network LSA来描述网络的,最终路由器收到LSA构建出LSDB。

  LSDB通过描述一个有向线段图来描述网络拓扑结构,该有向图的端点有三种类型:路由器节点,Stub网段和Transit网段

Router LSA使用Link ID,Data,Type和Metric描述一条链路

类型有四种

  Stub网段表示该网段只有数据入口,例如一个Loopback接口就是一个Stub网段。

此胶片描述了路由器节点和Stub网段的表示方式。

Cost表示从一个端点到另一个端点的开销,该参数可以在OSPF接口上配置,表示数据离开该接口(出接口)的开销。


 

 Transit网段有能力转发既不是本网段产生的,也不以本网段做为目的地的数据。

有至少两台路由器的广播型网段或NBMA网段就是一种Transit网段。从路由器到所连Transit网段的开销值就是连接到这个网段的接口所配置的开销值。

从一个Transit网段到连接到这个网段的路由器的开销为0。(称为伪节点)

 

在描述点到点接口的Router-LSA中:

  1. 通告一个到邻居路由器的点到点链接,Link ID设置为对端的Router ID,Data设置为本地接口的IP地址;
  2. 通告一个到该点到点网段的Stub连接,Link ID设置为该点到点网段的网络号,Data设置为该点到点网段的网络掩码
  3. 上述两个连接的Cost值均为该点到点接口上的Cost值。

 

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

 

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

两个路由器同时通告Stub连接到该PPP网段。

 

  在描述广播型或NBMA型接口的Router-LSA中:

  1. 如果接口状态是Waiting,或者该网段上只有一个运行OSPF的路由器,或者该网段上没有DR,则通告一个通往该网段的Stub链接,Link ID设置为该网段的IP网络号,Link   Data设置为该网段的网络掩码; 其他情况下,通告一个通往该网段的Transit连接,Link ID设置为DR的接口IP地址,Link Data设置为本地接口的IP地址
  2. 连接的开销值为接口的开销。

 

 

 

在描述广播型网段或者NBMA网段的Network-LSA中:

Link State ID设置为DR的接口IP地址。

Net mask设置为该网段的网络掩码。

Link State ID和Net mask做与运算,即可得出该网段的IP网络号。

在该LSA中,还包含一个连接到该网段的路由器列表。

从一个Transit网段到所连接的路由器的连接没有开销。

 

    计算过程 

 

根据上文描述上图拓扑在LSA传递完毕后生成有向图 

 

第一阶段

计算Transit节点,忽略Stub节点,生成一个最短路径树

第二阶段

只计算Stub节点,将Stub网段挂到最短路径树上去

  计算过程中首先初始化最短路径树,RTA将自己做为根节点添加到最短路径树上

 

RTA将自己添加到最短路径树上之后,检查自己生成的Router-LSA,对 于该LSA中所描述的每一个连接,如果不是一个Stub连接,就把该连接 添加到候选列表中,端点ID为Link ID,到根端点的开销为LSA中描述的Metric值。本例中,添加端点4.4.4.4和2.2.2.2。 

将候选列表中到根端点开销最小的端点移到最短路径树上 

 

 

当有新节点添加到最短路径树上的时候,则检查LS ID为新节点的link-id ID的LSA,本例中检查LS ID为2.2.2.2的LSA。

如果LSA中所描述的连接的Link ID在最短路径树上已经存在,则忽略该连接。本例中,Link ID为1.1.1.1的连接被忽略,只有10.3.1.1的连接被添加到候选列表中。到根端点的开销设置为此连接的Metric值(本例中此连接的Metric值为1)与父端点(本例中此连接的父端点为2.2.2.2)到根端点的开销(本例中此开销值为48)之和。

 

将候选列表中到根端点的开销最小的端点移动到最短路径树上,本例中,将10.3.1.1移到最短路径树上。 

 

 

检查LS ID为最新添加节点的端点ID的LSA,本例中检查LS ID为10.3.1.1的LSA。

在所描述的连接中,忽略2.2.2.2,将3.3.3.3和4.4.4.4添加到候选列表中。从Transit网段到所连路由器的开销为0。

如果在候选列表中出现两个端点ID一样但是到根端点的开销不一样的端点,则删除到根端点的开销大的端点。

 

将候选列表中到根端点的开销最小的端点移动到最短路径树上,本例中,将3.3.3.3移到最短路径树上 

检查LS ID为最新添加节点的端点ID的LSA,本例中检查LS ID为3.3.3.3 的LSA。

本例中,没有新端点被添加到候选列表中。

将候选列表中到根端点的开销最小的端点移动到最短路径树上,本例中,将4.4.4.4移到最短路径树上。

检查LS ID为最新添加节点的端点ID的LSA,本例中检查LS ID为4.4.4.4 的LSA。

本例中,没有新端点被添加到候选列表中。

如果在此时候选列表为空,则计算最短路径树的第一阶段结束。

 

检查每个路由器端点的Router-LSA,计算Stub网段。

本例中,首先检查RTA的Router-LSA,共有三个Stub网段

OSPF区域间防环

Type-3 LSA及Type-4 LSA的防环

1.OSPF要求所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转。

OSPF要求所有的非0区域必须与骨干区域直接相连,区域间(Inter-Area Route)路由需经由骨干区域中转。这个要求使得区域间的路由传递不能发生在两个非0的区域之间,这在很 大程度上规避了区域间路由环路的发生,也使得OSPF的区域架构在逻辑上形成了一个类似星型的拓扑,如下图所示。

2.ABR只能够将其所连接的区域的区域内部路由注入到Area0,但是可以将区域内部路由及 区域间的路由注入到非0常规区域。ABR从非骨干区域收到的Type-3 LSA不能用于区域间路由的计算。

OSPF对ABR有着严苛的要求,区域间的路由传递的关键点在于ABR对Summary LSA的处理。

在上图中,如果R3是一台普通的OSPF路由器(不是ABR),例如当它与R2没有OSPF邻居关系 时,它会根据R4在Area2中泛洪的Type-3 LSA计算出1.1.1.0/24路由并将路由加载进路由表中。但是当R3与R2建立起OSPF邻接关系后,R3在Area0中就有了一个活跃的全毗邻连接,此 时如果它把描述1.1.1.0/24路由的Type-3 LSA再注入回Area0,那么就会带来潜在环路的风险,如下图所示:

因此当一台ABR在非Area0的区域中收到Type-3 LSA时,虽然它会将其装载进LSDB,但是该路由器不会使用这些Type-3 LSA进行路由计算,当然它更不会将这些Type-3 LSA再注入回Area0中。

这里有一个有意思的细节,就是如果R3连接R2的接口虽然激活了OSPF(而且属于Area0), 但是不与R2形成邻接关系(例如R2连接R3的接口不激活OSPF),那么此时R3其实并不算是 严格意义上的ABR(虽然它产生的Type-1 LSA中B-bit会被置位,但是它在Area0中并没有全毗邻的邻居),因此它会将Area2内收到的Type-3 LSA用于区域间路由的计算,所以在R3的路由表中能看到1.1.1.0/24的区域间路由(下一跳为R4),但是一旦R2-R3之间的邻接关系 建立起来,R3将不能再使用R4下发的Type-3 LSA计算路由,而仅能使用从Area0中收到

的、R 2下发的Type-3 LSA进行区域间路由计算,所以此时R3路由表中1.1.1.0/ 24路由的下一跳为R2,而且即使这条路径的Cost要比从R4走更大(例如将R3连接R   2的接口Cost调大),R3也始终不会走R4到达1.1.1.0/24,除非R2挂掉,或者R2-R3丢失邻接关系。这个现 象在思科、华为的真机上验证过了,两者均是如此实现。

​​​​​​​3.ABR不会将描述一个Area内部的路由信息的Type-3 LSA再注入回该区域中。

实际上,OSPF区域间路由的传递行为,很有点距离矢量路由协议的味道。以下图为例,在Area1中,R1及R2都会泛洪Type-1 LSA、Type-2 LSA,两台路由器都能够根据这些LSA计算 区域内路由,而R2作为ABR还担负着另一个责任,就是向Area0通告区域间的路由,实际上 它是向Area0中注入用于描述Area1内路由的Type-3 LSA,而这些Type-3 LSA是不会发回Area1的——是的,类似水平分割行为对吧?接下来R3利用这些Type-3 LSA计算出了区域间的路由,并且为Area2注入新的Type-3 LSA用于描述区域间的路由,而这些Type-3 LSA同样的不会被注入回Area0。

R2 在向Area0通告Type-3 LSA,为每条区域间路由携带上Cost值,这个值就是它自己到达各个目标网段的Cost,而R3收到这些Type-3 LSA并计算路由时,路由的Cost就是在R2所通告的Cost值的基础上,加上R3自己到R2的Cost值,然后,R3向R4通告这些区域间的路由时也 携带者自己到达目标网段的Cost,而R4到达目标网段的Cost则是在R3的通告值基础上累加 自己到R3的Cost——典型的距离矢量行为。

Type-4 LSA实际上与Type-3 LSA都是Summary LSA,只不过一个是Network Summary LSA——用于描述网段路由,另一个则是ASBR Summary LSA——用于描述ASBR,他们使用的防环机制是一致的。

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

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

相关文章

吴恩达2022机器学习专项课程(一) 第二周课程实验:特征工程和多项式回归(Lab_04)

目标 探索特征工程和多项式回归,使用线性回归来拟合非常复杂甚至非线性的函数。 1.为什么线性回归能拟合非线性函数? fxw*xb,属于线性回归的扩展,这个公式在数学中不属于线性,因为有x,而在机器学习中属于…

图文教程 | 2024Typora最新版免费激活使用教程(新旧版可用)

一、打开官网下载最新版Typora Typora 官网下载 安装: Typora中文官网:https://typoraio.cn/ Typora官网:https://typora.io/releases/all 官网长这个样子 下面这个不是官网!!!!注意&#x…

通讯录的实现(顺序表版本)

我们知道通讯录是基于顺序表的前提下,要写好通讯录我们就要深入了解好顺序表。我们先来看看什么是顺序表。(注意今天代码量有点多,坚持一下)。冲啊!兄弟们! 顺序表的简单理解 对于顺序表,我们首…

用AI的视角看世界

前言 2024年将是Ai人工智能在各个行业垂直领域发展的元年。 随着2022年11月openai 的大语言模型chatgpt3.5的诞生,已经预示着互联网时代,移动互联网时代即将迎来新的变革,也预示着web3.0和元宇宙更近了一步。 回顾历史,互联网的…

使用hexo+gitee从零搭建个人博客

一、环境准备 1.Node.js:下载 | Node.js 中文网 (nodejs.cn) ,Hexo 是基于Node.js 的博客框架 教程:https://blog.csdn.net/weixin_52799373/article/details/123840137 node -v npm -v 安装 Node.js 淘宝镜像加速器 (cnpm&am…

大模型应用工具 LangChain 入门书籍: LangChain 简明讲义

书籍信息 书名:《LangChain 简明讲义:从 0 到 1 构建 LLM 应用程序》出版社:电子工业出版社书籍链接:https://item.jd.com/14105705.html书籍配套代码:https://github.com/kebijuelun/langchain_book 书籍背景 计算机…

力扣LeetCode138. 复制带随机指针的链表 两种解法(C语言实现)

目录 题目链接 题目分析 题目定位: 解题思路 解题思路1(粗暴但是复杂度高) 解题思路2(巧妙并且复杂度低) 题目链接 138. 复制带随机指针的链表https://leetcode-cn.com/problems/copy-list-with-random-pointer/ …

实战项目——智慧社区(四)之 系统管理

1、用户管理 提供查询和搜索用户、根据id查询用户信息、添加用户、修改用户、删除用户的功能 界面 添加用户 修改用户信息 2、角色管理 提供查询和搜索角色、根据id查询角色信息、添加角色、修改角色、删除角色的功能 界面 添加角色 修改角色 3、菜单管理 提供查询和搜索菜…

机器学习在安全领域的应用:从大数据中识别潜在安全威胁

🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

蓝桥杯第2152题——红绿灯

问题描述 爱丽丝要开车去上班, 上班的路上有许多红绿灯, 这让爱丽丝很难过。为 了上班不迟到, 她给自己的车安装了氮气喷射装置。现在她想知道自己上班最 短需要多少时间。 爱丽丝的车最高速度是 米每秒, 并且经过改装后, 可以瞬间加速到小于 等于最高速的任意速度, 也可以瞵…

Sonar下启动发生错误,elasticsearch启动错误

Download | SonarQube | Sonar (sonarsource.com) 1.首先我的sonar版本为 10.4.1 ,java版本为17 2.sonar启动需要数据库,我先安装了mysql, 但是目前sonar从7.9开始不支持mysql,且java版本要最少11,推荐使用java17 3.安装postsql,创建sonar数据库 4.启…

ArcGIS Desktop使用入门(三)图层右键工具——可见比例范围

系列文章目录 ArcGIS Desktop使用入门(一)软件初认识 ArcGIS Desktop使用入门(二)常用工具条——标准工具 ArcGIS Desktop使用入门(二)常用工具条——编辑器 ArcGIS Desktop使用入门(二&#x…

如何下载和安装Google Chrome扩展插件:一步步指南

Google Chrome 插件为我们提供了这样的便利,但有时找到一个有用的插件后,我们可能需要将其下载到本地以便离线使用或备份。 一、为什么可以从Google Chrome商店直接下载插件? Google Chrome 扩展插件主要通过Chrome Web Store分发&#xff…

流氓软件清理绝杀全家桶

下载地址:流氓软件清理绝杀全家桶.zip 网上仍有不少软件中携带流氓软件,甚至某些所谓的大厂出品的工具中也会有一些捆绑! 对于玩机经验不太丰富的小白来说,也许一不小心,桌面就会被某些流氓软件搞得乌烟瘴气&#xf…

实验笔记之——RGBD GS-ICP SLAM配置与测试

《RGBD GS-ICP SLAM》是最新开源的一个3DGS-SLAM工作,通过利用GICP来实现当前帧gaussian与已mapping的gaussian进行匹配进行位姿的估算,并通过关键帧的选择策略来进一步提升performance~ Use G-ICP to align the current frame with the 3D GS map whic…

基于人脸识别的发型推荐系统代码实现

1.摘要 本文介绍了一个基于人脸识别技术的发型推荐系统的实现与分析。该系统利用Python编程语言和相关库,结合Face人脸识别API,实现了用户上传照片后的性别识别、脸型分析和发型推荐功能。首先,用户通过Tkinter GUI界面选择上传照片&#xff…

gpt在线网页版最全收录

ChatGPT镜像 今天在知乎看到一个问题:“平民不参与内测的话没有账号还有机会使用ChatGPT吗?” 从去年GPT大火到现在,关于GPT的消息铺天盖地,真要有心想要去用,途径很多,别的不说,国内GPT的镜像…

Linux网络基础 (二) ——(IP、MAC、端口号、TCPUDP协议、网络字节序)

文章目录 IP 地址基本概念源IP地址 & 目的IP地址 MAC 地址基本概念源MAC地址 & 目的MAC地址 端口号基本概念源端口号 & 目的端口号 TCP & UDP 协议基本概念TCP 与 UDP 的抉择 网络字节序大端、小端字节序 🎖 博主的CSDN主页:Ryan.Alask…

1.9 数据结构之 并查集

编程总结 在刷题之前需要反复练习的编程技巧,尤其是手写各类数据结构实现,它们好比就是全真教的上乘武功 本栏目为学习笔记参考:https://leetcode.cn/leetbook/read/disjoint-set/oviefi/ 1.0 概述 并查集(Union Find&#xff09…

# Nacos 服务发现-快速入门-测试多实例 Ribbon 负载均衡

Nacos 服务发现-快速入门-测试多实例 Ribbon 负载均衡 1、修改 服务生产模块 quickstart_provider 子工程中的 配置文件 application.yaml port: ${port:56010} # 启动端口 # 修改为动态传参,如果未传参数,默认端口为 56010 2、在 idea 中,…