RIPv2(RIP 第 2 版)是一个无类路由协议,在 RFC 1723 中可以找到其定义。尽管 RIPv2 路由协议适用于某些环境,但与 EIGRP、OSPF 以及 IS-IS 等路由协议相比,它显然处于劣势,不仅功能要少得多,扩展性也较差。
虽然没有其它路由协议应用广泛,但前后两个版本的 RIP 在某些场合仍然有其用武之地。尽管 RIP 的功能远远少于在它之后出现的协议,但它的简单性以及在多种操作系统上的广泛应用使得 RIP 非常适用于需要支持不同厂商产品的小型同构网络,尤其是 UNIX 环境。
无论您将来是否会应用到 RIPv2,您都必须了解此协议。我们将着重讲述有类路由协议 (RIPv1) 和无类路由协议 (RIPv2) 之间的差别。RIPv1 的主要局限性在于它是一种有类路由协议。如您所知,有类路由协议在路由更新中不包含子网掩码,因此在不连续子网或使用可变长子网掩码 (VLSM) 的网络中会造成问题。而 RIPv2 是无类路由协议,它会在路由更新中包含子网掩码,因此 RIPv2 对当今路由环境的适应性更强。
RIPv2 实际是对 RIPv1 的增强和扩充,而不是一种全新的协议。其中一些增强功能包括:
.路由更新中包含下一跳地址
.使用组播地址发送更新
.可选择使用检验功能
 
与 RIPv1 一样,RIPv2 也是距离矢量路由协议。这两个版本的 RIP 都存在以下特点和局限性:
.使用抑制计时器和其它计时器来帮助防止路由环路。
.使用带毒性反转的水平分割来防止路由环路。
.在拓扑结构发生变化时使用触发更新加速收敛。
.最大跳数限制为 15 跳,16 跳意味着网络不可达
 
 
ripv1的局限性-------不支持不连续的子网
 
 
环回接口
ripv2简介_第1张图片
注意 R3 使用了环回接口(Lo0、Lo1 和 Lo2)。环回接口是一种纯软件接口,用于模拟物理接口。与其它接口一样,我们也可以为环回接口指定 IP 地址。其它路由协议(例如 OSPF)也会出于各种各样的目的而使用环回接口。在实验环境中,环回接口非常有用,它可用来创建额外的网络而不需要在路由器上添加实际接口。环回接口可以 ping 通,其子网也可在路由更新中加以通告。因此,环回接口非常适合用来模拟连接到同一路由器的多个网络。在我们的示例中,R3 无需四个 LAN 接口就能演示多个子网和 VLSM,我们可以使用环回接口。
 
 
静态路由和空接口
ripv2简介_第2张图片
 
要在 R2 上配置静态超网路由,请使用以下命令:
 
R2(config)#ip route 192.168.0.0 255.255.0.0 Null0
您应该还记得,路由总结允许使用一个高级别路由条目来代表多条低级别路由,从而达到缩小路由表大小的目的。R2 上的静态路由使用 /16 掩码来总结从 192.168.0.0/24 到 192.168.255.0/24 的 256 个网络。
静态总结路由 192.168.0.0/16 代表的地址空间实际并不存在。为了模拟此静态路由,我们使用了一个空接口作为送出接口。您不需要使用任何命令来创建或配置空接口。它始终为开启状态,但不会转发或接收流量。发送到空接口的流量会被它丢弃。在本示例中,空接口将作为静态路由的送出接口,我们知道静态路由必须具有活动的送出接口才会被添加到路由表中。虽然属于总结网络 192.168.0.0/16 的网络实际并不存在,但有了这个空接口,R2 便能在 RIP 中通告此静态路由。
 
路由重分布
需要输入的第二条命令是 redistribute static 命令:
R2(config-router)#redistribute static
重分布是指获取来自某个路由源的路由,然后将这些路由发送到另一个路由源。在示例拓扑结构中,我们希望 R2 上的 RIP 过程重分布静态路由 (192.168.0.0/16),即将该路由导入 RIP,然后使用 RIP 过程发送给 R1 和 R3。稍后我们来看看这个重分布会不会在ripv1中产生作用。
当我们把这个拓扑图设计成ripv1的时候,经过测试我们发现
ripv2简介_第3张图片
ripv2简介_第4张图片
 
ripv2简介_第5张图片
 
 
我们可以看到172.30.0.0 不连续子网之间的通信显然存在问题。
 
下面我们来研究下为什么会出现这样的问题:
 
 
检查路由表
 
R2 在 ping 172.30.0.0 其中一个子网内的地址时,所得的结果并不一致。
ripv2简介_第6张图片
 
ripv2简介_第7张图片
 
您会看到 R2 包含两条到达 172.30.0.0/16 网络的等价路由。这是因为 R1 和 R3 都在向 R2 发送有关 172.30.0.0/16 有类网络且度量为 1 跳的 RIPv1 更新。由于 R1 和 R3 自动总结了子网,R2 的路由表中就只会包含 172.30.0.0/16 有类主网地址。
我们可以通过 debug ip rip 命令,在更新送出和到达时检查路由更新的内容。
ripv2简介_第8张图片
此命令的输出显示 R2 正在接收两条 172.30.0.0 等价路由(度量为 1 跳)。R2 在 Serial 0/0/0 接口上接收一条来自 R1 的路由,并在 Serial 0/0/1 上接收另一条来自 R3 的路由。注意,更新中没有随网络地址提供子网掩码。
R1 和 R3 又如何呢?它们是否收到了对方的 172.30.0.0 子网?
ripv2简介_第9张图片
在此我们可以看到 R1 具有自己的 172.30.0.0 路由:172.30.2.0/24 和 172.30.1.0/24。但 R1 没有向 R2 发送这些子网。R3 的路由表与之相似。R1 和 R3 都是边界路由器,只会在其 RIPv1 路由更新中向 R2 发送总结网络 172.30.0.0。结果,R2 只知道 172.30.0.0/16 有类网络,而不知道任何 172.30.0.0 子网。
ripv2简介_第10张图片
在 R2 的 debug ip rip 输出中,您会看到 172.30.0.0 网络并没有包含在其送往 R1 或 R3 的更新中。为什么没有呢?这是由于水平分割规则的作用。R2 从 Serial 0/0/0 和 Serial 0/0/1 接口获知 172.30.0.0/16。由于 172.30.0.0/16 是 R2 在这些接口上获知的,所以在通过这些接口发出的更新中不会包含此网络。