摘自《CCNA学习宝典》
路由协议的分类方法有多种,根据路由协议的运行原理划分,可以分为距离矢量型路由协议、链路状态型路由协议和综合型路由协议。根据在路由更新时是否携带网络掩码划分,可以把路由协议分为有类路由协议(classful)和无类路由协议(classless)。
RIPv1和IGRP协议属于有类路由协议。
1. 有类路由协议的路由表
由于有类路由协议只发送路由条目,不携带掩码,所以运行有类路由协议的路由器在接收到路由条目后,进行如下的判断:
u 如果路由更新信息中的路由条目与自己的接收接口的地址属于同一主类网络(A类、B类、C类网络号叫主网号),路由器则使用自己接口上的子网掩码作为接收到的路由条目的网络掩码。
u 如果路由更新信息中的路由条目与自己的接收接口地址不属于同一主类网络,路由器则根据接收到的路由条目所属的地址类别采用缺省的主类网络掩码(把子网归纳到主网)。
根据路由器的第一种做法,在规划网络时可以使用子网,但要求属于同一主网的所有子网必须使用相同的掩码,且规划网络时应使属于同一主网的子网连续(中间不插入属于其它主网的网络)。如图6-10所示,两个同属于A类的子网掩码相同且连续使用,两个同属于B类的子网掩码相同且连续使用。被配置了属于同一主网的子网地址的路由器可以交换子网路由。路由器B可以和A交换子网路由,也可以和C交换子网路由。所以路由器B收到的全部是子网路由条目。
图 6-10
根据路由器的第二种做法,所有子网路由信息在到达主网边界时都被丢弃,即当路由信息跨越主类网络时只通告相应的主类网络路由。所以路由器A收到的路由是172.16.0.0;路由器C收到的路由是10.0.0.0。
当属于同一主网的子网不连续时,如图6-11所示,路由器A和C都向路由器B通告可以到达网络172.16.0.0,路由器B可能作出不正确的转发决定。
图 6-11
根据以上特点,当使用有类路由协议时还需要谨慎规划网络地址,除了保证子网连续外,还必须保证同一主网内的子网掩码要相同。如果掩码不同,也会造成路由表不正确。
下面以图6-12所示的地址规划方案解释该问题。
图 6-12
图中两个同属于B类的子网是连续规划的,但他们的掩码不同,一个使用24位掩码,一个使用26位掩码。
观察它们的路由表是否有错误。
(1)路由器Middle 的路由表:
Middle#sh ip route
(代码部分省略)
172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C 172.16.3.0/24 is directly connected, FastEthernet0/1
C 172.16.4.64/26 is directly connected, FastEthernet0/0
R 10.0.0.0/8 [120/1] via172.16.4.66, 00:00:16, FastEthernet0/0
R 192.168.1.0/24 [120/1] via172.16.3.1, 00:00:03, FastEthernet0/1
Middle#
该路由表是正确的。
(2)路由器Left的路由表:
Left#sh ip route
(代码部分省略)
172.16.0.0/24 is subnetted, 1 subnets
C 172.16.3.0 is directly connected, FastEthernet0/0
R 10.0.0.0/8 [120/2] via172.16.3.3, 00:00:20, FastEthernet0/0
C 192.168.1.0/24 is directlyconnected, FastEthernet0/1
Left#
路由表显示,既没有172.16.4.0的路由也没有172.16.0.0的路由。也就是说既没有子网路由也没有主网路由。
(3)路由器Right的路由表:
Right#sh ip route
(代码部分省略)
172.16.0.0/26 is subnetted, 1 subnets
C 172.16.4.64 is directly connected, FastEthernet0/1
10.0.0.0/16 is subnetted, 2 subnets
C 10.11.0.0is directly connected, FastEthernet0/0
R 10.12.0.0[120/1] via 10.11.0.2, 00:00:03, FastEthernet0/0
R 192.168.1.0/24 [120/2] via172.16.4.65, 00:00:11, FastEthernet0/1
Right#
路由表中既没有172.16.3.0的路由也没有172.16.0.0的路由。