私有IP网子网掩码划分原则及计算方法

私有IP网子网掩码划分原则及计算方法

最好记下的二进制转换十进制

00000000 0

00000001 1

00000010 2

00000100 4

00001000 8

00010000 16

00100000 32

01000000 64

10000000 128

11000000 192

11100000 224

11110000 240

11111000 248

11111100 252

11111110 254

11111111 255

IP和子网掩码

我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP

AIP0.0.0.0 127.255.255.255 (0段和127段不使用)

BIP128.0.0.0 191.255.255.255

CIP192.0.0.0 223.255.255.255

Windows默认分配的子网掩码每段只有2550

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,这也是一段合法的子网掩码。子网掩码决定的是一个子网的计算机数目,计算机公式是2m次方,其中,我们可以把m看到是后面的多少个0。如255.255.255.0转换成二进制,那就是 11111111.11111111.11111111.00000000,后面有80,那m就是8255.255.255.0这个子网掩码可以容纳 28次方(台)电脑,也就是256台,但是有两个IP是不能用的,那就是最后一段不能为0255,减去这两台,就是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,则网络ID192.160.4.0,主机ID0.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,可以写成80,也就是00000000

11111111.1111111.11111000.00000000

然后,数数后面有几颗0,一共是有11颗,那就是211次方,等于2048 (注意:主机号中全0是保留地址,全1是广播地址,所以它们不算可用主号地址。网络号也是一样的。子网号是可以用全0和全1),所以这个子网掩码最多可以容纳2048-2=2046台电脑。

一个子网最多可以容纳多少台电脑你会算了吧,下面我们来个逆向算法的题。

一个公司有530台电脑,组成一个对等局域网,子网掩码设多少最合适?

首先,无疑,530台电脑用BIP最合适(A类不用说了,太多,C类又不够,肯定是B类),但是B类默认的子网掩码是255.255.0.0,可以容纳6万台电脑,显然不太合适,那子网掩码设多少合适呢?我们先来列个公式。

公式

2m次方>=560

首先,我们确定2m次方一定是大于28次方的,因为我们知道28次方是256,也就是CIP的最大容纳电脑的数目,我们从9次方一个一个试,29次方是 512,不到560210次方是1024,看来210次方最合适了。子网掩码一共由32位组成,已确定后面10位是0了,那前面的22位就是1,最合适的子网掩码就是:11111111.11111111.11111100.00000000,转换成10进制,那就是255.255.252.0

分配和计算子网掩码你会了吧,下面,我们来看看IP地址的网段。

相信好多人都和我一样,认为IP只要前三段相同,就是在同一网段了,其实,不是这样的,同样,我也把IP的每一段转换为一个二进制数,这里就拿IP192.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方法:01=0 00=0 11=1

如:And 192.168.0.1255.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就是主机标识。要想在同一网段,必需做到网络标识一样。

我们再来看看这个改为默认子网掩码的BIP

IP188.188.0.111188.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

网络标识不一样(看255.255.254.0转换成二进制后1的数位,所以可以看到不一样),即不在同一网段。

判断是不是在同一网段,你会了吧,下面,我们来点实际的。

一个公司有530台电脑,组成一个对等局域网,子网掩码和IP设多少最合适?

子网掩码不说了,前面算出结果来了11111111.11111111.11111100.00000000,也就是255.255.252.0

B类地址

选一个BIP段,这里就选188.188.x.x

这样,IP的前两段确定的,关键是要确定第三段,只要网络标识相同就可以了。我们先来确定网络号。(我们把子网掩码中的1IP中的?对就起来,0*对应起来,如下:)

255.255.252.0 11111111.11111111.11111100.00000000

188.188.x.x 10111100.10111100.??????**.********

网络标识 10111100.10111100.??????00.00000000

由此可知,?处随便填(只能用01填,不一定全是01),我们就用全填0吧,*处随便,这样呢,我们的IP就是

10111100.10111100.000000**.********,一共有530台电脑,IP的最后一段1254可以分给254台计算机, 530/254=2.086,采用进1法,得整数3,这样,我们确定了IP的第三段要分成三个不同的数字,也就是说,把000000**中的**填三次数字,只能填10,而且每次的数字都不一样,至于填什么,就随我们便了,如000000010000001000000011,转换成十进制,分别是 123,这样,第三段也确定了,这样,就可以把IP分成188.188.1.y188.188.2.y188.188.3.yy处随便填,只要在1254范围之内,并且这530台电脑每台和每台的IP不一样,就可以了。

有人也许会说,既然算法这么麻烦,干脆用AIPA类默认子网掩码得了,偶要告诉你的是,由于AIPA类默认子网掩码的主机数目过大,这样做无疑是大海捞针,如果同时局域网访问量过频繁、过大,会影响效率的,所以,最好设置符合自己的IP和子网掩码^_^

举个实例:比如公司分配到的网段是192.168.1.0/24,首先我要分一个8个主机的网段出来,那么这个网段的首地址是什么?之后,我又要划分一个16个主机的地址出来,那么16个主机的首地址是什么?

划分实例

C类地址例子:

网络地址192.168.10.0;子网掩码255.255.255.192(/26)

1.子网数:2*2=4

2.主机数:26次方-2=62

3.有效子网:256-192=64;所以第一个子网为192.168.10.64,第二个为192.168.10.128

4.广播地址:下个子网-1.所以2个子网的广播地址分别是192.168.10.127192.168.10.191

5.有效主机范围是:所以第一个子网为192.168.10.0,第二个为192.168.10.64,第三个为192.168.10.128,第四个为192.168.10.192

B类地址例子1:

网络地址:172.16.0.0;子网掩码255.255.192.0(/18)

1.子网数:2*2=4

2.主机数:214次方-2=16382

3.有效子网:256-192=64;所以第一个子网为172.16.64.0,最后1个为172.16.128.0

4.广播地址:下个子网-1.所以2个子网的广播地址分别是172.16.127.255172.16.191.255

5.有效主机范围是:第一个子网的主机地址是172.16.64.1172.16.127.254;第二个是172.16.128.1172.16.191.254

B类地址例子2:

网络地址:172.16.0.0;子网掩码255.255.255.224(/27)

1.子网数=211次方-2=2046(因为B类地址默认掩码是255.255.0.0,所以网络位为8+3=11)

2.主机数:25次方-2=30

3.有效子网:256-224=32;所以第一个子网为172.16.0.32, 最后1个为172.16.255.192

4.广播地址:下个子网-1.所以第一个子网和最后1个子网的广播地址分别是172.16.0.63172.16.255.223

5.有效主机范围是:第一个子网的主机地址是172.16.0.33172.16.0.62;最后1个是172.16.255.193172.16.255.223

原创文章,作者:wangdongxu,如若转载,请注明出处:http://www.178linux.com/74584

(1)
wangdongxuwangdongxu
上一篇 2017-05-02
下一篇 2017-05-02

相关推荐

  • bash的工作特性-命令执行状态返回值、命令行展开

    bash的基础特性:命令的执行状态结果 命令执行的状态结果:      bash通过状态返回值来输出此结果:           成功:0           失败:1-255 命令执行完成之后,其状态返回值会保存于bash的特殊…

    Linux干货 2016-08-22
  • IO重定向和管理及管道

    IO重定向   通常对程序来讲,输入输出数据可以是键盘、鼠标、显示器等;IO重定向就是将原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器输出而是希望输入到某以文件中的可以通过Linux重定向进行这项工作。  IO重定向和FD(File Descriptor)有关。      标准输入(std…

    Linux干货 2016-08-05
  • 2017中华数据库与运维大会强势回归!

         时隔一年,2017年中华数据库与运维大会将于06月03日在上海宝丰联大酒店强势回归,届时来自全国各行各业的IT从业人员将欢聚上海,探讨与交流数据库和运维的经验。       自2009年以来,超过4000位技术总监、技术负责人、架构师、项目经理、运维总监、运维经理、DBA经理、DBA、运维…

    2017-02-28
  • 0812 find 作业

    0812作业 1、查找/var目录下属主为root,且属组为mail的所有文件 [root@CentOS 7 ~]# find /var -user root -a -group mail /var/spool/mail [root@CentOS 7&nbsp…

    Linux干货 2016-08-13
  • bash脚本之函数及循环特殊用法

    一,概述 while的循环特殊用法(遍历文件的每一行)     while read line;do         循环体        &nbsp…

    Linux干货 2016-08-29
  • linux查找命令locate、find

    本次博主来介绍下超实用的查找命令,没有查不到,只有做不到。 直接上干货:查找命令:locate和find,常用find,我们重点介绍find locate 通过查询系统上预建的文件索引数据库全盘查找所需文件,locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引的构建是在系统…

    2017-08-12