一、为什么要划分子网
在20世纪70年代初期,建立Internet的工程师们并未意识到计算机和通信在未来的迅猛发展。局域网和个人电脑的发明对未来的网络产生了巨大的冲击。开发者们依据他们当时的环境,并根据那时对网络的理解建立了逻辑地址分配策略。他们知道要有一个逻辑地址管理策略,并认为32位的地址已足够使用。为了给不同规模的网络提供必要的灵活性,IP地址的设计者将IP地址空间划分为五个不同的地址类别,如下表所示,其中A,B,C三类最为常用。
从当时的情况来看,32位的地址空间确实足够大,能够提供232(4,294,967,296,约为43亿)个独立的地址。这样的地址空间在因特网早期看来几乎是无限的,于是便将IP地址根据申请而按类别分配给某个组织或公司,而很少考虑是否真的需要这么多个地址空间,没有考虑到IPv4地址空间最终会被用尽。但是在实际网络规划中,它们并不利于有效地分配有限的地址空间。对于A、B类地址,很少有这么大规模的公司能够使用,而C类地址所容纳的主机数又相对太少。所以有类别的IP地址并不利于有效地分配有限的地址空间网络规划。
二、如何划分子网
为了提高IP地址的使用效率,引入了子网的概念。将一个网络划分为子网:采用借位的方式,从主机位最高位开始借位变为新的子网位,所剩余的部分则仍为主机位。这使得IP地址的结构分为三级地址结构:网络位、子网位和主机位。这种层次结构便于IP地址分配和管理。它的使用关键在于选择合适的层次结构--如何既能适应各种现实的物理网络规模,又能充分地利用IP地址空间(即:从何处分隔子网号和主机号)。
三、子网掩码的作用
简单地来说,掩码用于说明子网域在一个IP地址中的位置。子网掩码主要用于说明如何进行子网的划分。掩码是由32位组成的,很像IP地址。对于三类IP地址来说,有一些自然的或缺省的固定掩码。(参考P189)
四、如何来确定子网地址
如果此时有一个I P地址和子网掩码,就能够确定设备所在的子网。子网掩码和IP地址一样长,用32bit 组成,其中的1表示在IP地址中对应的网络号和子网号对应比特,0表示在IP地址中的主机号对应的比特。将子网掩码与IP地址逐位相“与”,得全0部分为主机号,前面非0部分为网络号。参考(P190表7-5)
要划分子网就需要计算子网掩码和分配相应的主机块,尽管采用二进制计算可以得出结论,但采用十进制计算方法看起来要比二进制方法简单许多,经过一番观察和总结,我终于得出了子网掩码及主机块的十进制算法。
首先要明确一些概念:
类范围:IP地址常采用点分十进制表示方法X.Y.Y.Y,在这里
X=1--126时称为A类地址;
X=128--191时称为B类地址;
X=192--223时称为C类地址;
如10.202.52.130因为X=10在1--126范围内所以称为A类地址
类默认子网掩码:A类为 255.0.0.0
B类为 255.255.0.0
C类为 255.255.255.0
当我们要划分子网用到子网掩码M时,类子网掩码的格式应为
A类为 255.M.0.0
B类为 255.255.M.0
C类为 255.255.255.M
M是相应的子网掩码如:255.255.255.240
十进制计算基数:256,等一下我们所有的十进制计算都要用256来进行。
几个公式变量的说明:
Subnet_block:可分配子网块大小,指在某一子网掩码下的子网的块数。
Subnet_num:实际可分配子网数,指可分配子网块中要剔除首、尾两块,这是某一子网掩码下可分配的实际子网数量,它等于Subnet_block-2。
IP_block:每个子网可分配的IP地址块大小。
IP_num:每个子网实际可分配的IP地址数,因为每个子网的首、尾IP地址必须保留(一个为网络地址,一个为广播地址),所以它等于IP_block-2,IP_num也用于计算主机段
M:子网掩码(net mask)。
它们之间的公式如下:
M=256-IP_block
IP_block=256/Subnet_block,反之Subnet_block=256/IP_block
IP_num=IP_block-2
Subnet_num=Subnet_block-2
2的冥数:要熟练掌握2^8(256)以内的2的冥代表的十进制数,如128=2^7、64=2^6…,这可使我们立即推算出Subnet_block和IP_block数。
现在我们举一些例子:
一、 已知所需子网数12,求实际子网数
解:这里实际子网数指Subnet_num,由于12最接近2的冥为16(2^4),即 Subnet_block=16,那么Subnet_num=16-2=14,故实际子网数为14。
二、 已知一个B类子网每个子网主机数要达到60x255(约相当于X.Y.0.1--X.Y.59.254的数量)个,求子网掩码。
解:1、60接近2的冥为64(2^6),即,IP_block=64
2、子网掩码M=256-IP_block
=256-64=192
3、子网掩码格式B类是:255.255.M.0.
所以子网掩码为:255.255.192.0
三、 如果所需子网数为7,求子网掩码
解:1、7最接近2的冥为8,但8个Subnet_block因为要保留首、尾2个子网块,即 8-2=6<7,并不能达到所需子网数,所以应取2的冥为16,即Subnet_block=16
2、IP_block=256/Subnet_block=256/16=16
3、子网掩码M=256-IP_block=256-16=240。
四、 已知网络地址为211.134.12.0,要有4个子网,求子网掩码及主机段。
解:1、211.y.y.y是一个C类网,子网掩码格式为255.255.255.M
2、4个子网,4接近2的冥是8(2^3),所以Subnet_block=8
Subnet_num=8-2=6
3、IP_block=256/Subnet_block=256/8=32
4、子网掩码M=256-IP_block=256-32=224
5、所以子网掩码表示为255.255.255.224
6、因为子网块(Subnet_block)的首、尾两块不能使用,所以可分配6个子网块(Subnet_num),每块32个可分配主机块(IP_block)
即:32-63、64-95、96-127、128-159、160-191、192-223
首块(0-31)和尾块(224-255)不能使用
7、每个子网块中的可分配主机块又有首、尾两个不能使用(一个是子网网络地址,一个 是子网广播地址),所以主机段分别为:
33-62、65-94、97-126、129-158、161-190、193-222
8、所以子网掩码为255.255.255.224
主机段共6段为:211.134.12.33--211.134.12.62
211.134.12.65--211.134.12.94
211.134.12.97--211.134.12.126
211.134.12.129--211.134.12.158
211.134.12.161--211.134.12.190
211.134.12.193--211.134.12.222
可以任选其中的4段作为4个子网。
总之,只要理解了公式中的逻辑关系,就能很快计算出子网掩码,从而得出可分配的主机段,参加MCSE和CCNA考试的时候使用这种方法可以顺利地通过相关试题的考试,而不用象记9×9乘法口诀表一样去背什么二进制掩码表了。
实验目的
1.掌握子网划分的方法和子网掩码的设置
2.理解IP协议与MAC地址的关系
3.熟悉ARP命令的使用:arp [–d], [-a]
实验步骤:
实验1:
1) 两人一组,设置两台主机的IP地址与子网掩码:
A: 10.2.2.2 255.255.254.0
B: 10.2.3.3 255.255.254.0
2)两台主机均不设置缺省网关。
3)用arp -d命令清除两台主机上的ARP表,然后在A与B上分别用ping命令与对方通信,观察并记录结果,并分析原因。
4)在两台PC上分别执行arp -a命令,观察并记录结果,并分析原因。
提示:由于主机将各自通信目标的IP地址与自己的子网掩码相"与"后,发现目标主机与自己均位于同一网段(10.2.2.0),因此通过ARP协议获得对方的MAC地址,从而实现在同一网段内网络设备间的双向通信。
实验2.
1)将A的子网掩码改为:255.255.255.0,其他设置保持不变。
2)在两台PC上分别执行arp -d命令清除两台主机上的ARP表。然后在A上"ping"B,观察并记录结果。
3)在两台PC上分别执行 arp -a命令,观察并记录结果,并分析原因。
提示:A将目标设备的IP地址(10.2.3.3)和自己的子网掩码(255.255.255.0)相"与"得10.2.3.0,和自己不在同一网段(A所在网段为:10.2.2.0),则A必须将该IP分组首先发向缺省网关。
实验3
1)按照实验2 的配置,接着在B上"ping"A,观察并记录结果,并分析原因。
2)在B 上执行arp -a命令,观察并记录结果,并分析原因。
提示:B将目标设备的IP地址(10.2.2.2)和自己的子网掩码(255.255.254.0)相"与",发现目标主机与自己均位于同一网段(10.2.2.0),因此,B通过ARP协议获得A的MAC地址,并可以正确地向A发送Echo Request报文。但由于A不能向B正确地发回Echo Reply报文,故B上显示ping的结果为"请求超时"。
在该实验操作中,通过观察A与B的ARP表的变化,可以验证:在一次ARP的请求与响应过程中,通信双方就可以获知对方的MAC地址与IP地址的对应关系,并保存在各自的ARP表中。
实验报告
1.分别叙述各实验的记录结果并分析其原因。
2.请参考(p190表7-5)画出C类地址的子网划分选择表。
3.在B类网络中,能使用掩码255.255.255.139吗?为什么?
4.说出地址和子网掩码的不同?
举例说明该算法。
例:给定一 class c address : 192.168.5.0 ,要求划分20个子网,每个子网5
个主机。
解:因为4 <5 < 8 ,用256-8=248 ――>即是所求的子网掩码,对应的子网数
也就出来了。这是针对C类地址。老师也只讲了针对C类地址的做法。下面是我自
己推出来的针对B类地址的做法。
对于B类地址,假如主机数小于或等于254,与C类地址算法相同。
对于主机数大于254的,如需主机 700台,50个子网(相当大了),
512 < 700< 1024
256-(1024/256)=256-4=252 ――>即是所求的子网掩码,对应的子网数也就
出来了。
上面256-4中的4(2的2次幂)是指主机数用2进制表示时超过8位的位数,即超过
2位,掩码为剩余的前6位,即子网数为2(6)-2=62个。