当前位置: 首页 > news >正文

RIP 技术深度解析

一、RIP 概述​

1.1 定义与定位

        RIP 是 Routing Information Protocol (路由信息协议)的简称。它是一种较为简单的内部网关协议 IGP Interior Gateway Protocol ),主要应用于规模较小的网络中。对于更为复杂的环境和大型网络,一般不使用 RIP 协议。
        RIP 是一种基于距离矢量( Distance-Vector )算法的协议,它通过 UDP 报文进行路由信息的交换,使用的端口号为 520
        RIP 使用跳数(Hop Count )来衡量到达目的地址的距离,称为度量值。在 RIP 中,缺省情况下,设备到与它直接相连网络的跳数为 0 ,通过一个设备可达的网络的跳数为 1 ,其余依此类推。也就是说,度量值等于从本网络到达目的网络间的设备数量。为限制收敛时间, RIP 规定度量值取 0 15 之间的整数,大于或等于 16 的跳数被定义为无穷大,即目的网络 或主机不可达。由于这个限制,使得 RIP 不可能在大型网络中得到应用。
        为提高性能,防止产生路由循环,RIP 支持水平分割 和毒性逆转 功能。

1.2 发展历程​

        RIP 经历了多个版本的演进。最初的 RIP 版本存在诸多局限性,如不支持可变长子网掩码(VLSM)、以广播形式发送路由更新等。随着网络技术的发展,RIP 版本 2(RIPv2)应运而生,它引入了支持 VLSM、组播更新(224.0.0.9)等功能,有效提升了协议的实用性和灵活性,在一定程度上满足了更复杂网络环境的需求。

二、各版本特点

2.1 RIP-1 特点?

        RIP-1(即 RIP version1 )是有类别路由协议( Classful Routing Protocol ),它只支持以广 播方式发布协议报文,报文格式如 图1 所示。在一个 RIP 报文中,最多可以有 25 个路由 项。 RIP 是一个基于 UDP 协议的,并且 RIP-1 的数据包不能超过 512 字节。 RIP-1 的协议报 文中没有携带掩码信息,它只能识别 A B C 类这样的自然网段的路由,因此 RIP-1 无法支 持路由聚合,也不支持不连续子网( Discontiguous Subnet )。
1 RIP-1 的报文格式

2.2 RIP-2 特点?

        RIP-2(即 RIP version2 )是一种无分类路由协议( Classless Routing Protocol ),报文格式
2 所示。
2 RIP-2 的报文格式

RIP-1 相比,RIP-2 有以下优势:

       1. 支持外部路由标记(Route Tag ),可以在路由策略中根据 Tag 对路由进行灵活的控
制。
       2. 报文中携带掩码信息,支持路由聚合和 CIDR Classless Inter-Domain Routing )。
       3.支持指定下一跳,在广播网上可以选择到最优下一跳地址。
       4.支持组播路由发送更新报文,只有支持 RIP-2 的设备才能收到协议报文,减少资源消
耗。
       5.支持对协议报文进行验证,并提供明文验证和 MD5 验证两种方式,增强安全性。
        RIP-2 有两种报文传送方式:广播方式和组播方式,缺省将采用组播方式发送报文,使用
的组播地址为 224.0.0.9 。当接口运行 RIP-2 广播方式时,也可接收 RIP-1 的报文。

RIP 定时器有哪些?

3.1 主要使用三个定时器:

         更新定时器(Update timer):它定时触发更新报文的发送,更新周期默认为 30 秒。
        老化定时器(Age timer):RIP 设备如果在老化时间内没有收到邻居发来的路由更新报文,则认为该路由不可达。180s。
        垃圾收集定时器:如果在垃圾收集时间内不可达路由没有收到来自同一邻居的更新,则该路由将被从路由表中彻底删除。120s。

3.2 三个定时器之间的关系:

        RIP 的更新信息发布是由 Update 定时器控制的,默认为每 30 秒发送一次。每一条路由 表项对应两个定时器:老化定时器和垃圾收集定时器。当学到一条路由并添加到路由表中 时,老化定时器启动。如果在默认 180 秒后没有收到邻居发来的更新报文,则把该路由的度量值置为 16(表示路由不可达),并启动垃圾收集定时器,如果在默认 120 秒内仍然没有 收到更新报文,垃圾收集定时器超时后在路由中删除该表项。  

3.3 华三设备RIP定时器技术:

        通过调整 RIP 定时器可以改变 RIP 网络的收敛速度。
        RIP 受四个定时器的控制,分别是 Update Timeout Suppress Garbage-Collect 。缺省情况下,Garbage-collect 定时器的值为 120 秒, Suppress 定时器的值为 120 秒, Timeout 定时
器的值为 180 秒, Update 定时器的值为 30
        Update 定时器,定义了发送路由更新的时间间隔。
        Timeout 定时器,定义了路由老化时间。如果在老化时间内没有收到关于某条路由的更新报
文,则该条路由在路由表中的度量值将会被设置为 16
        Suppress 定时器,定义了 RIP 路由处于抑制状态的时长。当一条路由的度量值变为 16 时,
该路由将进入抑制状态。在被抑制状态,只有来自同一邻居且度量值小于 16 的路由更新才会被路由器接收,取代不可达路由。
        Garbage-Collect 定时器,定义了一条路由从度量值变为 16 开始,直到它从路由表里被删除
所经过的时间。在 Garbage-Collect 时间内, RIP 16 作为度量值向外发送这条路由的更新,如果 Garbage-Collect 超时,该路由仍没有得到更新,则该路由将从路由表中被彻底删除。

四、RIP的一些运行机制

4.1 水平分割

        水平分割(Split Horizon )指的是 RIP 从某个接口学到的路由,不会从该接口再发回给邻居设备。这样不但减少了带宽消耗,还可以防止路由环路。
  图 3 水平分割原理图
        如 3 所示, RouterB 目的地址是 10.0.0.0 的路由信息通告给 RouterA 后, RouterA 不会
再把到网络 10.0.0.0 的路由发回给 RouterB

4.2 毒性逆转

        毒性逆转(Poison Reverse )指的是 RIP 从某个接口学到路由后,将该路由的开销设置为 16 (即指明该路由不可达),并从原接口发回邻居设备。利用这种方式,可以清除对方路由表中的无用路由。
        RIP 毒性逆转可以防止产生路由环路。
4 毒性逆转原理图
        如 4 所示,在不配置水平分割的情况下, RouterB 会向 RouterA 发送从 RouterA 学到 的路由,并且 RouterA 到网络 10.0.0.0 的路由开销值为 1 。如果 RouterA 到网络 10.0.0.0 的 路由变成不可达,同时 RouterB 没有收到 RouterA 的更新报文,而继续向 RouterA 发送到达网络 10.0.0.0 路由信息,则会导致路由环路。
        如果 RouterA 在接收到从 RouterB 发来的路由后,向 RouterB 发送一个这条路由不可达的消息,这样 RouterB 就不会再从 RouterA 学到这条可达路由,因此就可以避免上述环路的发生。

注意:如果毒性逆转和水平分割都配置了,简单的水平分割行为(从某接口学到的路由再从这

个接口发布时将被抑制)会被毒性逆转行为代替。

4.3触发更新

        触发更新的原理是,路由信息发生变化时,立即向邻居设备发送触发更新报文,通知变化的路由信息。
        触发更新缩短了收敛时间,触发更新可以缩短网络收敛时间,在路由表项变化时立即向其他设备广播该信息,而不必等待定时更新。
5 触发更新原理图
        如 5 所示,网络 11.4.0.0 不可达时, RouterC 最先得到这一信息。通常,更新路由信息会定时发送给相邻 Router RIP 协议每隔 30 秒发送一次)。但如果在 RouterC 等待更新周期到来的时候,RouterB 的更新报文传到了 RouterC RouterC 就会学到 RouterB 的去往网络11.4.0.0 的错误路由。这样 RouterB RouterC 上去往网络 11.4.0.0 的路由都指向对方从而形成路由环路。如果 RouterC 发现网络故障之后,不再等待更新周期到来,就立即发送路由更新信息给路由器 B ,使路由器 B 的路由表及时更新,则可以避免产生上述问题。
        触发更新还存在另外一种方式:当下一跳不可用之后(如因为链路故障)需要及时通告给其它设备,此时要把该路由的 cost 设置为 16 然后发布出去,此更新也叫做路由毒杀/路由毒害

RIP 如何做路由聚合?

       路由聚合的原理是,同一个自然网段内的不同子网的路由在向外(其它网段)发送时聚合成一个网段的路由发送。RIP-1 的协议报文中没有携带掩码信息,故 RIP-1 发布的就是自然掩码的路由。RIP-2 支持路由聚合,因为 RIP-2 报文携带掩码位,所以支持子网划分。在 RIP-2 中进行路由聚合可提高大型网络的可扩展性和效率,缩减路由表。
路由聚合有两种方式:
        基于 RIP 进程的有类聚合:
        比如,对于 10.1.1.0/24 metric=2 )和 10.1.2.0/24 metric=3 )这两条路由,会聚合成
自然网段路由 10.0.0.0/8 metric=2 )。 RIP Version2 聚合是按类聚和的,聚合得到最优的
metric 值。
        基于接口的聚合:
        用户可以指定聚合地址。
        比如,对于 10.1.1.0/24 metric=2 )和 10.1.2.0/24 metric=3 )这两条路由,可以在此
接口上配置聚合路由 10.1.0.0/16 metric=2 )。

RIP 的运行过程?

RIP 的运行过程如下:
        (1)路由器启动 RIP 后,便会向相邻的路由器发送请求报文( Request message ),相邻的
RIP 路由器收到请求报文后,响应该请求,回送包含本地路由表信息的响应报文( Response message)。
        (2)路由器收到响应报文后,更新本地路由表,同时向相邻路由器发送触发更新报文, 通告路由更新信息。相邻路由器收到触发更新报文后,又向其各自的相邻路由器发送触发更 新报文。在一连串的触发更新广播后,各路由器都能得到并保持最新的路由信息。
        (3)路由器周期性向相邻路由器发送本地路由表,运行 RIP 协议的相邻路由器在收到报文后,对本地路由进行维护,选择一条最佳路由,再向其各自相邻网络发送更新信息,使更新的路由最终能达到全局有效。同时,RIP 采用老化机制对超时的路由进行老化处理,以保证路由的实时性和有效性。

对路由信息控制技术?

7.1 配置接口附加度量值:

附加度量值是在 RIP 路由原来度量值的基础上所增加的度量值(跳数),包括发送附加度量值和接收附加度量值
发送附加度量值:不会改变路由表中的路由度量值,仅当接口发送 RIP 路由信息时才会添加到发送路由上。
接收附加度量值:会影响接收到的路由度量值,接口接收到一条合法的 RIP 路由时,在将其加入路由表前会把度量值附加到该路由上,当附加度量值与原路由度量值之和大于 16,该条路由的度量值取 16

7.2 配置 RIP-2 路由聚合:

RIP-2 将多条路由聚合成一条路由时,聚合路由的 Metric 值将取所有路由 Metric 的最小值。

7.3 在 RIP-2 中,有两种路由聚合方式:

自动路由聚合和手工配置聚合路由

7.4 禁止 RIP 接收主机路由

        禁止接收主机路由仅对 RIPv2 有效,对 RIPv1 无效。
        在某些特殊情况下,路由器会收到大量来自同一网段的主机路由。这些路由对于路由寻址没有多少作用,却占用了大量的资源,此时可配置 RIP 禁止接收主机路由,以节省网络资源。

7.5 配置 RIP 发布缺省路由

用户可以配置 RIP 以指定度量值向邻居发布一条缺省路由。

7.6 配置 RIP 对接收/发布的路由进行过滤

路由器提供路由信息过滤功能,通过指定地址前缀列表,可以配置入口或出口过滤策略,对接收和发布的路由进行过滤。在接收路由时,可以指定只接收来自某个邻居的 RIP 报文。

7.7 配置 RIP 协议优先级

在路由器中可能会运行多个 IGP 路由协议,如果想让 RIP 路由具有比从其它路由协议学来的路由更高的优先级,需要配置小的优先级值。优先级的高低将最后决定 IP 路由表中的路由是通过哪种路由算法获取的最佳路由。

7.8 配置 RIP 引入外部路由

如果在路由器上不仅运行 RIP ,还运行着其它路由协议,可以配置 RIP 引入其它协议生成的路由,如 OSPF IS-IS BGP 、静态路由或者直连路由。

代码

R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#network 192.168.1.0
R1(config-router)#network <R1与R2连接的网络地址>

http://www.dtcms.com/a/263914.html

相关文章:

  • 文心一言开源版测评:能力、易用性与价值的全面解析
  • [创业之路-457]:企业经营层 - 蓝海战略 - 价值创新不仅仅是技术创新
  • Java项目:基于SSM框架实现的智慧养老平台管理系统【ssm+B/S架构+源码+数据库+毕业论文】
  • 大麦基于HarmonyOS星盾安全架构,打造全链路安全抢票方案
  • 【机器学习深度学习】模型微调的基本概念与流程
  • 06会话管理
  • 前端计算机视觉:使用 OpenCV.js 在浏览器中实现图像处理
  • 量化选股策略 聚宽
  • 如何利用Charles中文版抓包工具提升API调试与网络性能
  • 二刷 苍穹外卖day10(含bug修改)
  • 如何使用StartUML绘制类图,用例图,时序图入门
  • 转录组分析流程(二):差异分析
  • MySQL MVCC 详解
  • ChatGPT使用限额记录与插件统计
  • 杭州来未来科技 Java 实习面经
  • [C#] WPF - 自定义样式(Slider篇)
  • 【Hive SQL优化完全指南:从0.x到4.x的性能进化之路】
  • c# IO密集型与CPU密集型任务详解,以及在异步编程中的使用示例
  • [2025CVPR]DE-GANs:一种高效的生成对抗网络
  • 微分几何、旋量理论、李群李代数、黎曼度量、微分流形、SE(3)、SO(3)
  • java微服务-linux单机CPU接近100%优化
  • Jenkins × 容器技术:构建未来DevOps生态的超级引擎
  • 插入排序解析
  • C++ dll lib 以及编译链接加载的底层机制
  • 【从历史数据分析英特尔该如何摆脱困境】
  • 跨境证券交易系统合规升级白皮书:全链路微秒风控+开源替代,护航7月程序化交易新规落地
  • 手工部署与自动化部署场景模拟及参考项目
  • 数据结构与算法 第二章 线性表
  • Disruptor架构哲学
  • 【算法 day13】LeetCode 110.平衡二叉树 | 257. 二叉树的所有路径| 404.左叶子之和 |222.完全二叉树的节点个数