学习笔记——动态路由协议——OSPF(简介)

news2024/12/23 6:46:56

一、 OSPF简介

1前言

由于静态路由由网络管理员手工配置,因此当网络发生变化时,静态路由需要手动调整,这制约了静态路由在现网大规模的应用。

动态路由协议因其灵活性高、可靠性好、易于扩展等特点被广泛应用于现网。在动态路由协议之中,OSPF(Open Shortest Path First,开放式最短路径优先)协议是使用场景非常广泛的动态路由协议之一。OSPF在RFC2328中定义,是一种基于链路状态算法的路由协议

(1)产生的背景

  在OSPF产生之前,网络大部分运行RIP动态路由协议主要有三大特性:逐跳收敛,分布式路由计算,以“跳数”为度量。

① 逐跳收敛

  如(上图)所示,N1网络发生变化,RTA向RTB发出更新,RTB收到更新之后进行本地计算,完成计算后再向RTC发送路由变化通知,如此循环。逐跳收敛的方式,造成了网络收发数据缓慢的问题。

  在“收到更新”==》“计算路由”==》“发送更新”的路由收敛过程中,RIP的局限性在于路由器需要在完成路由计算之后才可以向邻居发送路由变化通知

OSPF路由协议将这个过程调整为:“收到更新”==》“发送更新”==》“计算路由”,即路由器从邻居收到路由更新后立刻向其他邻居路由器转发然后再本地计算新的路由。这样的收敛方式可以大大降低全网路由收敛的时间。

② 传闻路由更新机制

RIP在计算路由完全依赖于从邻居路由器收到的路由信息,RTE仅依靠从RTD获取的信息计算路由,对RTA、RTB和RTC之间的网络情况并不了解。RIP在计算路由时,缺少对全局网络拓扑的了解

  因为RIP路由器仅从邻居路由器获取路由信息,所以对非最优或者错误路由信息,RIP路由器并不能识别或屏蔽。解决此问题的最佳方式是路由器收集全网的信息,并基于这些信息独立计算路由。

 以“跳数”为度量

  因为RIP基于跳数的度量方式,所以N1与N2网络互访时会选择RTA->RTB->RTD->RTE作为最优路径。显然RTB->RTC->RTD之间的以太链路要比RTB->RTD的串行链路带宽要高的多。使用基于跳数的度量方式,没有将链路花销等因素考虑进去,因此可能会产生次优路由。

基于跳数的度量方式并没有考虑数据包的链路转发延迟,如果采用以累积带宽为选路参考依据,可以更好的规避选择次优路径的风险。

(2)RIP的缺陷和OSPF改进

RIP特性

带来的问题

优化或解决的方式

逐跳收敛

收敛慢,故障恢复时间长

“收到更新->计算路由->发送更新” 改为“收到更新->发送更新->计算路由”

传闻路由更新机制

缺少对全局网络拓扑的了解

路由器基于拓扑信息,独立计算路由

最多有效跳数为15

环形组网中,使远端路由不可达

不限定跳数

以“跳数”为度量

存在选择次优路径的风险

将链路带宽作为选路参考值

RIP与OSPF比较

1 相同点

OSPF有两个版本ospf-1(还未正式发布就夭折)和ospf-2,RIP也是有两个版本RIP-1和RIP-2;

OSPF-2与RIP-2一样是一种无类路由协议,支持VLSM、CIDR等特性;

OSPF-2与RIP-2一样都支持认证功能;

RIP封装在UDP报文中OSPF封装在IP报文中,UDP和IP都是一种无连接、不可靠的通信方式;

RIP和OSPF协议报文的安全传输都是靠协议本身;

2 不同点☆☆☆

OSPF是基于链路状态(Link-State)的路由协议,而RIP是基于距离矢量路与协议(二者的根本性差别);

RIP是一种“传话”的方式来传递路由有关的路由信息,OSPF是以一种“宣告”的方式,OSPF的收敛时间明显小于RIP;

RIP是一种“嘈杂”的路由协议,路由收敛后仍然周期性地持续地存在大量的RIP协议报文流量;OSPF是一种“安静”的路由协议,路由收敛后,OSPF网络中只存在一小部分OSPF报文;

RIP协议是以UDP作为其传输层协议的,RIP是封装在UDP报文中,端口号是520;OSPF没有传输层协议,OSPF是直接封装在IP报文中的;

RIP报文有两种:请求报文和响应报文

OSPF有五种:hello报文、数据库描述报文(DD)、链路状态请求报文(LSR)、链路状态更新报文(LSU)和链路状态确认报文(LSAck)

RIP以“跳数”来作为路由开销的定义,OSPF理论上可以采取任何参量作文开销定义,最常见的就是采用链路带宽来定义路由开销;

OSPF具有区域化结构,RIP没有;

OSPF网路中路由器有角色之分,不同路由器有着不同的功能和作用,RIP没有角色之分;

OSPF每台路由器都有独一无二的路由器身份号(Router-ID),在RIP网络中是没有Router-ID的;

内容

OSPF

RIPv2

RIPv1

协议类型

链路状态

距离矢量

距离矢量

CIDR

支持

支持

不支持

VLSM

支持

支持

不支持

自动汇总

不支持

支持

支持

手动汇总

支持

支持

不支持

路由的泛洪

周期性的组播更新

周期性的组播更新

周期性的组播更新

路径的开销(度量值)

带宽

跳数

跳数

路由的收敛速度

跳数的限制

没有限制

限制15跳

限制15跳

认证

支持

支持

不支持

层次化网络

支持(区域)

不支持

不支持

路由更新

事件触发更新

路由表更新

路由表更新

路由的计算方法

SPF

Bellman-ford

Bellman-ford

(3)有类路由、无类路由

最近看到RIP和OSPF方面了。这两个协议在NA里面被划分为距离矢量路由协议和链路状态路由协议。但是在NP里面划分路由又有种方法是基于有类的路由协议和无类的路由协议。

RIP正是基于有类的路由协议,OSPF则是无类的路由协议。

有类的路由不会识别子网的信息,如宣告10.0.1.0/24 172.16.1.0/22 192.168.1.64/28 路由表中只会识别A类10.0.0.0/8,B类172.16.0.0/16 C类192.168.1.0/24

   无类的路由协议不会根据A B C类来识别,根据子网掩码的长度来区分网段,所以说无类的路由协议都可以不支持路由自动汇总

有类的路由自然也就不支持VLSM 无类的路由就可以支持VLSM

IP路由协议可以被分为两大类,一类是有类的,另一类是无类的。

IP Classful:RIPv1, IGRP ,EGP 

IP Classless:RIPv2 ,EIGRP, OSPF, IS-IS, BGP

有类的路由协议只会传送网络前缀(网络地址),但是不会包含子网掩码。当它传送更新时,它首先检查直接连接的网络是否和发送更新的网络属于同一个大一点的子网,如果是的,那么它会继续检查它们的子网掩码是否相等,如果不等,那么更新信息会被丢弃而不会被广播。

当路由器A发送更新给路由器B时,它遵循下列几个步骤:

1、路由器A检查192.168.1.0/24是否和192.168.2.0/30(更新传向过的网络)属于同一个大一点的网路。

2、答案是是的,所以路由器A比较它们的子网掩码192.168.1.0/24和192.168.2.0/30。

3、因为它们有两个不同的子网掩码,所以信息被丢弃。这就是为什么有类路由协议不支持VLSM(可变长子网掩码),无类路由协议传输网络前缀(网络地址)的同时也会传输子网掩码,所以它支持VLSM。

有类地址:早期的IP地址没有子网掩码,所有的地址都属于相应的主类网,距离矢量路由协议如RIPv1,IGRP属于有类的路由协议,它所不能从邻居那里学到子网,所有关于子网的路由被学到后自动转为相应的主类网。譬如182.16.1.0就会变成B类地址的主类网182.16.0.0。

无类地址:根据可变长度的子网掩码划分不同的网络。譬如182.16.1.101,有类的话所在子网网段为182.16.0.0,子网掩码255.255.0.0,现在将子网掩码改为255.255.255.252的30位掩码,所在子网网段就是182.16.1.100。支持可变长度子网掩码的路由协议有RIP2,OSPF以及EIGRP

2、OSPF定义

OSPF:开放式最短路径优先协议(Open Shortest Path First) 协议是IETF定义的一种基于链路状态内部网关路由协议,是目前业内使用非常广泛的IGP协议之一。

·IPv4协议使用的是OSPF Version 2(RFC2328);IPv6协议使用OSPF Version 3(RFC2740)

·运行OSPF路由器之间交互的是链路状态(Link State,LS)信息,而不是直接交互路由LS信息是OSPF能够正常进行拓扑及路由计算的关键信息

· OSPF路由器将网络中的LS信息收集起来,存储在LSDB中。路由器都清楚区域内的网络拓扑结构,这有助于路由器计算无环路径。

·每台OSPF路由器采用SPF算法计算达到目的地的最短路径。路由器依据这些路径形成路由加载到路由表中。

3动态路由协议用处

为什么需要动态路由协议?

静态路由是由工程师手动配置和维护的路由条目,命令行简单明确,适用于小型或稳定的网络。

静态路由有以下问题∶

1)无法适应规模较大的网络∶随着设备数量增加,配置量急剧增加。

2)无法动态响应网络变化∶网络发生变化,无法自动收敛网络,需要工程师手动修改。

4OSPF在园区网络中的应用

OSPF是一种基于链路状态的路由协议,它从设计上就保证了无路由环路。OSPF支持区域的划分,区域内部的路由器使用SPF最短路径算法保证了区域内部的无环路。OSPF还利用区域间的连接规则保证了区域之间无路由环路。

OSPF支持触发更新,能够快速检测并通告自治系统内的拓扑变化。

OSPF可以解决网络扩容带来的问题。当网络上路由器越来越多,路由信息流量急剧增长的时候,OSPF可以将每个自治系统划分为多个区域,并限制每个区域的范围。OSPF这种分区域的特点,使得OSPF特别适用于大中型网络。

OSPF可以提供认证功能。OSPF路由器之间的报文可以配置成必须经过认证才能进行交换。

5、OSPF特点

1、OSPF属于IGP,开放最短路径优先协议。收敛速度快,相对RIP快,相对BGP快,相对EIGRP慢;

2、链路状态协议,无类的路由协议,支持VLSM (可变长子网掩码),支持CIDR;

3、OSPF封装在IP层端口号89,管理距离AD(prefrence)协议内部优先级10外部优先级150 ;

4、OSPF基于接口开销(cost)来进行路由计算的,相对RIP的跳数,更优100M/接口带宽;

5、OSPF支持等价负载均衡 EIGRP(非等价负载均衡),等价负载多路径协议(负载均衡)

6、OSPF支持区域划分,多区域配置,区域0为骨干区域其他为常规区域

7、OSPF安全措施:GTSM ,采用TTL安全机制。0是不认证,1、简单明文认证,2、MD5认证;

8、OSPF在同一个区域内是绝对无环路基于SPF算法不可能产生环路由

9、OSPF使用组播来收发报文OSPF组播地址:224.0.0.5(DR router) 224.0.0.6

OSPF协议拥有三个特点:

① 路由信息传递与路由计算分离

OSPF作为链路状态路由协议,不直接传递各路由器的路由表,而传递链路状态信息,各路由器基于链路状态信息独立计算路由

② 基于SPF算法

所有路由器各自维护一个链路状态数据库。邻居路由器间先同步链路状态数据库,再各自基于SPF(Shortest Path First)算法计算最优路由,从而提高收敛速度。

③ 以“累计链路开销”作为选路参考值

在度量方式上,OSPF将链路带宽作为选路时的参考依据。 “累计带宽”是一种要比“累积跳数”更科学的计算方式。


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun    暗号:CSDN】

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

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

相关文章

Python保存为json中文Unicode乱码解决json.dump()

保存为json中文Unicode乱码: 可以看到,中文字符没有乱码,只是出现了反斜杠,此时解决方法应考虑是否进行了二次序列化。 一、原因1 在dump时加入ensure_asciiFalse 即可解决,即json.dump(json_data, f, indent4, en…

VSCode小技巧,忽略不想格式化的代码行

零.格式化工具文档 1 . Black Ignoring sections功能 2 . autopep8 disabling-line-by-line功能;;–line-range选项 3 . Prettier prettier-ignore功能(例:适用于JS的// prettier-ignore,适用于CSS的/* prettier-igno…

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第29课-会员制展厅

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第29课-会员制展厅 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&…

前端Vue小兔鲜儿电商项目实战Day02

一、Pinia快速入门 此处见:Vue从入门到实战Day12-CSDN博客 二、创建项目并精细化配置 1. 创建项目 2. src目录调整 ①删除一些初始化的默认文件 清空assets、components、store、views文件夹下的内容; ②修改剩余代码内容 router/index.js import …

常用图像分类预训练模型大小及准确度比较

近年来,深度学习技术的发展使得图像分类任务变得越来越容易。预训练模型的出现更是使得图像分类任务变得更加简单和高效。然而,随着预训练模型的数量和大小的增加,我们需要了解每个模型的特点和优缺点,以便更好地选择和使用它们。…

TalkingData数据统计

一、简介 TalkingData是一家提供移动应用数据统计和分析的公司,专注于移动应用数据的收集、分析和可视化。TalkingData通过收集应用程序的用户行为数据,如应用下载量、用户留存率、用户活跃度等,帮助开发者了解用户行为趋势、优化应用功能、…

甩掉接口文档烦恼!Spring Boot 集成 Knife4j,轻松玩转 API 可视化

一、引言:跟接口文档说拜拜 👋 作为一名 Java 开发者,你是否还在为编写繁琐的 API 文档而头疼?传统的手动编写方式不仅耗时费力,而且容易出错,难以维护。今天,我们就来介绍一款神器 Knife4j&am…

力扣:101. 对称二叉树

101. 对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false提示: …

国产可视化爬虫助力AI大模型训练:精准爬取汉语词典

大语言模型,可以生成流畅对话的会话聊天机器人、通畅起草文章的内容生成器。在炫酷技术的背后,数据、算力、算法,被视作生成式AI的三个核心要素。由此可见,高质量的训练数据对于AI算法的准确性至关重要。 如何获得高质量的训练数…

【UE 反射】反射的原理是什么?如何使用机制?

目录 0 拓展0.1 静态类型检查0.1.1 静态类型检查的主要原理0.1.2 编译器的工作流程0.1.3 静态类型检查的优点和缺点0.1.4 示例0.1.5 C也可以在运行时类型检查RTTI基本原理RTTI的实现RTTI的工作流程RTTI的限制 0.2 运行时动态类型检查0.2.1 主要特点0.2.2 动态类型检查的实现0.2…

跨境人必读:X(原Twitter)和Facebook区别是什么?

在今日全球化的商业环境中,跨境电商领域的企业和独立站卖家正逐渐认识到社交媒体营销的巨大潜力。特别是X(原Twitter)和Facebook,作为领先的社交媒体平台,它们的使用不仅能够提升品牌知名度,还能直接影响销…

Facebook:连接世界,畅游社交之旅

作为全球最大的社交平台之一,Facebook不仅仅是一个网站,更是一个连接世界的桥梁,让人们可以轻松地与全球各地的朋友、家人和同事保持联系,分享生活、交流想法,畅游社交的无边界之旅。本文将带领读者探索Facebook的魅力…

美团拼好饭小程序mtgsig1.2分析(补环境分析)

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872 本文章未…

UG NX二次开发(C#)-UFun函数-利用UFPart.Export导出模型中的对象并创建一个新的part

文章目录 1、前言2、UF_PART_export函数定义3、UF_PART_export_with_options函数定义4、代码1、前言 在UG NX 10.0二次开发中,需要用到将装配体中通过几何建模创建的对象独立创建一个part文件,所以查找了下UFun函数,即是UF_PART_export 和UF_PART_export_with_options两个函…

618手把手教你捡漏服务器

618最全捡漏攻略 捡漏规则1、新人优惠⭐⭐⭐2、教育优惠⭐⭐3、回馈活动⭐️ ECS价格对比新人优惠💝京东云 50/年百度云 60.69/年阿里云 82/年腾讯云 99/年 回馈活动🎁阿里云 教育优惠🏫阿里云腾讯云 hi,好久不见各位,…

01_Spring Ioc(详解) + 思维导图

文章目录 一.概念实操Maven父子工程 二. IOC和DI入门案例【重点】1 IOC入门案例【重点】问题导入1.1 门案例思路分析1.2 实现步骤2.1 DI入门案例思路分析2.2 实现步骤2.3 实现代码2.4 图解演示 三、Bean的基础配置问题导入问题导入1 Bean是如何创建的【理解】2 实例化Bean的三种…

图解PHP MySQL:轻松掌握服务器端Web开发

在当今数字化时代,Web开发成为了一个炙手可热的领域,而PHP和MySQL作为Web开发领域的两大基石,其重要性不言而喻。对于初学者和寻求深化理解的开发者而言,一本好的教材就如同灯塔一般,指引着他们前行。《图解PHP & …

用于水利工程系统方面的传感器M-A542VR10

近几年快速发展的IC技术和计算机技术,为传感器的发展提供了良好与可靠的科学技术基础。使传感器的发展日新月益,且数字化、多功能与智能化是现代传感器发展的重要特征爱普生也在不断发展自己的传感器型号。随着水利工程技术的不断进步,传感器…

【Numpy】深入解析numpy中的split方法

NumPy中的split方法:深入理解与实际应用 🌈 欢迎莅临我的个人主页👈这里是我深耕Python编程、机器学习和自然语言处理(NLP)领域,并乐于分享知识与经验的小天地!🎇 🎓 博主…

使用Jmeter进行性能测试的基本操作方法

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…