《IP路由协议疑难解析》一2.6 RIP的运作方式
本节书摘来自异步社区《IP路由协议疑难解析》一书中的第2章,第2.6节,作者 【美】Zaheer Aziz, CCIE #4127 , Johnson Liu, CCIE #2637 , Abe Martey, CCIE #2373 , Faraz Shamim, CCIE #4131,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.6 RIP的运作方式
IP路由协议疑难解析
运行RIP的路由器在收发RIP路由更新消息时,会遵守一定的规则。本节将细述这些规则。
2.6.1 发送RIP路由更新时所要遵守的规则
发送RIP路由更新时,路由器会执行若干项检查。如图2-3所示,图中两台路由器都运行RIP。路由器1连接了两个主类网络131.108.0.0/16和137.99.0.0/16。主类网络131.108.0.0则被进一步划分为了两个子网:131.108.5.0/24和131.108.2.0/24,路由器2实际上只与后者直连。

图2-4所列为路由器1向路由器2发送RIP更新之前所要进行的检查。

运行RIP的路由器(以下简称RIP路由器)在发送路由更新时,会检查待通告的目的网络或目的子网与发送RIP数据包的接口(的IP地址)是否隶属同一主类网络。若否,RIP路由器在通告时会做自动聚合处理。这就是说,RIP路由器在其发送的路由更新消息中只会包含主类网络信息。试举一例,如图2-3所示,路由器1向路由器2发送RIP更新消息时,会自动将子网137.99.88.0聚合为137.99.0.0。若待通告的目的网络或目的子网与发送RIP数据包的接口(的IP地址)隶属同一主类网络,RIP路由器则要判断两者的子网掩码是否相同。若是,RIP路由器通告该网络;若否,做丢弃处理。
2.6.2 接收RIP路由更新时所要遵循的规则
路由接收方通过RIP收到路由更新时,路由更新消息中所包含的目的网络地址可以是子网号、主机地址、主类网络号或全0(表示默认路由),如下所列:
子网号(如131.108.1.0);
主机地址(如131.108.1.1);
网络号(如131.108.0.0);
默认路由(如0.0.0.0)。
图2-5所示为路由接收方通过RIP接收路由时做执行的检查步骤。

接收路由更新消息时,RIP路由器需确定路由更新中所包含的子网地址,与接收接口(所设IP地址)是否隶属于同一主类网络。
若是,路由器2会用接收接口所设掩码作为相应RIP路由的掩码。若RIP路由更新消息的主机部分设置了主机位,则接收(路由更新的)路由器会用主机掩码(作为)相应路由的子网掩码。
若否,RIP路由器会检查该主类网络所包含的任一子网路由是否在本机路由表中“现身”,并会判断那些子网路由是否从其他接口而非接收RIP路由更新的接口收得。请注意,在这种情况下,RIP路由更新中所包含的目的网络一定会是主类网络。若隶属于该主类网络的任一子网路由在路由表中“现身”,路由器2会对其“视而不见”。若未在路由表中“现身”,路由器2将使用有类掩码作为相应路由的子网掩码。
若RIP路由更新从无编号接口(链路)收得,则子网信息必须包含于其内(必须将网络地址的子网部分置位)。此时,路由器2将使用主机掩码作为相应路由的子网掩码。若路由更新携带了子网广播地址(比如,131.108.5.127/25),或D、E类地址,RIP路由器则必须对其“视而不见”。
2.6.3 RIP路由更新发送示例
本节将举例说明RIP路由更新的发送原理。图2-6所示为两台运行RIP协议的路由器。路由器1和2间的WAN互连网段为131.108.0.0。路由器1的以太网接口IP地址也隶属于131.108.0.0。路由器1还连接了另一个主类网络137.99.0.0。
如图2-6所示,路由器1向路由器2通告RIP路由更新时,会进行下列检查。
1.网络131.108.5.0/24与生成RIP路由更新的(路由器接口所处)网络131.108.2.0/24,是否隶属于同一主类网络?
2.是。131.108.5.0/24与生成RIP路由更新的(路由器接口所处)网络131.108.2.0/24,是否具有相同的子网掩码?
3.是。路由器1通告网络131.108.5.0/24。
4.网络137.99.88.0/24与生成RIP路由更新的(路由器接口所处)网络131.108.2.0/24,是否隶属于同一主类网络?
5.否。路由器1在主网边界对137.99.88.0/24执行路由汇总,同时通告路由137.99.0.0。

上述过程执行完毕之后,路由器1会在其RIP路由更新中“纳入”目的网络号131.108.5.0和137.99.0.0,然后向路由器2通告。在路由器1上执行debug ip rip命令,观查其输出,可对此一览无余,如例2-1所示。
例2-1 用debug ip rip命令来揭示RIP路由更新的发送原理

2.6.4 RIP路由更新接收示例
例2-2所示debug ip rip命令的输出显示了路由器2从路由器1接收RIP路由更新时的情况。
例2-2 用debug ip rip命令,来显示RIP路由更新的接收原理

图2-6中所示的路由器2会进行下列检查,来确定为其接收的路由“配备”什么样的子网掩码:
1.所收主网路由137.99.0.0与接收RIP路由更新的(路由器接口所处)网络131.108.2.0,是否相同?
2.否。查询路由表,检查是否通过其他接口学得该主类网络所含任一子网路由?
3.否。因路由137.99.0.0属于B类网络,故路由器2用原生态掩码(/16)作为其子网掩码。
4.所收子网路由131.108.5.0与接收RIP路由更新的(路由器接口所处)网络131.108.2.0,是否隶属于同一主类网络?
5.是。路由器2用接收RIP路由更新的接口所设掩码/24,作为路由131.108.5.0的子网掩码。
上述过程执行完毕之后,路由器2的路由表中会同时“进驻”主网和子网路由,可执行show ip route命令来加以验证(如例2-3所示)。
例2-3 在路由器2上执行show ip route命令,来揭示其路由表中的主网和子网路由

1原文是“Router 2 applies the mask of thereceiving interface. If the host bitis set in the host portion of theRIP update, the receiving routerapplies the host mask.”译文直译。—译者注
最后更新:2017-06-15 17:02:10