查看: 7276|回复: 16

IP子网划分及算法

[复制链接]
发表于 2007-4-14 17:27:45 | 显示全部楼层 |阅读模式
子网掩码
子网掩码是一个32位地址,用于屏蔽ip地址的一部分以区别网络标识和主机标识,并说明该ip地址是在局域网上,还是在远程网上。
  以下为子网掩码的详细介绍
  设定任何网路上的任何设备不管是主机、pc、router等 皆需要设定ipaddress,而跟随著ipaddress的是所谓的子网掩码, 这个子网掩码主要的目的是由ip地址中也能获得子网数 ,也就是说ip地址和子网掩码作与运算而得到.
  简单来说:常用的局域网ip段192.168.0.1 --192.168.0.254
  人们常常将子网掩码设为:255.255.255.0
  为什么这样设置呢?我做一个简单解释,192.168.0.x ,很明显这是一个c类ip段,ip地址的前三个字节是网络号码,最后一个字节是主机数,也就是说这个ip段的网络数是固定的,而主机数最多只能有254台这254台主机,虽然同属于一个ip段,但我们可以通过子网掩码的设置将他们划分为不同的子网.可划分的子网数目可以是1个、2个、4个、8个、16个、32个、64个
  当254台主机划分为一个子网时,子网掩码的设置也就是人们通常采用的255.255.255.0 ,怎样判断这254台主机在同一子网内呢?楼主有空可以算一下。用192.168.0.1-192.168.0.254 这254个ip地址分别与255.255.255.0作与运算,看看结果是否相等。
  例如:
  192.168.0.1 --11000000.10101000.00000000.00000001
  255.255.255.0--11111111.11111111.11111111.00000000
  --------------------------------------------------------
  192.168.0.0 --11000000.10101000.00000000.00000000
  所得结果的前三个字节刚好就是c类ip地址的网络号码
    
  再取一个最大的ip地址算一下:
  192.168.0.254 --11000000.10101000.00000000.11111110
  255.255.255.0 --11111111.11111111.11111111.00000000
  ------------------------------------------------------------
  192.168.0.0 --11000000.10101000.00000000.00000000
  所得结果的前三个字节刚好就是c类ip地址的网络号码
    
  这样一来,1-254中间的主机ip不用算,肯定作出来的与运算结果相同。这是采用255.255.255.0子网掩码所划分的一个子网,换言之,255.255.255.0也就是c类地址的默认子网掩码.
    
  我们再来看,接下来我将c类ip段划分为8个子网。如何划分多个子网?首先要熟记2的幂:2的0次方到9次方的值分别为:1,2,4,8,16,32,64,128,256和512.还有要明白的是:子网划分是借助于取走主机位,把这个取走的部分作为子网位.因此这个意味划分越多的子网,主机将越少,由于2的3次方为8,所以我将子网掩码的最后一个字节的前三位用1来表示可以写成255.255.255.224
    
  通过这次的子网掩码设置便将254台主机划分为8个子网,同样,我们做一下与运算验证一下:
  运算一:
  192.168.0.1 --11000000.10101000.00000000.00000001
  255.255.255.224--11111111.11111111.11111111.11100000
  ---------------------------------------------------------
  192.168.0.0 --11000000.10101000.00000000.00000000
      
  运算二:
  192.168.0.33 --11000000.10101000.00000000.00100001
  255.255.255.224 --11111111.11111111.11111111.11100000
  ------------------------------------------------------
  192.168.0.32 --11000000.10101000.00000000.00100000
      
  很明显,这次的与运算结果与运算一的结果就不相同了。说明这两个ip地址不在同一子网内,
      
  运算三:
  192.168.0.65 --11000000.10101000.00000000.01000001
  255.255.255.224 --11111111.11111111.11111111.11100000
  -----------------------------------------------------
  192.168.0.64 --11000000.10101000.00000000.01000000
    
  很明显,这次的与运算结果与运算一、二的结果均不相同。说明这三个ip地址不在同一子网内,以下的5个子网的运算我就不再做下去了。楼主有兴趣的话,自己试着做下吧。
  值得注意的是32位二进制全部为0的子网掩码为缺省路由,全部为1的子网掩码为特定主机。
  而我所举例的192.168.0.1-192.168.0.254此网段的子网掩码有:
  255.255.255.0 11111111.11111111.11111111.00000000 1子网
  255.255.255.128 11111111.11111111.11111111.10000000 2子网
  255.255.255.192 11111111.11111111.11111111.11000000 4子网
  255.255.255.224 11111111.11111111.11111111.11100000 8子网
  255.255.255.240 11111111.11111111.11111111.11110000 16子网
  255.255.255.248 11111111.11111111.11111111.11111000 32子网
  255.255.255.252 11111111.11111111.11111111.11111100 64子网
    
  以上所说子网划分为ipv4下的子网划分。目前可以用于a、b、c三类中所保留的私有地址区域中,下面三个保留区域目前多用于局域网中
    
  a类保留私有地址:10.0.0.0~10.255.255.255
    
  b类保留私有地址:172.16.0.0~172.31.255.255
    
  c类保留私有地址:192.168.0.0~192.168.255.255
    
  

2:00 | 添加评论 | 固定链接 | 引用通告 (0) | 写入日志
类域间选路( cidr )技术
无类域间选路( cidr )技术有时也被称为超网,它把划分子网的概念向相反的方向作了扩展:通过借用前三个字节的几位可以把多个连续的c类地址集聚在一起。换句话说,就像所有到达某个b类地址的数据都将发给某个路由器一样,所有到达某一块c类地址的数据都将被选路至某个路由器上。
  称做无类选路的原因在于它使得路由器可以忽略网络类别( c类)地址,并可以在决定如何转发数据报时向前再多看几位。另外一个与子网划分不同的特点在于,对于外部网络来说,子网掩码是不可见的;而超网路径的使用主要是为了减少路由器上的路由表项数。
  换句话来说,就是把c类地址当做b类地址来用,将多个c类地址做为一个块(block),从而简化路由,路由器可设定为包含地址块的前1 6位,然后把地址块作为有8位超网的一条路由来处理,而不再是为其中包含的每个c类地址处理最多可能2 5 6项路由。因而子网的划分有了变化
  isp常用这样的方法给客户分配地址,isp提供给客户1个块(block size),类似这样:192.168.10.32/28,这排数字告诉你你的子网掩码是多少,/28代表多少位为1,28位1也就是:255.255.255.224最大/32.但是你必须知道的1点是:不管是a类还是b类还是其他类地址,最大可用的只能为30/,即保留2位给主机位
    
  无类域间路由的子网掩码值:
  1.掩码255.0.0.0:/8(a类地址默认掩码)
  2.掩码255.128.0.0:/9
  3.掩码255.192.0.0:/10
  4.掩码255.224.0.0:/11
  5.掩码255.240.0.0:/12
  6.掩码255.248.0.0:/13
  7.掩码255.252.0.0:/14
  8.掩码255.254.0.0:/15
  9.掩码255.255.0.0:/16(b类地址默认掩码)
  10.掩码255.255.128.0:/17
  11.掩码255.255.192.0:/18
  12.掩码255.255.224.0:/19
  13.掩码255.255.240.0:/20
  14.掩码255.255.248.0:/21
  15.掩码255.255.252.0:/22
  16.掩码255.255.254.0:/23
  17.掩码255.255.255.0:/24(c类地址默认掩码)
  18.掩码255.255.255.128:/25
  19.掩码255.255.255.192:/26
  20.掩码255.255.255.224:/27
  21.掩码255.255.255.240:/28
  22.掩码255.255.255.248:/29
  23.掩码255.255.255.252:/30
    
  无类域间路由划分子网的几个捷径:
  1.你所选择的子网掩码将会产生多少个子网?:2的x次方-2(x代表掩码位,即2进制为1的部分)
  2.每个子网能有多少主机?: 2的y次方-2(y代表主机位,即2进制为0的部分)
  3.有效子网是?:有效子网号=256-10进制的子网掩码(结果叫做block size或base number)
  4.每个子网的广播地址是?:广播地址=下个子网号-1
  5.每个子网的有效主机分别是?:忽略子网内全为0和全为1的地址剩下的就是有效主机地址.最后有效1个主机地址=下个子网号-2(即广播地址-1)
    
  根据上述捷径划分子网的具体实例:
  c类地址例子:网络地址192.168.10.0;子网掩码255.255.255.192(/26)
  1.子网数=2*2-2=2
  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-2=2
  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
    
  由于b类网络相对缺乏和c类网络相对富余,这种把c类地址捆在一起的方法对于中等规模的机构来说很有用。此外, 无类域间路由还缩短了路由表,这大大增加了选路的效率。但是,虽然无类域间路由增强了网络地址分配的效率,可它却并不能增加ipv4下总的主机数量,因此这只是一种短期解决办法而不是对于ipv4问题的长期解决方案。
    
  

1:58 | 添加评论 | 固定链接 | 引用通告 (0) | 写入日志
ip子网划分实例
我们先假定一个环境,一个小小的公司中,目前有5个部门A至E,其中:A部门有10台PC(Host,主机),B部门20台,C部门30台,D部门15台,E部门20台,然后CIO分配了一个总的网段192.168.2.0/24给你,作为ADMIN,你的任务是为每个部门划分单独的网段,你该怎样做呢?
实际上,这就是一个很典型的IP子网划分的问题,其中,192.168.2.0/24是一个C类网段,24是表示子网掩码中1的个数是24个,这是255.255.255.0的另外一种表示方法,每一个255表示一个二进制的8个1,最后一个0表示二进制的8个0,在计算机语言中以二进制表示为11111111 11111111 11111111 00000000,0表示可容纳的主机的个数。要划分子网,必须制定每一个子网的掩码规划,换句话说,就是要确定每一个子网能容纳的最多的主机数,即0的个数,显然,应该以这几个部门中拥有主机数量最多的为准,在本例中,C部门有30台主机,那么我们在操作中可以套用这样一个经典公式:
2N-2=Hosts     2N-2=30       N=5   
N代表掩码中0的个数,5个零则意味着二进制掩码为11100000,即十进制的224.加上前面24个1,1 的总数为27个。
该掩码十进制表示为:255.255.255.224/27;
确定掩码规则以后,就要确认每一个子网的具体地址段。
以下让我们从A部门开始,一步一步DIY,其余B—E部门的操作可参照进行。
第一步:确定A部门的网络ID
网络ID,即本部门所在的网段,是由IP地址与掩码作“与运算”的结果。“与运算”是一种逻辑算法,其规则是:1与1为1;0与0 、0与1、1与0的结果均为0。
已知:当前的IP地址192.168.2.0的最后一位是0,二进制表示为00000000;而我们已经算出的掩码255.255.255.224的最后一位是224,二进制表示为11100000。
下面让我们来做一个与运算。要注意,由于掩码的后五位为0,那么IP地址只有前三位参加运算,而后五位仅仅列出,不参加运算。⑴
   0 0 0  0 0 0 0 0
与  1 1 1  0 0 0 0 0
     0 0 0  0 0 0 0 0 (十进制:0)

   0 0 1  0 0 0 0 0
与  1 1 1  0 0 0 0 0
     0 0 1  0 0 0 0 0 (十进制:32)
.......
这样就得到了A部门的网络ID为192.168.2.32/27,依此类推,根据主机数最多为30个的原则,B部门为192.168.2.64/27,C部门为192.168.2.96/27等等。
第二步,确定A部门的地址范围。
细心的朋友可能会发现,如果A部门的网络ID从32开始、并且主机数为30的时候,似乎B部门的ID应该是从62开始才对,为什么B部门的ID为64呢?这是因为,根据局域网规范,网络中必须要有两个保留地址作为网络专用,一个叫网络回环地址,代表网络本身,其地址全为0;一个叫广播地址,专用于主机进行数据广播。其地址全为1,这两个地址是不得被主机占用或分配的,在本例中,A部门网络地址全为0时(只是后面5位!),二进制表示为00100000,
其十进制值为32;当网络地址全为1时,二进制表示为00111111,十进制值为63;由此可见:192.168.2.32仅仅是A部门网络的本网地址(即网络ID),而192.168.2.63为A部门网络的广播地址。现在再看看前面提到的公式?之所以要减一个2,就是要减去不能被分配和占用的这两个地址。所以,A部门实际上可分配给每个主机的地址范围为192.168.2.33 - 192.168.2.62,掩码均为255.255.255.224;所以,B部门的网络ID是从64起算的,与运算的图示如下:
   0 1 0  0 0 0 0 0
与  1 1 1  0 0 0 0 0
     0 1 0  0 0 0 0 0 (十进制:64)
显然,192.168.2.64是B部门网络的本网地址,并且不难算出,192.168.2.95是B部门网络的广播地址,B部门实际上可分配给每个主机的地址范围为192.168.2.65 - 192.168.2.94,同理可参照计算出C-E部门的地址范围。
于是,你圆满的完成了任务,可CIO还想考验一下你的能力,又提出了两个问题:
1、 公司各部门现有条件下的网络可扩展性怎样?
2、 公司目前可支持的子网数到底有多大?
不要紧张,这些纸老虎都是一捅就破的。第一个问题,所谓可扩展性,其实就是说在目前网络规划的条件下,各部门所能增加的主机数量,还不明白吗?就是有效的主机数减去现有主机数的值,对A部门而言,30-10=20,那么,A部门还能增加20台主机,当然C部门就无法再增加了。
对第二个问题,我们仍然要用到那个熟悉的经典公式:
2N-2=可支持的子网数      23-2=6
   这里的N表示掩码中借位的个数,掩码从CIO给定的的24位(24个1)变成了27位(27个1),“借用”了三位,所以N用3代换(至于为什么要减2,各位朋友可以自己思考一下),结果为6,表示一共可以划分6个子网,而当前只有5个部门,已划分了5个子网,还可以再增加一个部门,再划一个子网。

事情“似乎”完满解决了,可能朋友们还有觉得本例中有那么一些说不清的地方……..
如果C部门的主机数不是刚好30台,而是31,33等无法整除的数,怎么办?其实,在计算的时候,用常规算法如果出现了小数等无法除尽的时候,只需要把小数收上来就行了,注意,不是四舍五入,比如结果为5.3或5.2时,必须收整,使N为6,目的是为了让子网可容纳的主机只多不少,这样才能最大限度的保证网络ID的正确。
回复

使用道具 举报

发表于 2007-4-16 17:26:37 | 显示全部楼层
不错。。。。很好。。。哈
回复

使用道具 举报

发表于 2007-4-25 03:16:42 | 显示全部楼层
请问:
255.255.255.0 11111111.11111111.11111111.00000000 1子网
  255.255.255.128 11111111.11111111.11111111.10000000 2子网
  255.255.255.192 11111111.11111111.11111111.11000000 4子网
  255.255.255.224 11111111.11111111.11111111.11100000 8子网
  255.255.255.240 11111111.11111111.11111111.11110000 16子网
  255.255.255.248 11111111.11111111.11111111.11111000 32子网
  255.255.255.252 11111111.11111111.11111111.11111100 64子网


类域间选路( cidr )技术
划分子网时候会有不同,那么在实际中是用哪一种划分的啊?
回复

使用道具 举报

发表于 2007-4-29 00:03:27 | 显示全部楼层
回复

使用道具 举报

发表于 2007-5-15 22:04:16 | 显示全部楼层
不错,精华了
回复

使用道具 举报

发表于 2007-5-16 09:05:50 | 显示全部楼层

原创就最好

如果加上自己的一些理解就最好.
回复

使用道具 举报

发表于 2007-6-9 20:23:45 | 显示全部楼层
自己看过没有啊,一味的说好
回复

使用道具 举报

发表于 2007-6-13 17:34:24 | 显示全部楼层
跟我的划分方法有点类似,但是写得太复杂了,呵呵~
回复

使用道具 举报

发表于 2007-6-15 12:04:57 | 显示全部楼层

我觉得好像还有两个段可用啊

我觉得192.168.1.192/27  和192.168.1.224/27也是可用的网段啊,大侠请指点
回复

使用道具 举报

发表于 2007-7-23 21:25:25 | 显示全部楼层
已经够不错的了  呵呵饿!
回复

使用道具 举报

发表于 2007-8-7 14:45:15 | 显示全部楼层
谢谢LZ,不过还有一些我没搞明白.
无类域间路由是什么?为什么要减去两个子网呢?
回复

使用道具 举报

发表于 2007-8-7 15:35:37 | 显示全部楼层
看到了,不错~~~~
回复

使用道具 举报

发表于 2007-8-8 10:49:26 | 显示全部楼层
晕 去下个划分子网的工具不就可以了吗 当然自己会是更好
回复

使用道具 举报

发表于 2007-10-30 11:06:11 | 显示全部楼层
非常详细,谢谢楼主分享!
回复

使用道具 举报

发表于 2009-7-12 15:50:47 | 显示全部楼层
恩  确定自己的分析在里面!!1    2:00 | 添加评论 | 固定链接 | 引用通告 (0) | 写入日志
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表