图解 RIP :这玩意儿可以自动生成路由?

Hi ,大家好,我是 Fox 。路由器能把全世界的网络连接起来,再根据路由表进行数据转发。路由表项可以手动配置添加,但是面对不计其数、而且动态变化的网络环境,手动添加路由表项显得不切实际,必须使用可以自动生成路由表项、动态感知网络变化的网络协议,那就是动态路由协议。要了解动态路由协议,就要从简单的 RIP 开始。下面先看下文章全貌图。

初识 RIP

RIP( Routing Information Protocol ,路由信息协议)是典型的距离矢量路由协议,常用在小型网络中,是最先广泛使用的 IGP 协议。RIP 的原理和机制比较简单,一直作为数通领域的入门动态路由协议。

之前写过一篇《 23 张图详解路由协议:计算机网络的核心技术》,对路由协议进行了介绍,有兴趣的读者可以先看看,了解下路由协议的全貌和基本概念。

运行 RIP

每台运行 RIP 的路由器,都有一个 RIP 数据库,里面存着路由器所有的 RIP 路由,包括路由器本身的直连路由,以及从其它路由器收到的路由。RIP 数据库的路由条目包含:目的网络地址/网络掩码、度量值、下一跳地址、老化计时器以及路由状态标识等信息。RIP 数据库中的有效路由条目才会添加到路由器的路由表中。

每台运行 RIP 的路由器都会定期的通告自己的路由表,当路由器收到 RIP 路由更新时,如果这些路由是自己路由表里没有的,并且是有效的,那么就把它添加到路由表中,同时设置路由的度量值和下一跳地址。

下面举个栗子,看下运行了 RIP 的路由器是如何完成路由信息的学习和收敛的。

1、路由器启动

R1 、R2 和 R3 三台路由器直连,三台路由器都已开启 RIP 。在启动路由器后,所有路由器自动发现自己的直连路由,并将直连路由添加到路由表中。比如:R1 的路由表中添加了 192.168.12.0/24 和 1.0.0.0/8 两条直连路由。直连路由的 RIP 度量值为 0 跳,0 跳表示到达这个网段不需要经过路由器。

2、第一次交换路由信息

运行了 RIP 的路由器会将自己的路由通过 RIP 报文周期性的从接口发送出去。第一次交换路由信息,R1 、R2 和 R3 都是通告自己的直连路由。R2 会将自己的路由表从 G0/0 和 G0/1 接口发送出去。以 192.168.23.0/24 为例,R2 从 G0/0 口发送给 R1 时,会将路由的度量值从 0 跳改为 1 跳,RIP 路由器将路由发送出去时会把跳数加 1 ,意思是要到达 192.168.23.0/24 需要经过一个 RIP 路由器。R1 收到 R2 发出的路由更新后,发现自己的路由表没有 192.168.23.0/24 这条路由,于是把这条路由添加到路由表中,路由的度量值为 1 跳,出接口设置为 G0/0 。

R3 也会收到 R2 的路由更新,R2 也会收到 R1 和 R3 发送的路由更新。经过第一轮的路由通告和学习,R1 学习到 192.168.23.0/24 的路由,R2 学习到 1.0.0.0/8 和 3.0.0.0/8 两条路由,R3 学习到 192.168.12.0/24 的路由。

3、路由收敛

来到下一个更新周期时,所有路由器又会把自己的路由发送出去。R1 收到 R2 通告的路由,发现 3.0.0.0/8 不在路由表中,R1 就把这条路由添加到路由表,度量值为 2 跳,表示 R1 到达 3.0.0.0/8 需要经过两个路由器。另一边的 R3 也从 R2 学到了 1.0.0.0/8 的路由。这样三台路由器就有了全网各个网段的路由,路由表也稳定下来,这个状态说明网络中的路由已经完成了收敛。网络收敛后,路由器还是会周期性的通告路由,确保路由的有效性。

RIP 相关概念

如果从单台 RIP 路由器上看,它只是监听直连 RIP 路由器的路由更新通告,学习路由,并加载到路由表中。同时,它也将自己路由表中的 RIP 路由通告出去,让其它直连的路由器能够学习到。实际上,路由器是不知道整个网络的拓扑结构的。

度量值

度量值是到达目的网络的代价。每一种路由协议都定义了路由的度量值,但是对度量值的定义不尽相同。度量值的大小会影响路由器到达目的网段的路由选择。

RIP 以跳数作为路由的度量值,跳数就是到达目的网络需要经过的路由器个数,跳数越少,路由越优。

路由器运行 RIP 后,认为直连路由的跳数为 0 。R1 的直连网段 1.0.0.0/8 的度量值是 0 。R1 从 G0/0 接口通告路由时,会把 1.0.0.0/8 的度量值 +1 后通告给 R2 。R2 收到后,将 1.0.0.0/8 路由学习过来,添加到路由表中,并将度量值设置为 1 。接着 R2 将 1.0.0.0/8 路由从 G0/1 接口通告出去,R2 将路由的度量值 +1 后通告给 R3 。R3 也学习到 1.0.0.0/8 路由,度量值为 2 。

RIP 使用跳数作为度量值,可以让路由器知道自己距离目的网络的跳数。在路由选择过程中,比较度量值选择一条最优路径,也就是跳数最小的路径添加到路由表中。

通过跳数来计算网络的路径非常简单和直观,但是也有个问题。如果网络链路带宽不一致,RIP 的路径选择可能不合理,因为 RIP 并不关注链路带

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值