如果你有一个
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
网段。所以,当在
Cisco
路由器上给端口定义
IP
地址时,该
IP
地址不能落在全
0
网段上。如果你配了,你会得到一条错误信息。使用
IP SUBNET-ZERO
命令之后,你才能使用全
0
网段。
要强调的是,使用了
IP SUBNET-ZERO
命令之后,如果路由协议使用的是
Classful
的(比如
RIP
),虽然你的定义成功了,但那个子网掩码还是不会被
RIP
带到它的路由更新报文中。即,
IP SUBNET-ZERO
命令不会左右路由协议的工作。
总之,
TCP/IP
协议中,全
0
和全
1
网段因为具有二意性而不能被使用。
Cisco
缺省使全
1
网段可以被使用,但全
0
网段只有在配置了
IP SUBNET-ZERO
后方可被使用。