OSPF协议全面学习笔记

news2024/10/6 20:26:17

作者:BSXY_19计科_陈永跃
BSXY_信息学院
注:未经允许禁止转发任何内容

OSPF协议全面学习笔记

    • 1、OSPF基础
    • 2、DR与BDR
    • 3、OSPF多区域
    • 4、虚链路Vlink
    • 5、OSPF报文
    • 6、LSA结构
      • 1、一类/二类LSA(Router-LSA/Network-LSA)
    • 更新完善中...

1、OSPF基础

RIP是基于距离矢量算法的路由协议,应用在大型网络中存在收敛速度慢、度量值
不科学、可扩展性差等问题。
IETF提出了基于SPF算法的链路状态路由协议OSPF (Open Shortest Path First).
通过在大型网络中部署OSPF协议,弥补了RIP协议的诸多不足。那么OSPF协议是
如何实现的呢?面对网络扩展的需求,又该如何应对呢?

  • IGP(内部网关协议)分为距离矢量和链路状态两种。
  • RIP是基于距离矢量算法的路由协议,应用下大型网络中存在收敛速度慢,度量值不科学,扩展性差等问题。最多15跳,16跳为不可达,cost基于跳数。
  • IETF提出了基于SPF(最短路径优先)算法的链路状态路由协议OSPF,弥补了距离矢量路由的诸多不足。

技术背景:
在这里插入图片描述


大型网络下的需求:

  • 网络规模扩大
  • 网络可靠性要求提高(设备可靠性和链路可靠性)(OSPF可以在复杂的链路中进行最优选路)
  • 网络异构化趋势加剧(设备可能不一致)(尽可能使用开放性技术)

链路状态对应距离矢量的改进:
在这里插入图片描述

如何解决RIP的问题?

RIP的问题优化或解决的方式
收敛慢,故障恢复时间长“收到更新>计算路由>发送更新"改为"收到更新>发送更新>计算路由”
缺少对全局网络的了解路由器基于拓扑信息,独立计算路由
最多有效跳数为15不限制跳数
存在选择次优路由的风险将路由带宽作为选路参考值

在这里插入图片描述


OSPF工作流程: 建立邻居-同步链路状态-SPF-放置路由表。通过lsdb掌握全网的拓扑结构

  • 总结来说就是建立邻居,互相交互lsa,建立lsdb数据库,这样子每个设备都能拿到完整路由拓扑,最后以自己为中心,计算到各个路由之间的最佳路径,置于路由表。(存在路由器的路由即最优 )
    在这里插入图片描述
  • 邻居交互完成后,了解了拓扑结构(lsa交互完成),拿到了lsa也就构建了lsdb数据库(同一个区域里的路由lsdb就应该一致)。最后使用SPF算法计算最优路由(生成带权有向图 )
  • 带权有向图:(有向代表双向,也就是设备与设备之间是互相知道的)
    在这里插入图片描述
  • 流程图
    在这里插入图片描述

OSPF的基本工作原理:
OSPF Rrouter-id:用于自治系统中唯一标识一台运行OSPF的设备,每台运行OSPF的设备只有一个Router-id
在这里插入图片描述
建立邻居:OSPF设备之间在交换链路状态信息之前,首先需要彼此建立邻居关系,通过Hello报文实现邻居交互
在这里插入图片描述


链路状态信息:

  • 链路的类型:多路访问,非多路访问,点到点,帧中继

  • 接口IP地址及掩码

  • 链路上所连接的邻居路由器

  • 链路的带宽(开销)…

在这里插入图片描述


LSDB同步:

  • Exstart 状态会根据DD数据报文选举主仆关系Master和Slave(只根据Router ID 大的为主),选举完成后,Slave接下来会听Master的指挥

  • DD数据报文包含了lsa的摘要信息(全部)

  • Lsr请求的是某个lsa头部信息,lsu回复包含了完整的lsa信息

  • lsack就是对lsu的确认(如果没有确认,lsu会周期性重传,多次没有回应会down)
    在这里插入图片描述


状态机制:

  • Full,down,2-way,属于稳定状态剩下是过渡状态,不可能永久停留,停留表示有问题
    在这里插入图片描述

OSPF数据作用类型:

数据类型作用
Hello建立邻居和后期维护邻居关系,hello包间隔时间,10秒钟发送一个hello包,如果40秒内收不到邻居路由hello,会判定邻居路由挂掉,会清除目标邻居路由的全部信息
Data base description (DBD)LSDB的摘要(仅包含LSA头部)简略的链路数据库列表,用于对比。邻居建立过程才有DBD数据包,建立完成后则没有了。
通过第二阶段数据包来进行比较,各自设备有哪些路由,然后在进行信息交互(LSA泛洪)
DBD的数据包有两个阶段,开头设备各自发一个,不包含实际内容。DBD第二个阶段,包含了一个LSA-type,这个LSA的数据并不完整,只包含(类型,id ,宣告者)
Link state Request (LSR)请求LSR(某个lsa头部信息),邻居建立完成后就没有LSR数据包,触发有机制触发
Link state update (LSU)发送LSA,(根据邻居路由请求LSA给予回复)
触发式更新:有增删改会发送更新。
注:LSU数据包里面就包含了LSA。
Link state acknowledgment (LSAck)对LSU进行确认。(通过目标设备发送的序列号,再次发送回去进行确认)
给邻居路由发送一个请求,需要邻居路由给予回应,否则会进行重传, 重传到一定次数,还没有回应,会进行down

OSPF参考度量值:

  • 接口开销=参考带宽/实际带宽。参考带宽默认=100Mbps

  • 更改开销的两种方式:在接口直接配置; 修改参考带宽值(所有设备需要一致,否则选路不一致)

  • 到目标所有的出站接口的Cost值累加(数据方向)(一般都是数据方向,也就是看出口计算)

  • 到本路由器沿途所有入站接口的Cost值累加(路由方向)

  • 注:从邻居学到一条路由。路由分为数据方向和路由方向

路由方向:当邻居路由发送一条路由给我时,会累计接收时端口的开销。

数据方向:当学到邻居的路由时,我要去往这条路由时,会计算我发出时的接口开销。

  • 注:不管是数据方向还是路由方向,他其实说的就是我们去往邻居路由时的一个计算方式。而不是说要去计算我们本身存在的路由

  • 总结:邻居发一条路由给你时,你接收时端口的开销是多少,那么去这台路由时发出的端口开销就是多少
    在这里插入图片描述
    在这里插入图片描述


网络类型:

MA网络中问题:

2、DR与BDR

减少领接关系
降低OSPF协议流量
具有非抢占性。(除非设备挂了或者重启)
DR出现故障BDR顶替,再重新选举新的BDR。(只有先成为BDR才有机会成为DR)
OSPF的DR,BDR选举制度是无法改变的,是为了稳定性。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 邻接状态,一定是邻居。但是邻居状态不一定是邻接
  • DR和BDR,Drouter 之间都保持领接关系(full)
  • Drouter 之间保持邻居关系(2-way)

3、OSPF多区域

随着网络规模的不断扩大,结构也越来越复杂,路由器完成路由计算所消耗的资源也就越多。

而且,网络发生故障的可能性也随之增加,(区域内网络越复杂,越容易出问题)。如果区域内某处发生故障,整个区域内的路由都要重新计算,这也会大大增加路由器的负载,降低网络运行的稳定性。

OSPF单区域过大可能带来的问题:

解决方案:

区域划分: 将一个大网络划分为多个相互连接的小网络。每个区域内的设备只需要同步所在区域内的sdb,一定程度上降低路由器内存及CPU资源的消耗

  • 一个接口(网络地址)只能在一个区域内进行宣告,不能冲突

在这里插入图片描述


域间路由防环: (区域内依靠SPF算法,不会有环路,而区域间可能会存在环路)


三类LSA传递规则

4、虚链路Vlink

由于网络设计,规划,升级,合并,改造,或者不可抗拒等因素,造成不规范区域架构,最终导致路由学习不完整:

在这里插入图片描述

解决的办法是虚连接:

在这里插入图片描述

  • 通过虚连接,虚连接配置后,两个ABR之间会建立一个单播的邻居,两台ABR路由器之间直接传递OSPF报文信息(不会传递到区域内),两者之间的OSPF设备只是起到一个转发报文的作用

虚链路配置:

  • 虚连接的另外一个作用提供冗余的备份链路。当骨干区域因链路故障将被分隔时,通过虚连接仍然可以保证骨干区域在逻辑上的连通性
  • 虚连接可以看成扩展的骨干区域,在逻辑上生效。

在这里插入图片描述

5、OSPF报文

OSPF报文结构:

OSPF报文类型:

Hello保定时器:

网络类型Hello间隔Dead时间
Broadcast1040
P2P(点到点)1040
NBMA(非广播多路泛洪)30120
P2MP(点到多点)30120
Virtual link (基于实际接口)基于实际接口基于实际接口

6、LSA结构

OSPF内部路由指的就是所有的一个OSPF进程下的网络,那么也就是说,不管有多少区域,都在这个进程下讨论,不管是区域内还是区域间,都算内部,这个内部单独指OSPF进程的内部,不同进程的叫做外部。不同路由协议也算外部

LSA结构:

1、一类/二类LSA(Router-LSA/Network-LSA)

每种不同类型的LSA包含的内容都是不同的

type名称描述
1Router-LSA每一个路由器都会生成。描述某区域内路由器端口链路状态的集合。只在所描述的区域内泛洪。
2Nework-LSA由DR生成。描述多路访问网络上所连接路由器的列表。只在该网络所属的区域内泛洪。

Router-LSA

Network-LSA

更新完善中…

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

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

相关文章

做一个个人网站分几步?第一步,找个简单的模板借鉴(抄)一下

做一个个人博客第一步该怎么做? 好多零基础的同学们不知道怎么迈出第一步。 那么,就找一个现成的模板学一学呗,毕竟我们是高贵的Ctrl c v 工程师。 但是这样也有个问题,那就是,那些模板都,太!…

Linux运维相关基础知识

linux 开机流程 shell(bash / dash) 终端仿真器/终端仿真程序 虚拟控制台tty1(桌面环境 gnome等) | tty2 | tty3 … Linux kernel <LVM> 分区&#xff08;分区表&#xff0c;GPT等&#xff09; 物理磁盘 Linux系统拥有很高的灵活性和自由度&#xff0c;系统启动后首先进…

分布式(计算机算法)

目录 分布式计算 分布式​编辑 分布式和集群 分布式和集群的应用场景 分布式应用场景 集群应用场景 哪种技术更优、更快、更好呢 性能 稳定性 以下概念来源于百度百科 分布式计算 分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息…

【ArcGISProSDK】添加异步执行时进度窗口

运行结果 代码 protected override async Task InitializeAsync(){using (ProgressorSource progressorSource new ProgressorSource("初始化...")){await QueuedTask.Run(delegate{MessageBox.Show(licenseExpirationDate.ToString());}, progressorSource.Progres…

jvm调优实战操作

1.什么是jvm jvm就是lava虚拟机&#xff0c;他是java运行环境的一部分&#xff0c;它虚构出来的一台计算机&#xff0c;在通过在实际的计算机上仿真模拟各种计算机功能来实现Java应用程序&#xff0c;有JVM从软件层面屏蔽了底层硬件、指令层面的细节让他兼容各种系统 2.我们调…

代码随想录算法训练营第14天 part01 | 二叉树理论基础篇

代码随想录 二叉树理论基础篇 二叉树的种类 二叉树有两种主要的形式&#xff1a;满二叉树和完全二叉树 满二叉树&#xff1a;如果一棵二叉树只有度为0的结点和度为2的结点&#xff0c;并且度为0的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。 这棵二叉树为满二叉树…

最新WooCommerce教程指南-如何搭建B2C外贸独立站

WooCommerce是全球最受欢迎的开源电子商务平台之一。它基于WordPress建站&#xff0c;只需一键安装即可使用。该平台提供了丰富的功能&#xff0c;包括产品发布、库存管理、支付网关和运输发货等&#xff0c;可以帮助搭建各种类型的电子商务网站。相比其他竞争对手&#xff0c;…

【数字孪生】Nginx发布数字孪生三维建模模型服务及调用方法

【数字孪生】Nginx发布数字孪生三维建模模型服务及调用方法 一、需求二、实施步骤2.1 准备模型文件2.1.1 3D tiles模型2.1.2 3D Tiles标准文件格式 2.2 配置nginx server块2.2.1 Nginx能干啥 2.3 访问 三、实现效果 一、需求 利用三维渲染引擎Cesium加载3D tiles模型。 二、实…

AI实景无人自动直播间怎么搭建?三步教你轻松使用

最近很多朋友看到AI自动直播带货玩法&#xff0c;也想开启自己的自动直播间&#xff0c;但还是有些问题比较担心&#xff0c;这种自动讲解、自动回复做带货的直播间是不是很麻烦&#xff1f; 实景无人自动直播 ​ 实际上这种直播间搭建相当简单便捷&#xff01;今天跟着笔者&…

802.11 OFDM数据包结构

各层数据单元 首先&#xff0c;来了解一下传输过程中的数据单元&#xff1a; 图1 数据单元解释 也就是说PSDU包含了MAC层要发送的数据&#xff0c;在物理层根据PLCP协议将PSDU加上PLCP前导码和报头后变为PPDU&#xff0c;在物理媒介上传输&#xff0c;从发射端传到接收端。那么…

[薅羊毛]通义灵码做活动,送挺多礼品,快来薅羊毛!!!

你的编辑器装上智能ai编辑了吗&#xff0c;的确挺好用的。 最近阿里云AI编码搞活动&#xff0c;可以免费体验并且还可以抽盲盒。有日历、马克杯、代金券、等等其他数码产品。 大多数都是日历。 点击链接参与「通义灵码 体验 AI 编码&#xff0c;开 AI 盲盒」 https://develope…

爬虫神器!使用Python一键下载网页图片,省时高效!

引言 爬虫技术在当今信息时代中扮演着重要的角色&#xff0c;可以自动化获取互联网上的数据。本教程将围绕你提供的Python爬虫代码展开&#xff0c;旨在实现自动下载图片的功能。通过这个示例&#xff0c;你将学习如何利用爬虫技术批量获取网页中的图片&#xff0c;并将其保存…

redis瘦身版

线程模型 纯内存操作/非阻塞io多路复用/单线程避免多线程频繁上下文切换 基于Reactor模式开发了网络事件处理器&#xff1a;文件事件处理器&#xff0c;单线程的 io多路监听多个socket&#xff0c;据socket事件类型选择对应的处理器&#xff0c;高性能网络通信模型&#xff0c…

PMP能两周快速通过吗?

两周时间有点赶&#xff0c;一般备考要2个月左右&#xff0c;有时间尽量多准备准备。 分享一篇左羊学霸的备考总结&#xff0c;希望能帮你 前言 作为⼀名通过PMP项⽬管理认证并且拿到3A成绩 ( PMP认证最好成绩) 的 学习者&#xff0c; 来跟⼤家分享下我考取PMP证书的动机与过程…

Matplotlib数据可视化实战-1数据可视化Matplotlib基础

1.1绘图的一般过程&#xff1a; 1.导入相关库 2.生成、读入或计算得到数据&#xff1b; 3.根据需要绘制折线图、散点图、柱状图、饼状图、雷达图、箱线图、三维曲线/曲面以及极坐标系图形&#xff1b; 4.根据需要设置图形属性&#xff1b; 5.显示或保存绘图结果。 例如&…

【STL源码剖析】【2、空间配置器——allocator】

文章目录 1、什么是空间配置器&#xff1f;1.1设计一个简单的空间配置器&#xff0c;JJ::allocator 2、具备次配置力( sub-allocation)的 SGI 空间配置器2.1 什么是次配置力2.2 SGI标准的空间配置器&#xff0c;std::allocator2.2 SGI特殊的空间配置器&#xff0c;std::alloc2.…

FISCO BCOS:深入浅出FISCO BCOS区块链底层平台

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 我前面有补充相关的区块链的知识 如果没有了解的话 可能部分概念或名词会不懂哦 建议先了解一波再来看~http://t.c…

sentinel黑白名单权限控制

黑白名单权限控制 规则配置 规则创建 创建一个 AuthorityRule 规则对象三个关键要素 setStrategy: 黑白名单类型setResource: 规则和资源的绑定关系setLimitApp: 限制的来源 调用 AuthorityRuleManager.loadRules()加载规则 监听器实例化和管理 AuthorityPropertyListener…

2024年普通人的创业机会在哪里?2024热门创业项目!2024普通人想翻身的风口行业!

创业千万别冲动&#xff0c;社区团购代理创业失败案例&#xff01; 是不是一开始挺看好这个赛道&#xff0c;看别人做的风生水起&#xff0c;以为不难&#xff0c;真正开始做才发现不好做&#xff0c;没有先天优势&#xff0c;货源和客源从零开始积累&#xff0c;开始就是摸着石…

Qt学习--QT Creator使用基本介绍

话不多说&#xff0c;直接开搞&#xff0c;笔者用的是5.12.9版本 双击打开QT Creator 显示这个界面 新建工程 然后出现这样的界面 点击运行 就弹出了一个这个&#xff0c;空的&#xff0c;因为我们啥也没写