RIP 概述


RIP 特征

RIP(Routing Information Protocols,路由信息协议)是由 Xerox 在 20 世纪 70 年代开发的协议,最初在 RFC 1058 中定义。每台具有 RIP 功能的路由器默认情况下每隔 30 秒利用 UDP 520 端口向与它直连的网络邻居广播(RIPv1)或组播(RIPv2)路由更新信息

RIP 协议分为版本 1 和版本 2 。不论版本 1 或版本 2,都具备下面共同的特征。

  1. 是最早出现的距离矢量路由协议
  2. 使用跳数(Hop Count)作为度量值,度量值的最大跳数为 15 跳
  3. 默认时路由更新周期为 30 秒
  4. 管理距离(AD)为120
  5. 支持触发更新,支持等价路径
  6. RIP 数据包源端口和目的端口都使用UDP 520 端口进行操作,在没有验证的情况下,一个 RIP 更新数据包最大可以包含 25 个路由条目,数据包最大为 512 字节(UDP 包头8字节 + RIP 包头 4 字节 + 路由条目25 X 20 字节)


由于运行 RIP 路由器不知道网络的全局情况,因此路由器必须依靠相邻的路由器来获得网络的科大信息。由于周期性路由更新信息在网络上传播较慢,这将会导致网络收敛速度较慢,而且可能造成路由环路(Routing Loop),RIP 通过下面 5 个机制来避免路由环路

  1. 水平分割(Split Horizon):水平分割保证路由器记住每一条路由信息的来源,并且不在收到这条信息的接口上再次发生它。这是保证不产生环路的最基本措施
  2. 毒性逆转(Poison Reverse):从一个接口学习的路由会发送回该接口,但是已经被毒化了,即跳数被设置为 16 跳,可以消除对方路由表中的无用路由信息的影响
  3. 定义最大跳数(Defining a Maximum Count):RIP 的度量值是基于跳数(Hop)的,每经过一台路由器,路径的跳数加一。如此一来,跳数越多,路径就越长,RIP 算法会优先选择跳数少的路径。RIP 支持最大跳数是 15,跳数为 16 的网络被认为不可达
  4. 触发更新(Triggered Update):当路由表发生变化时,更新信息会立即发送给相邻的所有路由器,而不是等待 30 秒的更新周期。因而确保网络拓扑的变化会最快地在网络上传播开,减少了路由环路产生的可能性
  5. 抑制计时(Holddown Timer):一条路由不可达之后,一段时间内这条路由都处于抑制状态,即在一定时间内不再接收关于同一目的地址的路由更新信息,除非有更好的路径。因为路由器从一个网段上得知一条路径失效,然后立即在另一个网段上得知这个路由有效,这个有效信息往往是不正确的,抑制计时避免了这个问题,而且当一条链路频繁变化时,抑制计时减少了路由的翻动,增加了网络的稳定性

RIPv1 和 RIPv2 比较

RIPv1 是有类路由协议,RIPv2 是无类路由协议,RIPv1 和 RIPv2 的区别如下表所示

Cisco路由交换学习指南01_RIP路由协议_RIP

RIPv1 与 RIPv2 的数据包格式如图 1 所示。RIPv2 与 RIPv2 的基本数据包格式相同,但RIPv2 添加了 3 项重要扩展,分别为子网掩码,路由标记和下一跳,各个字段含义如下所述

Cisco路由交换学习指南01_RIP路由协议_路由协议_02

  1. 命令:取值为 1 或 2,1 表示请求信息,2 表示消息响应
  2. 版本:对于 RIPv1,该字段值为1,对于 RIPv2,该字段值为2
  3. 地址类型标识符:对于 IP 地址该项设置为 2.当数据包是对路由器(或主机)整个路由选择表的请求时,这个字段将被设置为 0
  4. 路由标记:提供这个字段来标记外部路由或重分配到 RIPv2 协议中的路由
  5. IP 地址:路由条目的目的地址,可以是主类网络地址、子网地址或主机路由
  6. 子网掩码:是一个确认 IP 地址的网络或子网部分的 32 位掩码
  7. 下一跳:如果存在的话,它标识一个比通告路由器的地址更好的的下一跳地址。也就是说它指出的下一跳地址,其度量值比同一子网上的通告路由器更靠近目的地。如果这个字段设置全为0(0.0.0.0),说明通告路由器的地址就是最好的下一跳地址
  8. 度量:跳数,取值范围为 1~16



配置 RIP

1、实验目的

  • 了解RIP的配置
  • 比较RIPv1和RIPv2

2、实验拓扑

Cisco路由交换学习指南01_RIP路由协议_动态路由_03

3、IP地址规划

IOU1

e0/0:192.168.12.1/24

loopback 0:192.168.1.1/24

loopback 1:172.16.1.1/24

IOU2

e0/0:192.168.12.2

e0/1:192.168.23.2

loopback 0:192.168.2.1/24

loopback 1:172.16.2.1/24

IOU3

e0/0:192.168.23.3/24

loopback 0:192.168.3.1/24

loopback 1:172.16.3.1/24

4、配置过程

4.1基础配置

IOU1的基础配置

IOU1(config)#interface ethernet 0/0
IOU1(config-if)#ip address 192.168.12.1 255.255.255.0
IOU1(config-if)#no shutdown
IOU1(config-if)#exit
IOU1(config)#interface loopback 0
IOU1(config-if)#ip address 192.168.1.1 255.255.255.0
IOU1(config-if)#no shutdown
IOU1(config-if)#exit
IOU1(config)#interface loopback 1
IOU1(config-if)#ip address 172.16.1.1 255.255.255.0
IOU1(config-if)#no shutdown
IOU1(config-if)#exit

IOU2的基础配置

IOU2(config)#interface ethernet 0/0
IOU2(config-if)#ip address 192.168.12.2 255.255.255.0
IOU2(config-if)#no shutdown
IOU2(config-if)#exit
IOU2(config)#interface ethernet 0/1
IOU2(config-if)#ip address 192.168.23.2 255.255.255.0
IOU2(config-if)#no shutdown
IOU2(config-if)#exit
IOU2(config)#interface loopback 0
IOU2(config-if)#ip address 192.168.2.1 255.255.255.0
IOU2(config-if)#no shutdown
IOU2(config-if)#exit
IOU2(config)#interface loopback 1
IOU2(config-if)#ip address 172.16.2.1 255.255.255.0
IOU2(config-if)#no shutdown
IOU2(config-if)#exit

IOU3的基础配置

IOU3(config)#interface ethernet 0/0
IOU3(config-if)#ip address 192.168.23.3 255.255.255.0
IOU3(config-if)#no shutdown
IOU3(config-if)#exit
IOU3(config)#interface loopback 0
IOU3(config-if)#ip address 192.168.3.1 255.255.255.0
IOU3(config-if)#no shutdown
IOU3(config-if)#exit
IOU3(config)#interface loopback 1
IOU3(config-if)#ip address 172.16.3.1 255.255.255.0
IOU3(config-if)#no shutdown
IOU3(config-if)#exit

4.2 配置RIP协议

IOU1的配置

IOU1(config)#router rip 
IOU1(config-router)#network 192.168.1.0
IOU1(config-router)#network 172.16.0.0
IOU1(config-router)#network 192.168.12.0
IOU1(config-router)#exit

IOU2的配置

IOU2(config)#router rip 
IOU2(config-router)#network 192.168.12.0
IOU2(config-router)#network 192.168.23.0
IOU2(config-router)#network 192.168.2.0
IOU2(config-router)#network 172.16.0.0
IOU2(config-router)#exit

IOU3的配置

IOU3(config)#router rip 
IOU3(config-router)#network 192.168.23.0
IOU3(config-router)#network 192.168.3.0
IOU3(config-router)#network 172.16.0.0
IOU3(config-router)#exit

实验调试

IOU2上查看路由表

Cisco路由交换学习指南01_RIP路由协议_路由协议_04

分析

发现缺少了去往172.16.3.0的路由,此时抓包分析

Cisco路由交换学习指南01_RIP路由协议_路由协议_05

在IOU2上使用 命令查看

Cisco路由交换学习指南01_RIP路由协议_路由协议_06

现在的情况是IOU2收到的是172.16.0.0/16的路由后无法判断172.16.3.0的下一跳。

配置RIPv2以及关闭自动汇总

IOU1(config)#router rip 
IOU1(config-router)#version 2
IOU1(config-router)#no auto-summary
IOU1(config-router)#exit

抓包分析

Cisco路由交换学习指南01_RIP路由协议_Cisco_07

在IOU2上使用 命令查看,此时IOU1只接收和发送RIPv2版本的更新,导致IOU1无法学习其他路由器的路由

Cisco路由交换学习指南01_RIP路由协议_动态路由_08

Cisco路由交换学习指南01_RIP路由协议_动态路由_09

其他路由器也需要配置RIPv2及关闭自动汇总

IOU2的配置

IOU2(config)#router rip 
IOU2(config-router)#version 2
IOU2(config-router)#no auto-summary
IOU2(config-router)#exit

IOU3的配置

IOU3(config)#router rip 
IOU3(config-router)#version 2
IOU3(config-router)#no auto-summary
IOU3(config-router)#exit