有类路由传递
  RIPv1是一套有类的动态路由选择协议,有类路由选择协议的一个最大的特点就是传递路由条目的时候不会携带子网掩码,直接按主类传。因为RIPv1传递的时候不携带子网掩码,所以RIPv1在进行路由加表的时候有自己的一套规则,如下:
1.如果发送的路由条目和发送接口属于同一主类网络,那么用该接口的掩码来确定该路由条目的网络号。规则是,如果路由条目的掩码和接口的掩码一致,那么发送该网络号;如果该路由条目是32位路由条目,那么直接发送这个路由条目。
2.如果发送的路由条目和发送接口不属于同一主类网络,那么直接使用该路由条目主类掩码定位网络号,并发送该网络号。
3.如果接收的路由网络号和接收接口属于同一主类网络,那么用该接口的掩码标识该网络号,并加表。这个要注意,如果收来的网络号的长度大于接口网络号的长度,那么直接加表为32位路由。
4.如果接收的路由网络号和接收接口不属于同一主类网络,那么直接使用该网络号的主类掩码标识网络号,并加表。
  我们来做一个实验看看效果,实验拓扑如下:

有类路由传递和选择-成长便签

  R1和R2的直连网段是10.1.1.0/24,R1上又3个环回口,如图所示。接着我们在R1和R2上配置RIP,配置如下:
R1
router rip
version 1
network 1.0.0.0
network 10.0.0.0
R2
router rip
version 1
network 10.0.0.0
  我们先来分析一下,RIP配置完成好,R1会把自己的10.1.10.1、10.1.20.1和1.1.1.1三条路由条目从S1/1通告出去。根据前两个规则,R1给R2发送的路由条目将是1.0.0.0、10.1.10.0和10.2.1.0这三条,我们Debug出来的信息,如下:
有类路由传递和选择-成长便签
  确实和我们推测的一样,接着我们根据后面两条可以推测出R2的路由表上将会存在2.0.0.0/8和10.1.10.0/24、10.2.1.0/24三条路由条目,如下:
有类路由传递和选择-成长便签
  和我们推测的一样,这就是RIPv1的路由传递规则了,也是标准的有类路由传递思想。
有类路由选择
  目前IOS大多默认使用的都是无类路由选择方式,我们可以使用命令no ip classless关闭无类查找,来启用有类查找。有类路由选择的规则如下:
1.有类别路由选择协议首先必须匹配一个与该目的地址对应于A类、B类或C类的主网络号。
2.如果目的地址是一个和路由器直接相连的主网络的成员,那么该网络的路由器接口上配置的子网掩码将被用来确定目的地址的子网。因此,在该主网络中必须自始至终地统一使用这个相同的子网掩码。
3.如果目的地址不是一个和路由器直接相连的主网络的成员,那么路由器将尝试去匹配该目的地址对应于A类、B类或C类的主网络号。
  这三条查表规则根据我们上面所说的路由传递规则很容易理解。第一条匹配主网络号是必须的,第二条确定子网,用直连网络接口的掩码来定位目标地址的掩码,前提是用一主类网络。这点根据有类路由传递规则1和3条得来的。最后如果没有和接口匹配主类网络的,只能根据主类路由条目传递了,这是根据有类路由传递规则的2和4条得来的。举个例子吧,如果一个数据包是去往10.2.1.1的,数据包到达R2后根据选择规则的第二条,路由器将会选择10.2.1.0这个路由条目传递;如果一个数据包是去往10.3.1.1的,那么数据包查到10.0.0.0后,会查不到子网,于是丢弃数据包;如果一个数据是去往1.2.1.1的,那么路由会直接根据主类路由1.0.0.0/8的条目转发数据包。这就是有类路由的选择规则了。