转自:http://blog.sina.com.cn/s/blog_5e8ca2db0100vny8.html

先说下一下基本的概念:    
A类的主类网络是/8
B类的主类网络是/16
C类的主类网络是/24

对于VLSM,CIDR都不算是主类网络.

支持子网的行为叫做classless,比如RIPv2 EIRGP OSPF,说白了就是这个路由协议是否传递路由条目的时候带子网掩码
不支持子网的行为,也就是传递路由条目时不带子网掩码,叫做classful-无类,比如RIPv1

一个路由表还未形成的时候,选择什么样的路由协议将影响路由表。
以上就是路由协议的有类、无类行为

下面我们来说下IOS的有类、无类行为

对于IOS的有类、无类的行为不会影响路由表的条目,不会对路由表的建立影响,但是它会对数据包的转发进程影响。

下面我们举一个例子:
对于一个主类网络10.0.0.0/8,如果路由表存在一些它的子网10.1.1.0/24 10.1.2.0/24

当IOS工作在classless时,对于已知的路由条目,路由器会把数据包发到精确的路由条目上去转发。但是对于未知的网络,比如10.11.1.0/24 192.168.1.0/24,如果存在默认路由,那么默认路由会把他们全部发送到默认路由条目上进行转发。

当IOS工作在classful时,环境与上面一样,但是处理过程却截然不同,因为工作在无类行为的路由器,它知道了10.0.0.0/8其中2个子网是10.1.1.0/24 10.1.2.0/24,所以它会认为10.0.0.0/8主类网络内的子网都真实存在于网络中,其实自己没有详细的路由条目而已,所以对于10.11.1.0/24,它会丢弃而不从默认路由走,192.168.1.0/24它会走默认路由。

通过 Ip classless / no ip classless 可以开启、关闭
案例研究:
路由协议的有类、无类行为与IOS的有类、无类行为(classless and classful)-LMLPHP
  1. R2#show ip route
  2. Gateway of last resort is 20.1.1.2 to network 0.0.0.0

  3.      20.0.0.0/24 is subnetted, 1 subnets
  4. C 20.1.1.0 is directly connected, Ethernet0/1
  5.      10.0.0.0/24 is subnetted, 1 subnets
  6. C 10.1.1.0 is directly connected, Ethernet0/0
  7.      30.0.0.0/24 is subnetted, 1 subnets
  8. C 30.1.1.0 is directly connected, Ethernet0/2
  9. S* 0.0.0.0/0 [1/0] via 20.1.1.2

  10. R1 ping 8.8.8.8

  1. 在R2上开启debug ip packet detail
  2. Nov 21 15:24:18.859: IP: tableid=0, s=10.1.1.2 (Ethernet0/0), d=8.8.8.8 (Ethernet0/1), routed via RIB
  3. Nov 21 15:24:18.859: IP: s=10.1.1.2 (Ethernet0/0), d=8.8.8.8 (Ethernet0/1), g=20.1.1.2, len 100, forward
  4. Nov 21 15:24:18.863: ICMP type=8, code=0
  5. //对于未知网络从默认路由发送出去

路由协议的有类、无类行为与IOS的有类、无类行为(classless and classful)-LMLPHP

当ping 10.0.0.0/8主类里的子网的时候 是可以发送出去的。说明IOS默认是classless行为

当no ip classless,并且这里必须要关闭ip cef
  1. R2(config)#
  2. Nov 21 15:42:47.819: IP: s=10.1.1.2 (Ethernet0/0), d=10.1.6.1, len 100, unroutable
  3. Nov 21 15:42:47.819: ICMP type=8, code=0
发现即使有默认路由也不会发送出去
因为路由器认为10.1.6.1是主类10.0.0.0/8的其中一个子网,它自己不知道路由条目,但是它认为它真是存在,所以丢弃。

注意:这个时候路由器会发送目的主机不可达的信息给源
  1. Nov 21 15:42:47.819: ICMP: dst (10.1.6.1) host unreachable sent to 10.1.12
这个可以关闭,进入接口下 no ip unreacables即可
10-11 15:05