OSPF路由协议总结

news2024/11/6 3:13:52

OSPF路由协议总结

  • 一 OSPF协议的三个工作步骤
  • 二 5中OSPF协议报文
  • 三 4种网络类型,邻居和邻接
    • 3.1 P2P
    • 3.2 P2MP
    • 3.3 Broadcase
    • 3.4 NBMA(非广播多路访问)
  • 四 OSPF协议的度量方式
  • 五 LS(链路状态) LSA(链路状态通告) LSDB(链路状态数据库) LSU(链路状态更新数据包)
  • 六 域内(area内)路由计算
  • 七 域间(area间)路由计算
    • 7.1 域间路由计算
    • 7.2 域间路由防环三原则
  • 八 域(OSPF AS域)外路由计算
  • 九 OSPF默认路由
  • 十 OSPF特殊区域
    • 10.1 Stub(末节区域)
    • 10.2 完全Stub(完全末节区域)
    • 10.3 NSSA(非完全末节区域)
    • 10.4 完全NSSA(完全非完全末节区域)

一 OSPF协议的三个工作步骤

1. 邻居建立
2. 同步链路状态数据库
3. 计算最优路由

二 5中OSPF协议报文

1.hello报文:ospf最常用的报文,作用为建立和维护邻接的关系,周期性的能在ospf的接口上发送的报文包括一下定时器的数值、网络中的DR 、BDR以及已经知道的邻居

2.DD报文:两台设备在邻接关系初始化时,用DD报文描述本端设备的LSDB,进行数据库的同步。

3.LSR报文:两台设备交换过DD报文,需要发送LSR报文向对方请求更新LSA,内容包括所需要的LSA的报文信息。

4.LSU报文:LSU报文用来向对端设备发送其所需要的LSA或者泛洪本端更新的LSA,内容是多条LSA(全部内容)的集合,为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认,对没有收到确认报文的LSA进行重传,重传的LSA是直接发送邻居的。

5.LSAck报文:LSAck报文用来对接收到的LSU报文进行确认,内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)

三 4种网络类型,邻居和邻接

3.1 P2P

如果链路层协议是PPP、HDLC的话,OSPF会认为网络类型是P2P;
邻居之间建立邻接关系

3.2 P2MP

没有任何一种链路层协议被认为是P2MP,这种类型需要手动配置;
DR与BDR之间建立邻接关系;
DR与DRother之间建立邻接关系;
BDR与DRother之间建立邻接关系;
DRother之间只建立邻居关系;

3.3 Broadcase

如果链路层协议是以太网的话,OSPF会认为网络类型是Broadcase;
邻居之间建立邻接关系

3.4 NBMA(非广播多路访问)

如果链路层协议是帧中继、ATM的话,OSPF会认为网络类型是NBMA;
DR与BDR之间建立邻接关系;
DR与DRother之间建立邻接关系;
BDR与DRother之间建立邻接关系;
DRother之间只建立邻居关系;

四 OSPF协议的度量方式

某接口的cost=参考带宽/实际带宽;
参考带宽默认是100;
计算结果如果是: 大于0小于2,那么cost=1
							  大于等于2小于3,那么cost=2
							  以此类推
更改cost的两种方式:
1. 直接在接口下配置;
2. 修改参考带宽(所有路由器都需要修改,确保选路一致性)

五 LS(链路状态) LSA(链路状态通告) LSDB(链路状态数据库) LSU(链路状态更新数据包)


LS:当一台路由器的一个接口宣告进了OSPF进程时,这个接口的信息(ip,掩码 等等)就会生成LS链路状态;

在这里插入图片描述

六 域内(area内)路由计算

域内路由计算是通过1类LSA和2类LSA实现的
1类LSA(Router):是用来描述路由器自身直连链路状态的LSA,他有四种形态Stubnet,p2p,transnet,vlink
	Stubnet: 用来描述一条路由信息的(叶子节点)
	p2p: 用来描述网络类型为p2p或p2mp的邻居信息的(树干信息)
	transnet: 用来描述广播网络或NBMA网络的邻居信息(树干信息即伪节点)
	vlink:


2类LSA(Network):当网络类型为广播或者NBMA时,使用DR所在接口信息生成伪节点。2类LSA是用来描述伪节点信息的。2类LSA里面包含树干信息(该广播网络中其他路由器)和叶子信息(该广播网络的网段)
每个路由器都在ospf进程里生成一个该area的LSDB,并通过这个LSDB计算出已自己为根的一颗ospf最短路径树,进而计算出该area内的各个路由

在一个area内无论router的组网方式如何1类和2类LSA都会在这个area的所有router之间同步,不会修改原始通告者

七 域间(area间)路由计算

7.1 域间路由计算

域间路由计算是通过3类LSA实现的

只在ABR上才将一个area的直连路由转换为其他area的3类LSA;
3类LSA在area内传递时,如果不是ABR,不改变宣告者;
3类LSA在area内传递时,如果是ABR,会将宣告者改为自己再传递到其他area

域间路由计算是用来在area间把各自有1类和2类LSA计算出的最优路由传递给其他直连area的。他是通过3类LSA(Sum-Net)来传递的,只有ABR路由器才能做这件事;

不是所有最优路由都能被转换为其他直连area的3类LSA,只有被加入全局路由表(不一定是以ospf入表)的路由才能被转换为3类LSA

在这里插入图片描述

7.2 域间路由防环三原则

  1. 在区域设计上,非骨干区域必须和骨干区域相连,形成逻辑上的星型无环拓扑;
  2. ABR不会将非骨干区域的3类LSA传递到骨干区域;如果ABR在骨干区域有邻居,那么不会计算非骨干区域的3类LSA

在这里插入图片描述
3. 1类LSA优于3类LSA

在这里插入图片描述

八 域(OSPF AS域)外路由计算

当路由器中有其他协议得到的路由,并且我想让ospf AS域内其他路由器也学到这个路由时,用路由引入;
域外路由计算是通过5类LSA和4类LSA实现的;

5类LSA是执行路由引入的ASBR产生的,并在整个OSPF AS内传播,并不会改变他的宣告者;
4类LSA是和ASBR在同一area的ABR产生的,通告者是ABR自己,他可以在整个OSPF AS中传播,但如果遇到ABR,这个ABR会将这个4类LSA的通告者改为自己后再传播

5类LSA(External):当执行了引入动作后,路由表中的路由会以5类LSA的形式存放在LSDB中,并且在整个OSPF域内(不是area而是整个OSPF AS域)进行传递(一个OSPF域内的路由器只有是邻接FULL关系就传)

4类LSA(Sum-Asbr):当ABR收到置位ASBR的1类LSA后,会将这个1类LSA转换为4类LSA传递到其他直连area,为了方便其他area的路由器计算这个5类LSA时能够知道ASBR在哪里

在这里插入图片描述

九 OSPF默认路由

default-route-advertise
或
default-route-advertise always

十 OSPF特殊区域

在这里插入图片描述

OSPF的区域设计要求所有非骨干区域必须连接到骨干区域,以形成逻辑上的星型结构;
所以所有流量都会通过骨干区域;
这样的情况下在网络设备选购上骨干区域一般都是性能好的路由器,而非骨干区域一般都是性能差的路由器;
但所有区域的路由器lsdb的数据量是一样大的,就这有可能使得非骨干区域路由器超负荷,为了解决这个问题需要减少非骨干区域路由器上的lsdb数量,四种特殊区域都是为了这个目的

在这里插入图片描述

10.1 Stub(末节区域)

Stub区域的目的是让该区域失去处理5类LSA的能力,所以ABR也不会向该区域传递4类LSA和5类LSA;
当一个区域配置成Stub区域时,发出的hello包中Ebit置位为0,代表该区域没有处理外部路由的能力;
在Stub区域中ABR会产生一条3类缺省路由;
Stub区域的配置方法:在IR和ABR上的区域视图下键入stub

在这里插入图片描述

10.2 完全Stub(完全末节区域)

完全Stub区域是在Stub区域的基础上,将该区域内的3类LSA也去掉;
完全Stub区域中只有本区域的1类和2类LSA,以及ABR下发的3类缺省路由;
Stub区域的配置方法:在IR的区域视图下键入stub;在ABR的区域视图下键入stub no-sumary

10.3 NSSA(非完全末节区域)

10.4 完全NSSA(完全非完全末节区域)

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

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

相关文章

JMU软件20 大数据技术复习(只写了对比18提纲的变动部分)

原博主 博客主页:https://xiaojujiang.blog.csdn.net/ 原博客链接:https://blog.csdn.net/qq_43058685/article/details/117883940 本复习提纲只适用于JMU软件工程大数据课程(ckm授课) 具体内容参考老师提纲的考纲,18和…

使用Tensorflow完成一个简单的手写数字识别

Tensorflow中文手册 介绍TensorFlow_w3cschool 模型结构图: 首先明确模型的输入及输出(先不考虑batch) 输入:一张手写数字图(28x28x1像素矩阵) 1是通道数 输出:预测的数字(1x10的one…

100种思维模型之信息传递思维模型-028

人与人之间存有 认知偏差和理解偏差 ,信息在传递过程中会 衰减、失真以及再加工 ! 信息传递思维模型 ,一个有助于 提高信息传递质量 的思维模型。下面从三个方面进行介绍, 何谓信息传递思维模型、信息传递思模型生活中的运…

JVM系统优化实践(9):G1垃圾回收器

您好,我是湘王,这是我的CSDN博客,欢迎您来,欢迎您再来~在JDK8及其之前,一直用的都是ParNewCMS的组合:ParNew负责年轻代的垃圾回收,而由CMS负责老年代的垃圾回收,但会产生…

脑机接口科普0016——独立BCI与非独立BCI

本文禁止转载!!!! 所谓的“独立BCI”与“非独立BCI”仅仅是BCI系统中的一个术语。本章主要是介绍一下这两个术语。 这两个术语是由Wolpaw在2002年提出来的。 独立BCI是指不依赖于中枢神经系统的的输出。 非独立BCI是指那种依赖…

工作5年了,你竟然还不会应用优雅停机?

事情是这样的,小明是一个工作五年的老程序员,半秃着的头已经彰显了他深不可测的技术实力。 这一天,小明收到了领导给过来的一个需求。 领导对小明说:“小明啊,你工作五年了,这个需求我交给你一个人负责很是…

开源写作平台WriteFreely(基础篇)

什么是 WriteFreely ? WriteFreely 是一个专为作家打造的干净、极简主义的出版平台。可以用来创建一个博客,在您的组织内分享知识,或者围绕共同的写作行为建立一个社区。 这里值得一提的是, WriteFreely 支持 ActivityPub 协议,这…

逐句回答,流式返回,ChatGPT采用的Server-sent events后端实时推送协议Python3.10实现,基于Tornado6.1

善于观察的朋友一定会敏锐地发现ChatGPT网页端是逐句给出问题答案的,同样,ChatGPT后台Api接口请求中,如果将Stream参数设置为True后,Api接口也可以实现和ChatGPT网页端一样的流式返回,进而更快地给到前端用户反馈&…

剑指offer在排序数组中的二分法应用总结

排序数组中的搜索问题,首先想到 二分法 解决,本篇详细解析关于二分法边界的问题。 目录 一、二分法概念 二、剑指Offer53.在排序数组中查找数字 三、在排序数组中查找元素的第一个和最后一个位置 一、二分法概念 二分法就是在一个有序递增的数组中进行…

使用RabbitMQ发送短信

1、在项目中分别创建模块financial-core、financial-mq、financial-sms&#xff0c;如图&#xff1a; 模块构成 <modules><module>financial-common</module><module>financial-base</module><module>financial-core</module><mo…

剑指 Offer 66. 构建乘积数组

摘要 剑指 Offer 66. 构建乘积数组 一、左右乘积列表 我们不必将所有数字的乘积除以给定索引处的数字得到相应的答案&#xff0c;而是利用索引左侧所有数字的乘积和右侧所有数字的乘积&#xff08;即前缀与后缀&#xff09;相乘得到答案。对于给定索引i&#xff0c;我们将使…

Qt广告机服务器(上位机)

目录功能结构adSever.promain.cpptcp_MSG.h 共用Tcp传输信息adsever.h 服务器adsever.cpp 服务器addate.h 时间处理addate.cpp 时间处理adtcp.h 客户端Socket处理adtcp.cpp 客户端Socket处理client.h 客户端信息类client.cpp 客户端信息类admsglist.h 信息记录模块admsglist.cp…

jupyter的使用

1.安装 安装过程看这篇记录。 安装 2.如何启动 环境搭建好后&#xff0c;本机输⼊jupyter notebook命令&#xff0c;会⾃动弹出浏览器窗⼝打开 Jupyter Notebook # 进⼊虚拟环境 workon ai(这个是虚拟环境的名称) # 输⼊命令 jupyter notebook本地notebook的默认URL为&…

宝藏级BI数据可视化功能|图表联动分析

在浏览其他人的BI数据可视化报表时&#xff0c;经常会发现这样的一个现象&#xff0c;点一下上一张数据可视化图表中的某个门店&#xff0c;下一张图表将立即针对该门店展开数据可视化分析。这是什么效果&#xff1f;怎么实现&#xff1f;BI软件中还有多少宝藏级BI数据可视化功…

Oracle表分区的创建、新增、拆分

Oracle中为了方便管理、查询数据当数据量大于500w或者2G时最好用分区表&#xff0c;常见的一种是使用时间作为分区。 分区表添加新的分区有 2 种情况&#xff1a; (1) 原分区里边界是 maxvalue 或者 default。 这种情况下&#xff0c;我们需要把边界分区 drop 掉&#xff0c;加…

好的计划是成功的一半,如何制定项目计划?

好的计划是成功的一半&#xff0c;不好的计划会使项目一步步失败&#xff0c;任何事情&#xff0c;要取得成功&#xff0c;离不开一个科学合理的计划。 计划是为了实现项目所提出的各项目标&#xff0c;每一项任务都是针对某一个特定目标的&#xff0c;因此&#xff0c;一项计划…

计算机视觉手指甲标注案例

关键点标注是指识别和标注图像或视频中特定的相关点或区域的过程。在机器学习行业&#xff0c;它经常被用来训练计算机视觉模型&#xff0c;以执行诸如物体检测、分割和跟踪等任务。 关键点注释可用于以下应用&#xff1a; 面部关键点检测&#xff1a;识别图像中人脸上的眼睛…

12.SpringSecurity中OAuth2.0的实现

一、OAuth2.0介绍 1.概念说明 https://oauth.net/2/ 先说OAuth&#xff0c;OAuth是Open Authorization的简写。   OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息&#xff08;如…

[league/glide]两行代码实现一套强大的图片处理HTTP服务

只要两行代码&#xff0c;就能实现类似对象存储云提供的基于参数的图片处理&#xff0c;比如裁剪、放大、水印、旋转等等。 我们经常使用第三方的对象存储服务&#xff0c;比如七牛云或阿里云&#xff0c;他们都提供了“智能媒体服务”&#xff0c;其实就是在链接上加上各种参…

Vue:(三十四)Vuex及其属性

Vuex的学习更多是代码了&#xff0c;所以就放在一起了&#xff0c;接下来大概说一下吧。概念&#xff1a;专门在Vue中实现集中式状态&#xff08;数据&#xff09;管理的一个Vue插件&#xff0c;对Vue应用中多个组件的共享状态进行集中式的管理&#xff08;读/写&#xff09;&a…