OSPF基本原理和概念

news2024/11/27 0:30:30

文章目录

    • 背景知识
    • OSPF协议概述:
    • OSPF区域的表示
    • OSPF 骨干区域 –区域0
    • OSPF 非骨干区域 -非0区域
    • OSPF的五种区域类型
    • OSPF工作原理
    • OSPF 的报文类型
    • OSPF邻居表中的七个状态
  • 总结

背景知识

一台路由设备如何获取其他网段的路由,并加入到路由表中

  1. 直连路由 :接口配上地址,就会把此网段添加到路由表中
  2. 静态路由(含默认路由):手动配置 ip route-static 目标网段 掩码 下一跳
  3. 动态路由 :自动学习和分享

今天要将的是动态路由,动态路由产生的背景

随着企业的发展,网络的规模越来越大,网段的数量越来越多,公司内部的路由器的数量越来越多
为实现不同网络之间的互通,需要在路由器上配置大量的路由条目,工作量庞大并且随着网络扩展,后期管理难度增大
解决方案:
在路由器之间运行“动态路由协议”,让路由器之间自动的学习和分享彼此的路由表信息,每个路由器都独立的计算出一个去往目标网段的最优路由
动态路由协议的特点:

  1. 减少了后期网络管理任务,避免了人为的配置错误
  2. 在设备之间传输路由,会占用少量的网络带宽

动态路由协议的类型:
内部网关协议:在同一公司内部运行的路由协议,如RIP、ISIS、OSPF

  • RIP:最大支持15跳,不适合大型网络
  • ISIS: 之前只支持网络层的CLNP地址协议,目前通过扩展支持了网络层的IP协议,会在运营商网络出现,一般不会在企业网络出现
  • OSPF: 网红协议,目前最常用的路由协议

外部网关协议:在不同公司之间运行的路由协议,如BGP

  • BGP: 用于城市与城市之间,公司与公司之间的网关路由协议,用于传输大量的路由条目信息
    在这里插入图片描述

根据实现机制不同又可分为:

  • 距离矢量:RIP/BGP 直接分享路由条目
  • 链路状态:ISIS/OSPF 分享的是LSA,然后根据收到的LSA计算出最优的路由条目

OSPF协议概述:

OSPF:Open Shortest Path First开放式最短路径优先 协议

  • 应用在企业内部,属于公有标准协议,位于OSI模型第三层
  • OSPF的数据包,包含在IP头部后面,协议号为89
  • OSPF支持企业网络的层次化设计,将网络分为2层:骨干区域和非骨干区域
    在这里插入图片描述
    这里需要说明一下的是:AS表示的自治系统的意思,一个园区网,或者一个企业内的全部内网这样子,在一个 AS 内划分不同的区域。这里我们主要讲的是OSPF协议,即都是在同一个AS内,不涉及AS与AS之间的网络通信(外部路由器协议:BGP协议)。在遇到BGP协议时,会涉及AS的详细作用。

OSPF区域的表示

  • 通过十分制表示,例如区域 0、1、2、3等
  • 通过点分十进制表示,例如 区域 0.0.0.0、0.0.0.1、0.0.0.2等
    不管通过哪种表示方式,最终在查询配置时都以点分十进制进行展示

OSPF 骨干区域 –区域0

  • 区域号为0,表示的就是 “骨干区域”,即Backbone区域

OSPF 非骨干区域 -非0区域

  • 区域号不为0,表示的就是 “非骨干区域”也叫标准区域 ,即 Normal区域
  • 非骨干区域必须和骨干区域“直连”相连,才能实现 “区域之间的互通”

OSPF的五种区域类型

在这里插入图片描述
具体每种区域的作用,后边通过拓扑实验讲解

OSPF工作原理

  1. 建立OSPF邻居表 – 建立公路,只有建立的了邻居关系后,才能彼此传递
  2. 同步OSPF数据库 – 原料仓库
  3. 计算OSPF路由表 – 将原料制作为成品(路由条目)。具体就是 根据SPF(最短路径优先算法),计算出一条最优路径。
    :只有建立邻居表和同步数据库是需要发送报文的,而计算路由表时是不需要发生报文。

OSPF 的报文类型

一共有以下五种报文

  1. Hello报文 – 用于发现、建立、维护、和拆除OSPF邻居。
  2. 数据库描述报文(DD) – 用于发送OSPF数据库条目的简要信息,高效、稳定的实现数据库同步。
  3. 链路状态请求报文(LSR) – 用于请求自己数据库中没有的链路状态通告信息(LSA)。
  4. 链路状态更新报文(LSU)-- 用于回应LSR报文,其中包含的是详细的链路状态通告信息(LSA)。
  5. 链路状态确认报文(LSAck) – 用于对LSU报文确认,实现LSU的可靠传输。
    注意:第5种报文 是 LSAck,不是LSA。LSA是指的链路状态通告信息。

OSPF邻居表中的七个状态

OSPF邻居表中的7种状态

  1. down 关闭
  2. init 初始化
  3. 2-way 表示双向连接状态 (邻居关系状态)建立邻居表
  4. Exstart 准备同步
  5. Excharge 更新同步
  6. Loading 加载状态
  7. Full 表示完全邻接状态 (邻接关系状态) 建立邻居表 同步了LSA数据库现就看上面这两个状态
    :第三种和第七种是经常遇到的。

总结

  1. 路由器和网段较多时,动态协议效率更高
  2. 在企业内网,适应性和扩展性最强的动态路由协议是OSPF
  3. OSPF属于“网络层协议”,所以配置前,必须确保网络层的物理层和数据链路层是互通的
  4. OSPF支持将网络划分为骨干层和非骨干层,便于网络的扩展、排错和管理

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

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

相关文章

【Java】LinkedList模拟实现

目录 整体框架IMyLinkedList接口IndexNotLegalException异常类MyLinkedList类成员变量(节点信息)addFirst(头插)addLast(尾插)在指定位置插入数据判断是否存在移除第一个相等的节点移除所有相等的节点链表的长度打印链表释放回收链表 整体框架 IMyLinkedList接口 这个接口用来…

IDE/VS2015和VS2017帮助文档MSDN安装和使用

文章目录 概述VS2015MSDN离线安装离线MSDN的下载离线MSDN安装 MSDN使用方法从VS内F1启动直接启动帮助程序跳转到了Qt的帮助网页 VS2017在线安装MSDN有些函数在本地MSDN没有帮助?切换中英文在线帮助文档 概述 本文主要介绍了VS集成开发环境中,帮助文档MS…

常关型p-GaN栅AlGaN/GaN HEMT作为片上电容器的建模与分析

来源:Modeling and Analysis of Normally-OFF p-GaN Gate AlGaN/GaN HEMT as an ON-Chip Capacitor(TED 20年) 摘要 提出了一种精确基于物理的解析模型,用于描述p-GaN栅AlGaN/GaN高电子迁移率晶体管(HEMT&#xff09…

初步了解C++

目录 一:什么是C? 二.C发展史 三:C关键字 四:命名空间 4.1命名空间的介绍 4.2命名空间的使用 4.3命名空间的使用 4.3.1使用作用域限定符 4.3.2 使用using将命名空间的某个成员引入 4.3.3使用using把整个命名空间展开 4.4命名空…

Golang生成UUID

安装依赖 go get -u github.com/google/uuid文档 谷歌UUID文档 示例 函数签名func NewV7() ( UUID ,错误) func (receiver *basicUtils) GenerateUUID() uuid.UUID {return uuid.Must(uuid.NewV7()) } uid : GenerateUUID()

鸿蒙ARKTS--简易的购物网站

目录 一、media 二、string.json文件 三、pages 3.1 登录页面:gouwuPage.ets 3.2 PageResource.ets 3.3 商品页面:shangpinPage.ets 3.4 我的页面:wodePage.ets 3.5 注册页面:zhucePage.ets 3. 购物网站主页面:gwPage.ets 一、media 图片位置:entry > src …

cron服务

Cron文件:Cron服务使用一个特定的配置文件来存储任务和其执行计划。在Unix系统上,这个文件通常是 /etc/crontab, 或者是位于/etc/cron.d/目录下的其他文件。 这些文件包含了任务的定义,包括执行时间和要执行的命令。 类似于 编…

刷爆LeetCode:两数之和 【1/1000 第一题】

👤作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 作者专栏每日更新:LeetCode解锁1000题: 打怪升级之旅https://blog.csdn.net/cciehl/category…

Scala介绍与环境搭建

Scala环境搭建与介绍 一、Scala环境搭建 1、环境准备与下载 2、验证Scala 3、IDEA新建项目,配置Scala,运行Hello world 二、Scala介绍 1、Scala 简介 2、Scala 概述 一、Scala环境搭建 1、环境准备与下载 JDK1.8 Java Downloads | Oracle 下载需求版本…

java项目通用Dockerfile

创建Dockerfile文件,放到项目根目录下和pom.xml同级别 仅需修改为自己项目端口号即可,其他的无需改动 FROM openjdk:11.0.11-jre-slimCOPY target/*.jar .EXPOSE 8080ENTRYPOINT java -jar *.jar构建语句(注意末尾的点 . ) docker build -t container…

element-ui inputNumber 组件源码分享

今日简单分享 inputNumber 组件的实现原理,主要从以下四个方面来分享: 1、inputNumber 组件的页面结构 2、inputNumber 组件的属性 3、inputNumber 组件的事件 4、inputNumber 组件的方法 一、inputNumber 组件的页面结构。 二、inputNumber 组件的…

ElasticSearch开发指北和场景题分析

前言 本篇是ES系列的第二篇,继上次的理论篇ElasticSearch理论体系构建后,带来了实战篇。实战篇来自于我对常见操作以及场景的分析总结,详细到每个步骤和理由,下一篇将是性能优化篇。 常用操作 以下操作均使用ES的API进行展示&a…

数据结构进阶篇 之 【二叉树顺序存储(堆)】的整体实现讲解(赋完整实现代码)

做人要谦虚,多听听别人的意见,然后记录下来,看看谁对你有意见 一、二叉树的顺序(堆)结构及实现 1.二叉树的顺序结构 2.堆的概念及结构 3.堆的实现 3.1 向下调整算法 AdJustDown 3.2 向上调整算法 AdJustUP 3.3 …

【系统架构师】-第18章-安全架构设计

(1)信息泄露:信息被泄露或透露给某个非授权的实体。 (2)破坏信息的完整性:数据被非授权地进行增删、修改或破坏而受到损失。 (3)拒绝服务:对信息或其他资源的合法访问被无条件地阻止。 (4)非法使用(非授权访问):某一资源被某个非授权的人或…

深度学习500问——Chapter05: 卷积神经网络(CNN)(2)

文章目录 5.6 有哪些池化方法 5.7 1x1卷积作用 5.8 卷积层和池化层有什么区别 5.9 卷积核是否一定越大越好 5.10 每层卷积是否只能用一种尺寸的卷积核 5.11 怎样才能减少卷积层参数量 5.12 在进行卷积操作时,必须同时考虑通道和区域吗 5.13 采用宽卷积的好处有什么 …

Linux部署Sonarqube+Gogs+Jenkins(一)

Linux部署SonarqubeGogsJenkins 一、1.Linux安装JDK11环境1. 本地进行上传2. 进入到/usr/java目录,并且进行解压3. 配置文件/etc/profile,配置环境变量4.让对应的配置文件生效5. 验证 二、Linux安装Python环境三、Linux安装Jenkins环境1、/usr目录下创建…

Redis 的慢日志

Redis 的慢日志 Redis 的慢日志(Slow Log)是用于记录执行时间超过预设阈值的命令请求的系统。慢日志可以帮助运维人员和开发人员识别潜在的性能瓶颈,定位那些可能导致 Redis 性能下降或响应延迟的慢查询。以下是 Redis 慢日志的相关细节&…

自定义类型(二)结构体位段,联合体,枚举

这周一时兴起,想写两篇文章来拿个卷吧,今天也是又来写一篇博客了,也是该结束自定义类型的学习与巩固了。 常常会回顾努力的自己,所以要给自己的努力留下足迹。 为今天努力的自己打个卡,留个痕迹吧 2024.03.30 小闭…

GitHub文件克隆到本地(GitHub desktop快速上手版)

使用 GitHub Desktop 轻松地克隆 GitHub 上的项目。 打开 GitHub Desktop 应用程序。 在菜单栏中,单击“文件”,然后选择“克隆存储库”。 在弹出的窗口中,选择要克隆的存储库: 单击与要克隆的仓库位置对应的选项卡。或者&#…

回溯算法|216.组合总和III

力扣题目链接 class Solution { private:vector<vector<int>> result; // 存放结果集vector<int> path; // 符合条件的结果// targetSum&#xff1a;目标和&#xff0c;也就是题目中的n。// k&#xff1a;题目中要求k个数的集合。// sum&#xff1a;已经收集…