OSPF基本原理和概念

文章目录

    • 背景知识
    • 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.mzph.cn/news/782103.shtml

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

相关文章

腾讯云2核2G服务器优惠价格,61元一年

腾讯云2核2G服务器多少钱一年?轻量服务器61元一年,CVM 2核2G S5服务器313.2元15个月,轻量2核2G3M带宽、40系统盘,云服务器CVM S5实例是2核2G、50G系统盘。腾讯云2核2G服务器优惠活动 txybk.com/go/txy 链接打开如下图:…

Etag:HTTP缓存控制机制解析

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

无论PC还是Mac,都能畅快地使用移动硬盘 Mac使用NTFS移动硬盘不能读写

如果你拥有一台Mac设备,总会遇到尴尬的那一刻——你在Mac上用得好好的移动硬盘怎么都不能被PC识别到。又或者你朋友在PC上用得好好的移动硬盘,连上你的Mac后,Mac里的文件死活就是拷贝不进移动硬盘里。这种坑,相信大多数使用Mac的小…

Redis基础命令集详解及实例

Redis基础命令集详解及实例 Redis(Remote Dictionary Server)是一个开源的,基于内存的高性能键值对存储系统,它支持多种数据结构,如字符串(String)、列表(List)、集合&a…

.NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数

前言: 本次要讲的是使用.Net HttpClient拼接multipark/form-data形式post上传文件和相关参数,并接收到上传文件成功后返回过来的结果(图片地址,和是否成功)。可能有很多人会说用ajax不是就可以轻松的实现吗&#xff1f…

生信数据分析——GO+KEGG富集分析

生信数据分析——GOKEGG富集分析 目录 生信数据分析——GOKEGG富集分析1. 富集分析基础知识2. GO富集分析(Rstudio)3. KEGG富集分析(Rstudio) 1. 富集分析基础知识 1.1 为什么要做功能富集分析? 转录组学数据得到的基…

java多线程——概述,创建方式及常用方法

前言: 学习到多线程了,整理下笔记,daydayup!!! 多线程 什么是线程 线程(Thread)是一个程序内部的一条执行流程。若程序只有一条执行流程,那这个程序就是单线程的程序。 什么是多线程 多线程是指从软硬件上…

数据库安全(redis、couchdb、h2database)CVE复现

redis服务默认端口:6379;我们可以通过端口扫描来判断是否存在该服务。 Redis 是一套开源的使用ANSI C 编写、支持网络、可基于内存亦可持久化的日志型、键值存储数据库,并提供多种语言的API。 Redis 如果在没有开启认证的情况下,…

Javase百问白答系列一

1 、简述 FileInputStream 类和 FileOutputStream 类的创建语法。 FileInputStream 类和 FileOutputStream 类是用来处理文件输入 /输出的类,创建 FileInputStream 对象的语法如下 (其中:fileName表示文件的路径名称,可以是绝对路…

学生综合测评系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssmvue等技术项目合集) 1. 系统功能…

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

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

简明Pytorch分布式训练 — DistributedDataParallel 实践

上一次的Pytorch单机多卡训练主要介绍了Pytorch里分布式训练的基本原理,DP和DDP的大致过程,以及二者的区别,并分别写了一个小样作为参考。小样毕竟还是忽略了很多细节和工程实践时的一些处理方式的。实践出真知,今天(简…

记 SpringBoot 使用@RequestBody 接收不到参数

POST请求,前端传的参数名字跟后端规定的参数一样。但是通过RequestBody注解接收的参数始终为NULL! //实体类中属性没有用驼峰命名 private String SubscribeID; /*** 标题*/ private String Title;解决方案: 1、字段上使用JsonProperty(valu…

深入理解数据结构(1):复杂度详解

文章主题:复杂度详解🌱所属专栏:深入理解数据结构📘作者简介:更新有关深入理解数据结构知识的博主一枚,记录分享自己对数据结构的深入解读。😄个人主页:[₽]的个人主页🔥…

面试宝典:深入剖析golang 反射在orm模型中的应用

在 Go 语言中,反射(Reflection)是一种强大的机制,它允许程序在运行时检查和修改自身的结构和行为。在 ORM(Object-Relational Mapping,对象关系映射)模型中,反射被广泛应用于将数据库中的表记录映射到 Go 语言的结构体实例,以及将结构体实例的数据持久化到数据库中。以…

【微服务】OpenFeign+Sentinel集中处理远程调用异常

文章目录 1.微服务基本环境调整1.对10004模块的application.yml调整2.启动nacos以及一个消费者两个提供者3.测试1.输入http://localhost:8848/nacos/index.html 来查看注册情况2.浏览器访问 http://localhost:81/member/nacos/consumer/get/13.结果 2.使用OpenFeign实现微服务模…

EtherCAT主站SOEM -- 22 -- Wireshark抓取并分析EtherCAT数据

EtherCAT主站SOEM -- 22 -- Wireshark抓取并分析EtherCAT数据 0 QT-SOEM视频预览及源代码下载:0.1 QT-SOEM视频预览0.2 QT-SOEM源代码下载1.Wireshark下载及安装2.Wireshark抓取EtherCAT数据2.1 我抓取的数据包3.Wireshark过滤EtherCAT数据3.1 筛选EtherCAT数据的COE数据:3.2…

C# comboBox

在C#中,ComboBox 是一个常用的控件,它允许用户从下拉列表中选择一个项目,或者输入自定义的文本(取决于 ComboBox 的 DropDownStyle 属性设置)。ComboBox 控件通常用于显示一系列固定的选项,让用户能够快速地…

2024年北京通信展|北京国际信息通信展览会|北京PT展

2024年北京通信展|北京国际信息通信展览会|北京PT展 2024年中国国际信息通信展览会(PTEXPO),是由工业和信息化部主办的ICT行业盛会,自1990年创办以来,已成功举办31届,是反映信息通信行业发展最新成果的重要…

Mysql 常用语句及用法记录

一、mysql简介-常用命令: MySQL是一种关系型数据库管理系统,它提供了许多命令和用法来管理和操作数据库。以下是一些常用的MySQL命令及其用法: 1. 连接数据库: mysql -u username -p 用于连接到MySQL服务器,其中usern…