天天看点

ip subnet zero和ip classless

二义性:

把一个C类网络192.168.1.0分成8个子网:0 - 31,32 - 63,64 - 95,96 - 127,128 - 159,160 - 191,192 - 223,224 - 255。第一个子网192.168.1.0 - 31的网络地址和最后一个子网192.168.1.224 - 255的广播地址与C类网络192.168.1.0的网络地址和广播地址相重了具有二义性。

总之,全0和全1网段因为具有二意性而不能被使用。

Classful和Classless:

Classful:为了避免二意性,全0和全1网段都不让使用,这种环境叫作Classful。在这种环境下IP地址分类,掩码只在所定义的路由器内有效,路由广播时不带掩码信息。(路由协议有:RIPv1、IGRP)

Classless:IP地址不分类,掩码任何时候都和IP地址成对地出现,这样二义性就不会存在,这种环境叫作Classless。可以使用全0和全1子网,路由广播时带掩码信息。(路由协议有:RIPv2、EIGRP、OSPF、ISIS、BGPv4)

总之,使用Classful还是Classless取决于你在路由器上运行的路由协议。一个路由器上可同时运行Classful和Classless的路由协议。

ip subnet zero:

在Cisco路由器上,默认情况下可以使用全1子网,但不能使用全0子网。使用ip subnet zero命令之后,才能使用全0子网。使用了ip subnet zero命令之后,如果路由协议使用的是Classful的,虽然允许使用全0子网定义成功了,但是在路由广播时那个子网掩码还是不会被带到它的更新报文中,即ip subnet zero命令不会左右路由协议的工作。

总之,Cisco默认可以使用全1子网,但全0子网只有在配置了ip subnet zero后才能被使用;且当在classless路由协议下全0和全1子网才会被路由转发。

ip classless和no ip classless:

no ip classless命令的作用:

有类路由协议路由器首先匹配主网络号,如果主网络号存在,就继续匹配子网号,且不考虑默认路由,如果子网无法匹配,丢弃数据包(在分类路由下,路由器认为知道所有主网络下的全部子网),并使用ICMP返回一个不可达回应。如果主网络号不存在,使用默认路由(默认路由存在前提)。

ip classless命令的作用:

注意:该命令常用在有类路由协议且配置默认路由的情况下;对于无类路由协议来说没有意义,因为无类路由协议查找路由的方式就是最长匹配原则。

无类路由协议路由器,进行最长匹配原则;当用最长匹配时不在路由表内时,就使用默认路由来发送。

例1:路由器收到了一个数据包,路由表如下所示

C 10.1.1.0/24 s0/0 C 10.1.2.0/24 s0/1 S 10.1.3.0/24 s0/0 S 0.0.0.0/0s0/1

请问分别在ip classless和no ip classless的情况下,且收到的数据包目的地址分别为10.1.4.1和20.1.4.1的时候这个数据包将怎样转发?

答:在ip classless时两个数据包都会走默认路由。

在no ip classless时目的地址为10.1.4.1的数据包会被丢弃,目的地址为20.1.4.1的数据包会走默认路由。

例2:路由器收到了一个目的地为10.4.0.0/16的数据包,路由表如下所示

R 10.0.0.0/8 via s0/0 R 10.1.0.0/16 via s0/1 R 10.2.0.0/26 via s0/0 R* 0.0.0.0/0 vias 0/1

请问分别在no ip classless和ip classless的时候这个数据包将怎样转发?

答:在no ipclassless时10.4.0.0/16不在路由表中,那么这个包将被路由器丢弃;即使有缺省路由也没有用。

在ip classless时它将会按照10.0.0.0/8的路由记录来转发这个包。因为它是10.4.0.0/16的超网。如果路由器里没有10.0.0.0/8这个路由记录,数据包将会按照默认路由来发送。

总之:ip classless命令的作用主要是改变有类路由协议的查找路由表的行为使用最长匹配原则,最直接的效果就是对默认路由的使用。

转载于:https://blog.51cto.com/xiewl/1406735

继续阅读