OSPF基本原理和概念

news/2024/7/26 10:21:45/文章来源:https://blog.csdn.net/adminstate/article/details/137138504

文章目录

    • 背景知识
    • 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.luyixian.cn/news_show_1033614.aspx

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

相关文章

python对接百度云车牌识别

注册百度智能云,选择产品服务。 https://console.bce.baidu.com/ 每天赠送200次,做开发测试足够了。 在应用列表复制 AppID , API Key ,Secret Key 备用。 SDK下载地址 https://ai.baidu.com/sdk#ocr 下载SDK文件,解压,…

【java9】java9新特性值之集合不可变实例工厂方法

Java9为集合接口List、Set、Map提供了创建不可变实例的工厂方法。这些工厂方法为便利而生,以简单的方式创建这些集合的不可变实例。 Java9之前创建不可变集合 在Java9之前,创建不可变集合通常需要通过其他方式,比如使用Collections.unmodif…

基于PHP的校园招聘管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的校园招聘管理系统 一 介绍 此校园招聘管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为个人用户,企业和管理员三种。 技术栈:phpmysqlbootstrapphpstudyvscode 二…

【CSS】CSS定位元素

CSS定位元素 1.标准流 默认情况下,元素都是按照标准流进行排布,互相不存在层叠现象标准流中,可以使用margin和padding对元素进行定位,其中margin可以使用负数缺点 设置一个元素的定位,会影响其他盒子的定位效果不能实…

内容营销新手指南:Kompas.ai的智能起步策略

内容营销是当今企业获取客户、建立品牌认知和忠诚度的关键手段。然而,对于刚刚踏入这一领域的新手来说,内容营销的世界可能会显得既广阔又复杂。从内容创作到发布,再到分析和优化,每一步都充满了挑战。本文旨在为内容营销新手提供…

蓝桥杯算法题——暴力枚举法

先估算这个数小于3的50次方 cnt0 for i in range(50):for j in range(50):for k in range(50):a3**ib5**jc7**kif a*b*c<59084709587505:cnt1 print(cnt-1)#当ijk都为0时&#xff0c;a*b*c1不是幸运数字所以要减去

突破编程_前端_JS编程实例(分割窗体组件)

1 开发目标 分隔窗体组件旨在提供灵活的窗体分隔功能&#xff0c;支持横向分割与纵向分隔两种类型&#xff0c;并具备拖拽调整窗体比例的功能&#xff0c;同时提供最小比例设置&#xff0c;以防止窗体被过度缩小&#xff1a; 2 详细需求 2.1 分隔窗体类型 &#xff08;1&…

3D密集面部对齐项目 | 基于Pytorch实现的快速+准确+稳定的3D面部对齐算法

项目应用场景 可以应用于人脸面部三维特征点的提取 人脸面部的三维重建&#xff0c;项目的特点是基于 Pytorch 实现、快速、准确、稳定 项目效果&#xff1a; 项目流程 > 具体参见项目内README.md (1) 构建 sh ./build.sh (2) 执行示例 # 1. running on still i…

【Servlet】服务器内部转发以及客户端重定向

文章目录 一、服务器内部转发&#xff1a;request.getRequestDispatcher("...").forward(request, response);二、客户端重定向&#xff1a;response.sendRedirect("");三、服务器内部转发代码示例四、客户端重定向代码示例 一、服务器内部转发&#xff1a…

TSINGSEE青犀智慧工厂视频汇聚与安全风险智能识别和预警方案

在智慧工厂的建设中&#xff0c;智能视频监控方案扮演着至关重要的角色。它不仅能够实现全方位、无死角的监控&#xff0c;还能够通过人工智能技术&#xff0c;实现智能识别、预警和分析&#xff0c;为工厂的安全生产和高效运营提供有力保障。 TSINGSEE青犀智慧工厂智能视频监…

Reasoning on Graphs: Faithful and Interpretable Large Language Model Reasonin

摘要 大型语言模型(llm)在复杂任务中表现出令人印象深刻的推理能力。然而&#xff0c;他们在推理过程中缺乏最新的知识和经验幻觉&#xff0c;这可能导致不正确的推理过程&#xff0c;降低他们的表现和可信度。知识图谱(Knowledge graphs, KGs)以结构化的形式捕获了大量的事实…

常见手撕项目C++

常见手撕项目C 设计模式单例模式饿汉模式懒汉模式 策略模式策略接口实现具体的策略&#xff08;虚函数重写&#xff09;定义上下文用户调用 代码使用函数模板写冒泡排序写一个类模板 设计模式 单例模式 单例模式是一种常用的软件设计模式&#xff0c;其目的是确保一个类只有一…

opejdk11 java 启动流程 java main方法怎么被jvm执行

java启动过程 java main方法怎么被jvm执行 java main方法是怎么被jvm调用的 1、jvm main入口 2、执行JLI_Launch方法 3、执行JVMInit方法 4、执行ContinueInNewThread方法 5、执行CallJavaMainInNewThread方法 6、创建线程执行ThreadJavaMain方法 7、执行ThreadJavaMain方法…

项目中完整的使用eslint检查代码风格过程

遇到的bug&#xff1a;如果vscode的eslint插件更新到最新2.4.4版本&#xff0c;有可能导致eslint版本不起作用&#xff0c;所以可以选择不更新版本&#xff0c;还有其他什么办法解决可以留言。 如何在创建项目后使用eslint&#xff0c;比如vue项目&#xff0c;uniapp项目&…

Taro + vue3 小程序封装标题组件

分为没有跳转页面的title组件和 有跳转页面的title组件 我们可以把这个封装成一个组件 直接上代码 <template><div class"fixed-title-container"><div class"box"><div class"icon" v-if"isShow" click"…

Linux 内核优化简笔 - 高并发的系统

简介 Linux 服务器在高并发场景下&#xff0c;默认的内核参数无法利用现有硬件&#xff0c;造成软件崩溃、卡顿、性能瓶颈。 当然&#xff0c;修改参数只是让Linux更好软件的去利用已有的硬件资源&#xff0c;如果硬件资源不够也无法解决问题的。而且当硬件资源不足的时候&am…

互联网轻量级框架整合之JavaEE基础I

不得不解释得几个概念 JavaEE SUN公司提出来的企业版Java开发中间件&#xff0c;主要用于企业级互联网系统的框架搭建&#xff0c;同时因为Java语言优质的平台无关性、可移植性、健壮性、支持多线程和安全性等优势&#xff0c;其迅速成为构建企业互联网平台的主流技术&#x…

matlab中旋转矩阵函数

文章目录 matlab里的旋转矩阵、四元数、欧拉角四元数根据两向量计算向量之间的旋转矩阵和四元数欧拉角转旋转矩阵旋转矩阵转欧拉角旋转矩阵转四元数参考链接 matlab里的旋转矩阵、四元数、欧拉角 旋转矩阵dcmR四元数quatq[q0,q1,q2,q3]欧拉角angle[row,pitch,yaw] % 旋转矩阵…

囊括所有大模型:高质量中文预训练模型大模型多模态模型大语言模型集合

在自然语言处理领域中&#xff0c;预训练语言模型&#xff08;Pretrained Language Models&#xff09;已成为非常重要的基础技术&#xff0c;本仓库主要收集目前网上公开的一些高质量中文预训练模型、中文多模态模型、中文大语言模型等内容(感谢分享资源的大佬)&#xff0c;并…

WPF学习笔记-FlowDocument流文档基础知识和基本操作

文章目录 概述一、块元素和内联元素1.1 块元素&#xff08;Block类&#xff09;1.2 内联元素&#xff08;Inline类&#xff09;二、Paragraph元素2.1 基本属性设置2.2 将内联元素Inline添加到Inlines中2.3 设置中西文字体不一样 三、Table元素3.1 添加新的Table3.2 添加列3.3 添…