本节书摘来自异步社区《IP路由协议疑难解析》一书中的第2章,第2.8节,作者 【美】Zaheer Aziz, CCIE #4127 , Johnson Liu, CCIE #2637 , Abe Martey, CCIE #2373 , Faraz Shamim, CCIE #4131,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.8 RIP为什么不支持可变长子网掩码
IP路由协议疑难解析
所谓路由协议支持可变长子网掩码(Variable-length Subnet Masking,VLSM),是指其能够传递并识别网络号相同但子网掩码不同的路由信息1。RIP和IGRP都属于有类路由协议,此类协议的路由更新不包含任何子网掩码信息。运行RIP和IGRP的路由器发送路由更新之前,会用生成路由更新的接口所设子网掩码,与待通告网络的子网掩码进行比对。若两者不匹配,则丢弃该路由更新。
下例将对此进行说明。如图2-8所示,路由器1连接了三个子网,这三个子网使用了两种子网掩码(/24和/30)。
路由器1向路由器2发送路由更新之前,所要执行的操作步骤如下所列。
1.路由器1检查网络131.108.5.0/24与131.108.6.0/30是否隶属同一主类网络,后者是路由器1通告路由更新的接口所处网络。
2.由于两者隶属同一主类网络,因此路由器1还得确认网络131.108.5.0/24与131.108.6.0/30的子网掩码是否相同。
3.由于两者子网掩码不同,因此路由器1不会通告目的网络131.108.5.0/24。
4.路由器1检查网络131.108.7.0/30与131.108.6.0/30是否隶属于属于同一主类网络,再说一遍,后者是路由器1通告路由更新的接口所处网络。
5.由于两者隶属于同一主类网络,因此路由器1会进一步确认网络131.108.7.0/30与131.108.6.0/30的子网掩码是否相同。
6.由于两者子网掩码相同,因此路由器1将通告目的网络131.108.7.0/30。
在执行过上述检查步骤之后,路由器1只会把网络131.108.7.0置入RIP路由更新消息,通告给路由器2。执行debug ip rip命令,可清楚地显示出路由器1通告的路由更新消息,如例2-7所示。
例2-7 在图2-8中的路由器1上执行debug ip rip命令,可观察到其通告给路由器2的RIP路由更新信息
注意,由例2-7的debug输出可知,路由更新中所含子网只有131.108.7.0。子网131.108.5.0的子网掩码不同于通告路由更新的路由器接口(所设子网掩码),因此并未包括在此路由更新之内。路由器2会据此生成相应的路由表项,可执行show ip route命令,来显示路由器2的路由表,如例2-8所示。
例2-8 在路由器2上执行show ip route命令,观察其输出,可知路由表中未包含子网131.108.5.0/25
要想与(不被RIP所通告)的目的网络建立起连通性,请在两台路由器上针对特定的子网配置静态路由;或为RIP网络中的各个子网分配相同的子网掩码,让RIP通告相关网络。
1原文是“The capability to specify a different subnet mask for the same network number is calledvariable-length subnet masking (VLSM).”一看作者的文字,就知其是“粗人”,译文酌改。—译者注