如果你有一个CLASS C的IP地址,比如 192.168.10.0,你想把它分成8个网段,每个网段内可以有32台主机,你可以这样分:
subnetmask:255.255.255.224:
192.168.10.0 - 31, 网络地址:192.168.10.0,广播地址:192.168.10.31
192.168.10.32 - 63, 网络地址:192.168.10.32,广播地址:192.168.10.63
192.168.10.64 - 95, 网络地址:192.168.10.64,广播地址:192.168.10.95
192.168.10.96 - 127,网络地址:192.168.10.96,广播地址:192.168.10.127
192.168.10.128- 159,网络地址:192.168.10.128,广播地址:192.168.10.159
192.168.10.160- 191,网络地址:192.168.10.160,广播地址:192.168.10.191
192.168.10.192- 223,网络地址:192.168.10.192,广播地址:192.168.10.223
192.168.10.224- 255,网络地址:192.168.10.224,广播地址:192.168.10.255
即:每个网段32个IP地址,第一个是网络地址,用来标志这个网络,最后一个是广播 地址,用来代表这个网络上的所有主机.
这两个IP地址被TCP/IP保留,不可分配给主机使用.
另外,第一个子网192.168.10.0-31和最后一个子网192.168.10.224-255通常也被 保留,不能使用.原因是,第一个子网的网络地址192.168.10.0和最后一个子网的广 播地址192.168.10.255具有二意性.
先看看这个大C的网络地址和广播地址. 192.168.10.0是它的网络地址,192.168.10.255是它的广播地址.显然,它们分别与 第一个子网的网络地址和最后一个子网的广播地址相重了.
那么怎样区分192.168.10.0到底是哪个网络的网络地址呢? 答案是:把子网掩码加上去!
192.168.10.0 255.255.255.0 是大C的网络地址,
192.168.10.0 255.255.255.224 是第一个子网的网络地址.
192.168.10.255 255.255.255.0是大C的广播地址,
192.168.10.255 255.255.255.224是最后一个子网的广播地址.
带上掩码,它们的二意性就不存在了.
所以,在严格按照TCP/IP ABCD给IP地址分类的环境下,为了避免二意性,全0和全1 网段都不让使用.这种环境我们叫作Classful.在这种环境下,子网掩码只在所定义 的路由器内有效,掩码信息到不了其它路由器.比如RIP-1,它在做路由广播时根本 不带掩码信息,收到路由广播的路由器因为无从知道这个网络的掩码,只好照标准 TCP/IP的定义赋予它一个掩码.比如,拿到10.X.X.X,就认为它是A类,掩码是255.0 .0.0;拿到一个204.X.X.X,就认为它是C类,掩码是255.255.255.0.
但在Classless的环境下,掩码任何时候都和IP地址成对地出现,这样,前面谈到的 二意性就不会存在.
是Classful还是Classless取决于你在路由器上运行的路由协议,一个路由器上可 同时运行Classful和Classless的路由协议.RIP是Classful的, 它在做路由广播时不带掩码信息;OSPF,EIGRP,BGP4是Classless的,它们在做路由 广播时带掩码信息,它们可以同时运行在同一台路由器上.
在CISCO路由器上,缺省你可以使用全1网段,但不能使用全0网段.所以,当你在CIS CO路由器上给端口定义IP地址时,该IP地址不能落在全0网段上.如果你配了,你会 得到一条错误信息.使用IP SUBNET-ZERO命令之后,你才能使用全0网段.
另外要强调的是,使用了IP SUBNET-ZERO命令之后,如果路由协议使用的是CLASSF UL的(比如RIP),虽然你的定义成功了,但那个子网掩码还是不会被RIP带到它的路 由更新报文中.即,IP SUBNET-ZERO 命令不会左右路由协议的工作.
总之,TCP/IP协议中,全0和全1网段因为具有二意性而不能被使用.CISCO缺省使全 1网段可以被使用,但全0网段只有在配置了IP SUBNET-ZERO后方可被使用.
……