Classless与Classful
大家都非常清楚,可以将一个IP网段划分成多个子网,子网的掩码可以是任意位数,比如将一个10.0.0.0/8的大网划分出10.1.1.0/24,10.1.2.0/24,10.1.3.0/24等等,划分出来的更小的网络叫做子网,而原来的大网络叫主网,也称为主类网络,A类地址掩码必须为8位才是主类网络,B类地址掩码必须为16位才是主类网络,C类地址掩码必须为24位才是主类网络。 无论是主网还是子网,都会被路由器放入路由表,只是某些路由协议不能精确传递子网而已,但只要路由协议传递了子网和掩码,路由器就一定会将其放入路由表中。 支持子网的功能被称为Classless,支持Classless可以与子网很好的协作,如果不支持子网,则被称为Classful,所以,一个路由协议是工作在Classless还是Classful,直接关系到路由信息中是否存在精确的子网信息,如RIP和EIGRP,并且这些功能可以在协议中手工开启或关闭。 路由协议有Classless与Classful的说法,而IOS本身也有运行在Classless还是Classful的说法,IOS是工作在Classless还是Classful,并不影响路由表中是否有子网条目,也就是说,IOS工作在Classless还是Classful,并不影响路由表的建立,路由表不会有任何区别,但是,Classless与Classful会决定路由器转发数据包的进程,影响如下:
对于某个主类网络,如10.0.0.0/8,当路由表中存在其中部分子网,如10.1.1.0/24和10.1.2.0/24,当工作在Classless时,对于已经知道的子网,路由器会将数据包精确地发送到相应出口,而对于并不知道的子网和其它所有未知目标网络,如10.1.3.0/24和30.1.1.0/24,如果存在默认路由的话,路由器便将他们全部发送到默认路由所指示的出口;但是当路由器工作在Classful时,路由器知道了子网10.1.1.0/24,就始终会认为其它所有10.0.0.0/8范围内的子网都应该真实存在于网络中,会认为10.1.2.0/24、10.1.3.0/24等等都存在于网络中,只是自己没有详细路由,这时,当路由器收到去往10.1.1.0/24的数据包时,可以正常转发,但是如果收到去往10.1.3.0/24和30.1.1.0/24的数据包,当路由表中存在默认路由时,去往30.1.1.0/24的数据包会被发送到默认路由指示的出口,而去往10.0.0.0/8中的未知子网10.1.3.0/24的数据包则被全部丢弃而不走默认路由。 由以上情况可以看出,路由器工作在Classful时,如果知道了某个主类网络中的部分子网后,其它所有未知子网的数据包将被全部丢弃而不转发,即使存在默认路由,也不会转发,而其它主类网络的数据包还是会正常转发。IOS的Classless与Classful可以通过命令ip classless和no ip classless开启或关闭。
阅读(3005) | 评论(0) | 转发(0) |