热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数通基础动态路由协议RIP

RIP协议RIP(RoutingInformationProtocol,路由信息协议)是一种内部网关协议(IGP),是一种
RIP协议

RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度,16跳不可达)之内,再远,它就不关心了。RIP应用于OSI网络七层模型的应用层。

  • RIP(Routing Information Protocols,路由信息协议)。

  • 是应用较早的内部网关协议(IGP)。

  • 适用于小型网络,是典型的距离矢量协议。

  • RIP基于UDP,端口520。

  • 华为定义的优先级是100,思科定义的优先级(管理距离)是120。

  • RIP有三个版本:RIPv1、RIPv2及RIPng。


路由协议的分类


  • 直连路由:路由器直连接口所在的网段,当接口物理状态及协议状态都UP时自动学习该直连路由到路由表。
  • 静态路由:根据数据访问需求,手工在设备上配置的路由条目。
  • 动态路由:路由器自动进行路由信息的更新和同步,并且当网络拓扑变更时,能够自动收敛。

动态路由协议的分类

在这里插入图片描述

距离矢量路由选择协议

使用距离矢量路由协议的路由器并不了解网络的拓扑。该路由器只知道:

  • 自身与目的网络之间的距离。

  • 应该往哪个方向或使用哪个接口转发数据包。

在这里插入图片描述

特点:

  • 周期性地更新(广播)整张路由表。
  • 距离:到达目标网络的度量值。
  • 方向:去往目标网络的下一跳路由器。

工作原理


路由建立

路由器运行RIP后,会首先发送路由更新请求,收到请求的路由器会发送自己的RIP路由进行响应;网络稳定后,路由器会周期性发送路由更新信息。

  • 开始只有直连路由

在这里插入图片描述

  • 初次路由信息交换

在这里插入图片描述

  • 路由收敛完成

在这里插入图片描述

距离矢量的计算

RIP度量的单位是跳数,其单位是1,也就是规定每一条链路的成本为1,而不考虑链路的实际带宽、时延等因素,RIP最多允许15跳。所谓的跳数指的是去往目标网络所需要经过的路由器个数。

在这里插入图片描述

RIP利用度量来表示它和所有已知目的地间的距离。

当一个RIP更新报文到达时,接收方路由器和自己的RIP路由表中的每一项进行比较,并按照距离矢量路由算法对自己的RIP路由表进行修正。

定时器


  • 更新定时器(Update timer):用来激发RIP路由器路由表的更新,每个RIP节点只有一个更新定时器,设为30s。每隔30s路由器会通过udp520端口向其邻居广播自己的路由表信息。每个RIP路由器的定时器都独立于网络中其他路由器,因此它们同时广播的可能性很小。

  • 老化定时器(Age timer):用来判定某条路由是否可用。每条路由有一个超时定时器,设为180s。当一条路由激活或更新时,该定时器初始化,如果在180s之内没有收到关于那条路由的更新,则将该路由度量值置为16,并启动垃圾收集定时器。

  • 垃圾收集定时器(Garbage-collect timer):用来判定是否清除一条路由。每条路由有一个垃圾收集定时器,设为120s。当路由器认识到某条路由无效时,就初始化一个定时器,如果在120s内还没收到这条路由的更新,就从路由表中将该路由删除。

  • 抑制定时器(Suppress timer):当RIP设备收到对端路由更新,度量值cost为16,则对应路由条目进入抑制状态,并启动抑制定时器,缺省180s。为了防止路由震荡(路由不稳定),在抑制定时器超时之前,即使收到对端cost小于16的路由,也不接受;等待抑制计时器超时,重新学习该路由条目。

三个定时器的关系

​ IP 的更新信息发布是由更新定时器控制的,默认为每30 秒发送一次。

​ 每一条路由表项对应两个定时器:老化定时器和垃圾收集定时器。当学到一条路由并添加到路由表中时,老化定时器启动。如果老化定时器超时,设备仍没有收邻居发来的更新报文,则把该路由的度量值置为16(表示路由不可达),并启动垃圾收集定时器。如果垃圾收集定时器超时,设备仍然没有收到更新报文,则在路由表中删除该条目。

(1)如果在没有触发更新的前提下,一个路由表项最多需要300秒才能被删除(老化时间+垃圾收集时间)。
(2)如果存在触发更新,那么一个路由条目最多需要180秒才能被删除(即为老化时间)。

环路

当网络发生故障时,RIP网络有可能产生路由环路。可以通过水平分割、毒性反转、触发更新、抑制时间等技术来避免环路的产生。

下一跳

在这里插入图片描述

下一跳特性使得RIP在多路访问网络中能够选择最优的下一跳。在上图中,R1将2.0.0.0/8路由引入RIP,通过RIP通告给R3,在其发送RIP路由时,将下一跳字段设置为192.168.123.2,如此一来,R3收到路由后,将2.0.0.0/8安装进路由表时,将下一跳设置为R2(而不是R1)。

Silent-Interface

静默端口

在这里插入图片描述

  • R1连接着192.168.1.0/24网段,该网段中都是终端设备,并无其他RIP路由器,通过执行silent-interface命令,将GE0/0/1接口配置为静默接口,从而抑制RIP接口向外发送报文,如此一来,主机不会再收到RIP报文,减少了资源及网络带宽损耗。

  • 如果一个接口被抑制,该接口所在网段的直连路由仍然可以发布给其它接口。


报文格式


RIPv1报文格式

在这里插入图片描述

RIPv2报文格式

在这里插入图片描述

  • command字段:占1个字节,取值为2时表示该报文是一个回应报文。其中包含路由信息。

  • version字段:占1个字节,取值为2时表示RIPv2。

  • address Family字段:占2个字节,ipv4取值为2。

  • route tag字段:占2个字节,标记外部重分发进RIPv2中的路由

  • ip address字段:占4个字节,表示路由的目的地址,该地址是网络地址。

  • netmask字段:占4个字节,是子网掩码,RIPv2是有类别的,所以有这个字段。

  • next hop字段:占4个字节,它表示一个比通告路由器的地址更好的下一跳。如果这个字段设置为0.0.0.0说明通告路由器的地址就是最优的下一跳。

  • metric字段:占4个字节,指度量值,在RIP中就是跳数。


RIP版本区别

RIPv1

  • RIPv1是有类别路由协议(ABCED五类网络),不支持VLSM和CIDR

  • 以广播的形式发送报文

  • 不支持认证

RIPv2

  • RIPv2为无类别路由协议,支持VLSM,支持路由聚合与CIDR

  • 支持以广播或者组播(224.0.0.9)方式发送报文

    组播发送报文的好处是在同一网络中那些没有运行RIP的网段可以避免接受RIP的网段可以避免接受RIP的广播报文;另外,组播发送报文还可以使运行RIPv1协议的网段避免错误接受和处理RIPv2中带有子网掩码的路由

  • 支持外部路由标记(Route Tag),可以在路由策略中根据Tag对路由进行灵活的控制。

  • 支持指定下一跳,在广播网上可以选择到目的网段最优下一跳地址。

  • 支持明文和md5密文认证

  • 更新中携带掩码


Route Preference

路由器通过多种不同的路由协议发现去往同一个目的网络的路由时,会选择路由优先级(Preference)值最小的路由;如果这些路由学习自相同的路由协议,则优选度量值(Metric)最优的。

华为厂商标准

路由协议或路由种类路由优****先级
DIRECT0
OSPF10
IS-IS15
STATIC60
RIP100
OSPF ASE150
OSPF NSSA150
IBGP255
EBGP255

环路的产生

在这里插入图片描述

3.0.0.0/8的网络故障,R3收到故障信息,将这条路由设置为不可达,等待更新周期来通知相邻的R2路由器。

在这里插入图片描述

如果自己的更新周期还没来,R2路由器的更新周期先来了,R1就会从R2中重新学到3.0.0.0/8的路由,即错误的路由。这里的度量值,也就是跳数会+1。

在这里插入图片描述

然后继续相互通告学习,形成环路,不断的累加跳数。

防环机制

为了防止RIP路由在网络中被无限泛洪从而跳数累加到无穷大,RIP规定:路由的最大跳数为15跳,也就是如果度量值大于等于16跳则被视为不可达;

最大跳数的设定虽然解决了度量值技术到无穷大的问题,但是却也极大地限制了RIP所能支持的网络的规模。

  • 水平分割(Split Horizon),原理是,RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。

在这里插入图片描述

  • 毒性反转(Poison Reverse),原理是,RIP从某个接口学到路由后,从原接口发回邻居路由器,并将该路由的开销设置为16(即指明该路由不可达)。利用这种方式,可以清除对方路由表中的无用路由。(开启毒性反转,水平分割失效)

在这里插入图片描述

  • 毒性路由 RoutePoisoning,是指在路由信息在路由表中失效时,先将度量值变为无穷大,(等待老化时间)而不是马上从路由表中删掉这条路由信息。(这句话要理解,如RIP协议中,其度量值变为16,意味着路由不可达)再将其信息发布出去,这样相邻的路由器就得知这条路由己无效了…

在这里插入图片描述

  • 触发更新,是指当路由信息发生变化时,立即向邻居设备发送触发更新报文,而不用等待更新定时器超时,从而避免产生路由环路。

在这里插入图片描述

基本配置

启动RIP进程,并进入RIP配置视图:
[Router] rip 1
在指定网段使能RIP(RIP只支持classful网络宣告):
[Router-rip-1] network 192.168.12.0
指定RIP的版本(默认为版本1):
[Router-rip-1] version 2

在宣告网络时必须是有类路由,不过RIPv2发送路由更新的数据包中是无类路由并且会携带掩码信息

如通告10.0.0.0的路由

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

配置:

[AR1]rip 1
[AR1-rip-1]version 2
[AR1-rip-1]network 192.168.1.0
[AR1-rip-1]network 192.168.12.0
[AR2]rip 1
[AR2-rip-1]version 2
[AR2-rip-1]network 192.168.12.0
[AR2-rip-1]network 192.168.23.0
[AR3]rip 1
[AR3-rip-1]version 2
[AR3-rip-1]network 192.168.23.0
[AR3-rip-1]network 192.168.2.0

查看路由信息

在这里插入图片描述

pc1测试连通性

在这里插入图片描述


推荐阅读
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了一个Python函数same_set,用于判断两个相等长度的数组是否包含相同的元素。函数会忽略元素的顺序和重复次数,如果两个数组包含相同的元素,则返回1,否则返回0。文章还提供了函数的具体实现代码和样例输入输出。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有