子网划分细节--百度百科和大部分文档都不求甚解

来源:互联网 发布:闲来打麻将赢钱软件 编辑:程序博客网 时间:2024/05/17 06:40
在子网划分过程中,为什么子网数得减2?
比如把192.168.1.0/24这个网段划分为保证每个子网至少有20台机器
那么把最后一个0的前3位借给网络ID,用后面的5位来表示主机ID
这样就会产生23=8个子网
子网ID就分别为000、001、010、011、100、101、110、111这样8个
但MCSE上面说子网ID不能为全0或全1,即第1个000和最后一个111要排除
那么剩下的子网ID就只有6个了
可是我觉得000和111这2个全0和全1应该可以正常使用啊,为什么要排除呢//???????


“全零被认为是网络号,全1就成了广播地址,这是规定”
这是当主机ID为全0时表示网络ID,全1时表示广播地址
现在问题是子网ID为全0或全1时应该跟这没关系吧?
在前面那个例子中,把192.168.1.0/24的最后一节的8个0的前3位划分为子网ID,后5位为主机ID,你说的全0代表网络号、全1代表广播地址应该指的是后5位主机ID不能为全0和全1啊,而前3位子网ID为什么不能为全0或全1呢
实际过程中192.168.1.0/27以及192.168.1.224/27也应该可以用啊


答:
不应该使用全0全1子网这个规定是很早一前留下来的,源于RFC950,而且从一开始RFC950也没有禁止使用全0和全1子网。后来在RFC1878中这个规定已经被废止了。也就是说,你现在完全可以使用全0和全1子网。

讲讲RFC950提到的原因:

假设我们有一个网络:192.168.0.0/24,我们现在需要两个子网,那么按照RFC950,应该使用/26而不是/25,得到两个可以使用的子网192.168.0.64和192.168.0.128

对于192.168.0.0/24,网络地址是192.168.0.0,广播地址是192.168.0.255

对于192.168.0.0/26,网络地址是192.168.0.0,广播地址是192.168.0.63
对于192.168.0.64/26,网络地址是192.168.0.64,广播地址是192.168.0.127
对于192.168.0.128/26,网络地址是192.168.0.128,广播地址是192.168.0.191
对于192.168.0.192/26,网络地址是192.168.0.192,广播地址是192.168.0.255

你可以看出来,对于第一个子网,网络地址和主网络的网络地址是重叠的,对于最后一个子网,广播地址和主网络的广播地址也是重叠的。在CIDR流行以前,这样的重叠将导致极大的混乱。比如,一个发往192.168.0.255的广播是发给主网络的还是子网的?这就是为什么在当时不建议使用全0和全1子网。在今天,CIDR已经非常普及了,所以一般不需要再考虑这个问题。

CIDR将class这个概念去除了,也就是说,在应用CIDR以后,IP地址不再分class A,class B,class C,而是使用prefix/length结构。也就是说,之前IP地址的组成是:
|网络号|子网号| 主机号 |
CIDR则使用:
| prefix | 主机号 |
对于CIDR,一个IP地址总是要对应一个prefix length,所以不可能出现classful IP中的那种混乱。这个也就是RIP和RIPv2之间最大的不同。

回到我上边的例子,在那个例子中,即使你使用全0子网,启用CIDR的路由器总是以prefix + length的形式记录IP地址,所以子网的网络号应该是192.168.0.0/26,而主网络的网络号是192.168.0.0/24,这样这两个IP地址就能够区分。  
原创粉丝点击