标题：IP子网划分
简介
IP和子网掩码
我们都知道，IP是由四段数字组成，在此，我们先来了解一下3类常用的IP
A类IP段　0.0.0.0 到127.255.255.255 (0段和127段不使用)
B类IP段　128.0.0.0 到191.255.255.255
C类IP段　192.0.0.0 到223.255.255.255
XP默认分配的子网掩码每段只有255或0
A类的默认子网掩码　255.0.0.0　一个子网最多可以容纳1677万多台电脑
B类的默认子网掩码　255.255.0.0　一个子网最多可以容纳6万台电脑
C类的默认子网掩码　255.255.255.0　一个子网最多可以容纳254台电脑
我以前认为，要想把一些电脑搞在同一网段，只要IP的前三段一样就可以了，今天，我才知道我错了。如果照我这样说的话，一个子网就只能容纳254台电脑？真是有点笑话。我们来说详细看看吧。
要想在同一网段，只要网络标识相同就可以了，那要怎么看网络标识呢？首先要做的是把每段的IP转换为二进制。（有人说，我不会转换耶，没关系，我们用Windows自带计算器就行。打开计算器，点查看>科学型，输入十进制的数字，再点一下“二进制”这个单选点，就可以切换至二进制了。）
把子网掩码切换至二进制，我们会发现，所有的子网掩码是由一串连续的1和一串连续的0组成的（一共4段，每段8位，一共32位数）。
255.0.0.0　11111111.00000000.00000000.00000000
255.255.0.0　11111111.11111111.00000000.00000000
255.255.255.0　11111111.11111111.11111111.00000000
这是A/B/C三类默认子网掩码的二进制形式，其实，还有好多种子网掩码，只要是一串连续的1（不少于8个）和一串连续的0就可以了（每段都是8位）。如 11111111.11111111.11111000.00000000，这也是一段合法的子网掩码。子网掩码决定的是一个子网的计算机数目，计算机公式是2的m次方，其中，我们可以把m看到是后面的多少颗0。如255.255.255.0转换成二进制，那就是 11111111.11111111.11111111.00000000，后面有8颗0，那m就是8，255.255.255.0这个子网掩码可以容纳 2的8次方（台）电脑，也就是256台，但是有两个IP是不能用的，那就是最后一段不能为0和255，减去这两台，就是254台。我们再来做一个。
子网划分的方法
子网的划分，实际上就是设计子网掩码的过程。子网掩码主要是用来区分IP地址中的网络ID和主机ID，它用来屏蔽IP地址的一部分，从IP地址中分离出网络ID和主机ID.子网掩码是由4个十进制数组成的数值"中间用"."分隔，如255.255.255.0。若将它写成二进制的形式为:11111111.11111111.11111111.00000000，其中为"1"的位分离出网络ID,为"0"的位分离出主机ID，也就是通过将IP地址与子网掩码进行"与"逻辑操作，得出网络号。
例如，假设IP地址为192.160.4.1，子网掩码为255.255.255.0，则网络ID为192.160.4.0,主机ID为0.0.0.1。计算机网络ID的不同，则说明他们不在同一个物理子网内，需通过路由器转发才能进行数据交换。
每类地址具有默认的子网掩码:对于A类为255.0.0.0，对于B类为255.255.0.0，对于C类为255.255.255.0。除了使用上述的表示方法之外，还有使用子网掩码中"1"的位数来表示的，在默认情况下，A类地址为8位，B类地址为16位，C类地址为24位。例如，A类的某个地址为 12.10.10.3/8，这里的最后一个"8"说明该地址的子网掩码为8位，而199.42.26.0/28表示网络199.42.26.0的子网掩码位数有28位。
如果希望在一个网络中建立子网，就要在这个默认的子网掩码中加入一些位，它减少了用于主机地址的位数。加入到掩码中的位数决定了可以配置的子网。因而，在一个划分了子网的网络中，每个地址包含一个网络地址、一个子网位数和一个主机地址
示例
255.255.248.0这个子网掩码可以最多容纳多少台电脑？
计算方法：
把将其转换为二进制的四段数字（每段要是8位，如果是0，可以写成8个0，也就是00000000）
11111111.1111111.11111000.00000000
然后，数数后面有几颗0，一共是有11颗，那就是2的11次方，等于2048 (注意：主机号中全0是保留地址，全1是广播地址，所以它们不算可用主号地址。网络号也是一样的。子网号是可以用全0和全1的)，所以这个子网掩码最多可以容纳2048-2=2046台电脑。
一个子网最多可以容纳多少台电脑你会算了吧，下面我们来个逆向算法的题。
一个公司有530台电脑，组成一个对等局域网，子网掩码设多少最合适？
首先，无疑，530台电脑用B类IP最合适（A类不用说了，太多，C类又不够，肯定是B类），但是B类默认的子网掩码是255.255.0.0，可以容纳6万台电脑，显然不太合适，那子网掩码设多少合适呢？我们先来列个公式。
2的m次方>=560
首先，我们确定2的m次方一定是大于2的8次方的，因为我们知道2的8次方是256，也就是C类IP的最大容纳电脑的数目，我们从9次方一个一个试，2的9次方是 512，不到560，2的10次方是1024，看来2的10次方最合适了。子网掩码一共由32位组成，已确定后面10位是0了，那前面的22位就是1，最合适的子网掩码就是：11111111.11111111.11111100.00000000，转换成10进制，那就是255.255.252.0。
分配和计算子网掩码你会了吧，下面，我们来看看IP地址的网段。
相信好多人都和我一样，认为IP只要前三段相同，就是在同一网段了，其实，不是这样的，同样，我也把IP的每一段转换为一个二进制数，这里就拿IP：192.168.0.1，子网掩码：255.255.255.0做实验吧。
192.168.0.1
11000000.10101000.00000000.00000001
（这里说明一下，和子网掩码一样，每段8位，不足8位的，前面加0补齐。）
IP　11000000.10101000.00000000.00000001
子网掩码　11111111.11111111.11111111.00000000
在这里，向大家说一下到底怎么样才算同一网段。
要想在同一网段，必需做到网络标识相同，那网络标识怎么算呢？各类IP的网络标识算法都是不一样的。A类的，只算第一段。B类，只算第一、二段。C类，算第一、二、三段。
算法只要把IP和子网掩码的每位数AND就可以了。
AND方法：0和1=0　0和0=0　1和1=1
如：And　192.168.0.1，255.255.255.0，先转换为二进制，然后AND每一位
IP　11000000.10101000.00000000.00000001
子网掩码　11111111.11111111.11111111.00000000
得出AND结果　11000000.10101000.00000000.00000000
转换为十进制192.168.0.0，这就是网络标识，
再将子网掩码反取，也就是00000000.00000000.00000000.11111111，与IP　AND
得出结果00000000.00000000.00000000.00000001，转换为10进制，即0.0.0.1，
这0.0.0.1就是主机标识。要想在同一网段，必需做到网络标识一样。
我们再来看看这个改为默认子网掩码的B类IP
如IP：188.188.0.111，188.188.5.222，子网掩码都设为255.255.254.0，在同一网段吗？
先将这些转换成二进制
188.188.0.111　10111100.10111100.00000000.01101111
188.188.5.222　10111100.10111100.00000101.11011110
255.255.254.0　11111111.11111111.11111110.00000000
分别AND，得
10111100.10111100.00000000.00000000
10111100.10111100.00000100.00000000
网络标识不一样，即不在同一网段。
判断是不是在同一网段，你会了吧，下面，我们来点实际的。
一个公司有530台电脑，组成一个对等局域网，子网掩码和IP设多少最合适？
子网掩码不说了，前面算出结果来了11111111.11111111.11111100.00000000，也就是255.255.252.0
我们现在要确定的是IP如何分配，首先，选一个B类IP段，这里就选188.188.x.x吧
这样，IP的前两段确定的，关键是要确定第三段，只要网络标识相同就可以了。我们先来确定网络号。（我们把子网掩码中的1和IP中的?对就起来，0和*对应起来，如下：）
255.255.252.0　11111111.11111111.11111100.00000000
188.188.x.x　10111100.10111100.??????**.********
网络标识　10111100.10111100.??????00.00000000
由此可知，?处随便填（只能用0和1填，不一定全是0和1），我们就用全填0吧，*处随便，这样呢，我们的IP就是
10111100.10111100.000000**.********，一共有530台电脑，IP的最后一段1～254可以分给254台计算机， 530/254=2.086，采用进1法，得整数3，这样，我们确定了IP的第三段要分成三个不同的数字，也就是说，把000000**中的**填三次数字，只能填1和0，而且每次的数字都不一样，至于填什么，就随我们便了，如00000001，00000010，00000011，转换成十进制，分别是 1，2，3，这样，第三段也确定了，这样，就可以把IP分成188.188.1.y，188.188.2.y，188.188.3.y，y处随便填，只要在1～254范围之内，并且这530台电脑每台和每台的IP不一样，就可以了。
有人也许会说，既然算法这么麻烦，干脆用A类IP和A类默认子网掩码得了，偶要告诉你的是，由于A类IP和A类默认子网掩码的主机数目过大，这样做无疑是大海捞针，如果同时局域网访问量过频繁、过大，会影响效率的，所以，最好设置符合自己的IP和子网掩码^_^
举个实例：比如公司分配到的网段是192.168.1.0/24，首先我要分一个8个主机的网段出来，那么这个网段的首地址是什么?之后，我又要划分一个16个主机的地址出来，那么16个主机的首地址是什么？　
划分子网的实例
C类地址例子:网络地址192.168.10.0;子网掩码255.255.255.192(/26)　
1.子网数=2*2=4
2.主机数=2的6次方-2=62
3.有效子网?:block size=256-192=64;所以第一个子网为192.168.10.64,第二个为192.168.10.128
4.广播地址:下个子网-1.所以2个子网的广播地址分别是192.168.10.127和192.168.10.191
5.有效主机范围是:第一个子网的主机地址是192.168.10.65到192.168.10.126;第二个是192.168.10.129到192.168.10.190
B类地址例子1:网络地址:172.16.0.0;子网掩码255.255.192.0(/18)
1.子网数=2*2=4
2.主机数=2的14次方-2=16382
3.有效子网?:block size=256-192=64;所以第一个子网为172.16.64.0,最后1个为172.16.128.0
4.广播地址:下个子网-1.所以2个子网的广播地址分别是172.16.127.255和172.16.191.255
5.有效主机范围是:第一个子网的主机地址是172.16.64.1到172.16.127.254;第二个是172.16.128.1到172.16.191.254
B类地址例子2:网络地址:172.16.0.0;子网掩码255.255.255.224(/27)
1.子网数=2的11次方-2=2046(因为B类地址默认掩码是255.255.0.0,所以网络位为8+3=11)
2.主机数=2的5次方-2=30
3.有效子网?:block size=256-224=32;所以第一个子网为172.16.0.32, 最后1个为172.16.255.192
4.广播地址:下个子网-1.所以第一个子网和最后1个子网的广播地址分别是172.16.0.63和172.16.255.223
5.有效主机范围是:第一个子网的主机地址是172.16.0.33到172.16.0.62;最后1个是172.16.255.193到172.16.255.223
Variable Length Subnet Masks(VLSM)
变长子网掩码(VLSM)的作用:节约IP地址空间;减少路由表大小.使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIPv2,OSPF,EIGRP和BGP.