子网掩码快速算法及可变长掩码(VLSM)

来源:互联网 发布:怎么申请淘宝会员卡 编辑:程序博客网 时间:2024/04/29 14:54
作者: 阿砖 ]
 
所有资料均从网络上摘抄汇总,有耐心看下去就能明白,CIDR部分看起来比较费劲 [sweat]

如果你希望每个子网中只有5个ip地址可以给机器用,那么你就最少需要准备给每个子网7个ip地址,因为需要加上两头的不可用的网络和广播ip,所以你需要选比7多的最近的那位,也就是8,为什么比7多的是8,不是9,10或者其它的呢?这是因为只能选择2的N次方,也就是0,2,4,8,16,32,64,128这几个数,就是说选每个子网8个ip。好,到这一步,你就可以算掩码了,这个方法就是:最后一位掩码就是256减去你每个子网所需要的ip地址的数量,那么这个例子就是256-8=248,那么算出这个,你就可以知道那些ip是不能用的了,看:0-7,8-15,16-23,24-31依此类推,写在上面的0、7、8、15、16、23、24、31(依此类推)都是不能用的,你应该用某两个数字之间的IP,那个就是一个子网可用的IP。
再拿200台机器分成4个子网来做例子吧。200台机器,4个子网,那么就是每个子网50台机器,设定为192.168.10.0,C类的IP,大子网掩码应为255.255.255.0,对巴,但是我们要分子网,所以按照上面的,我们用32个IP一个子网内不够,应该每个子网用64个IP(其中62位可用,足够了吧),然后用我的办法:子网掩码应该是256-64=192,那么总的子网掩码应该为:255.255.255.192。不相信?算算:0-63,64-127,128-191,192-255,这样你就可以把四个区域分别设定到四个子网的机器上了。

(256-掩码)就是分段后每段中的ip数,再计算已知IP在哪个段就可以了。其中段里面的IP第一个IP是网络地址,最后一个是广播地址。
比如100.100.100.100 255.255.255.240这个ip的网络号和广播地址,以及这个段中的其它地址的计算方法如下:
256-240=16,说明分成了几个段以后,每段中的IP地址数量是16个,其中第一个是网络号,最后一个是广播地址
100/16=6.x
说明100在16x6和16x7之间
16x6=96,16x7=112
说明100所在的段中第一个地址是96,最后一个是111
那就是100.100.100.100 255.255.255.240这个ip所在的网段的网络地址是100.100.100.96,广播地址是100.100.100.111
可用的IP是100.100.100.97到100.100.100.110

如果是一个无类地址172.38.3.40/25的话
25是255.255.255.128
256-128=128,每段128个,分别是0-127,128-255
40是属于第一段,所以网络位是172.38.3.0,广播是172.38.3.127,ip范围是172.38.3.1-172.38.3.126。
172.38.3.40/25是一个ip地址,该地址的网络地址是172.38.3.0,广播地址是172.38.3.127,该IP地址所在的段包含的地址范围是172.38.3.1-172.38.3.126,它是B类的,默认是16位的掩码,这里是25位,说明变长子网掩码,它被分为两段,172.138.3.0到172.38.3.127网络号为172.168.3.0,还有一段是172.38.3.128到172.38.3.255网络号为172.168.3.128,你的IP为172.38.3.40,属于172.38.3.0/127这一段的,所以网络号为172.168.3.0

155.46.16.88/27
子网掩码:255.255.255.224
256-224=32
所以分为这些段:0~32 33~65 66~98 99~131 132~164 165~197 198~230
每段的开头是网络地址
每段的结尾是广播地址

附:
A类 0-127 0 8位 24位
B类 128-191 10 16位 16位
C类 192-223 110 24位 8位
D类 224-239 1110 组播地址
E类 240-255 1111 保留试验使用

更详细的说明:
划分子网

  为了提高IP地址的使用效率,可将一个网络划分为子网:采用借位的方式,从主机位最高位开始借位变为新的子网位,所剩余的部分则仍为主机位。这使得IP地址的结构分为三部分:网络位、子网位和主机位。

  引入子网概念后,网络位加上子网位才能全局唯一地标识一个网络。把所有的网络位用1来标识,主机位用0来标识,就得到了子网掩码。如下图所示的子网掩码转换为十进制之后为:255.255.255.224

  子网编址使得IP地址具有一定的内部层次结构,这种层次结构便于IP地址分配和管理。
  它的使用关键在于选择合适的层次结构--如何既能适应各种现实的物理网络规模,又能充分地利用IP地址空间(即:从何处分隔子网号和主机号)。
在思科网络技术学院CCNA教学和考试当中,不少同学在进行IP地址规划时总是很头疼子网和掩码的计算。现在给大家一个小窍门,可以顺利的解决这个问题。

首先,我们看一个CCNA考试中常见的题型:一个主机的IP地址是202.112.14.137,掩码是255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址。

  常规办法是把这个主机地址和子网掩码都换算成二进制数,两者进行逻辑与运算后即可得到网络地址。其实大家只要仔细想想,可以得到另一个方法:255.255.255.224的掩码所容纳的IP地址有256-224=32个(包括网络地址和广播地址),那么具有这种掩码的网络地址一定是32的倍数。而网络地址是子网IP地址的开始,广播地址是结束,可使用的主机地址在这个范围内,因此略小于137而又是32的倍数的只有128,所以得出网络地址是202.112.14.128。而广播地址就是下一个网络的网络地址减1。而下一个32的倍数是160,因此可以得到广播地址为202.112.14.159。

  CCNA考试中,还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。比如一个子网有10台主机,那么对于这个子网就需要10+1+1+1=13个IP地址。(注意加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。)13小于16(16等于2的4次方),所以主机位为4位。而256-16=240,所以该子网掩码为255.255.255.240。

  如果一个子网有14台主机,不少同学常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为14+1+1+1=17 ,大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224。

无类的内部域路由(CIDR)
  子网掩码 CIDR值
  255.0.0.0 /8
  255.127.0.0 /9
  255.192.0.0 /10
  255.224.0.0 /11
  255.240.0.0 /12
  255.248.0.0 /13
  255.252.0.0 /14
  255.254.0.0 /15
  255.255.0.0 /16
  255.255.128.0 /17
  255.255.192.0 /18
  255.255.224.0 /19
  255.255.240.0 /20
  255.255.248.0 /21
  255.255.252.0 /22
  255.255.254.0 /23
  255.255.255.0 /24
  255.255.255.128 /25
  255.255.255.192 /26
  255.255.255.224 /27
  255.255.255.240 /28
  255.255.255.248 /29
  255.255.255.252 /30

C类地址的子网划分
  在一个C类地址中,只有八位是可以用来定义主机的。记住,子网位必须是由左到右进行定义的,这中间,不能跳过某些位。也就是说,C类子网掩码只能是:
  二进制 十进制 速记
  10000000 128 /25
  11000000 192 /26
  11100000 224 /27
  11110000 240 /28
  11111000 248 /29
  11111100 252 /30
  11111110 254 /31(无效)

使用可变长掩码(Variable Length Subnet Mask,VLSM)就是指一个网络可以用不同的掩码进行配置。这样做的目的是为了使把一个网络划分成多个子网更加方便。在没有VLSM的情况下,一个网络只能使用一种子网掩码,这就限制了在给定的子网数目条件下主机的数目。例如你被分配了一个C类地址,网络号为192.168.10.0,而你现在需要将其划分为三个子网,其中一个子网有100台主机,其余的两个子网有50台主机。我们知道一个C类地址有254个可用地址,那么你如何选择子网掩码呢?从上表中我们发现,当我们在所有子网中都使用一个子网掩码时这一问题是无法解决的。此时VLSM就派上了用场,我们可以在100个主机的子网使用255.255.255.128这一掩码,它可以使用192.168.10.0到192.168.10.127这128个IP地址,其中可用主机号为126个。我们再把剩下的192.168.10.128到192.168.10.255这128个IP地址分成两个子网,子网掩码为255.255.255.192。其中一个子网的地址从192.168.10.128到192.168.10.191,另一子网的地址从192.168.10.192到192.168.10.255。子网掩码为255.255.255.192每个子网的可用主机地址都为62个,这样就达到了要求。可以看出合理使用子网掩码,可以使IP地址更加便于管理和控制。

某公司有两个主要部门:市场部和技术部。技术部又分为硬件部和软件部两个部门。该公司申请到了一个完整的C类IP地址段:210.31.233.0,子网掩码255.255.255.0。为了便于分级管理,该公司采用了VLSM技术,将原主网络划分称为两级子网(未考虑全0和全1子网)。
市场部分得了一级子网中的第1个子网,即210.31.233.64,子网掩码255.255.255.192,该一级子网共有62个IP地址可供分配。
技术部将所分得的一级子网中的第2个子网210.31.233.128,子网掩码255.255.255.192又进一步划分成了两个二级子网。其中第1个二级子网210.31.233.128,子网掩码255.255.255.224划分给技术部的下属分部-硬件部,该二级子网共有30个IP地址可供分配。技术部的下属分部-软件部分得了第2个二级子网210.31.233.160,子网掩码255.255.255.224,该二级子网共有30个IP地址可供分配。
在实际工程实践中,可以进一步将网络划分成三级或者更多级子网。同时,可以考虑使用全0和全1子网以节省网络地址空间。

简单的说,可变长无非就是借位。而借位的基础是在A,B,C三类的基础上而来的。
打一个最简单的比方。172.16.0.0/16的网络公司要划分六个子网,首先算出要借几位才能得到六个子网。借一位就是2的1次方,借2位就是2的2次方,依次来推,借六个子网只有2的3次方=8能得到自己所需的六个子网在NA里面不能同时为0或为1所以要减2就是2的3次方减2=6。
然后在写出子网掩码。因为/16是B类网络掩码是255.255.0.0/16借了3位就应该是255.255.224.0/19
写二进制清楚点就是:11111111.11111111.00000000.00000000/16
11111111.11111111.11100000.00000000/19
要算多少个主机的话就看后面有多少个0这里是32-19=13这里的主机就是有2的13次方-2得到有多少主机地址。
接着在来算有哪些合法的子网。用256减去借位得来的224就是256-224=32这也叫分段的基数。32也就是第一个子网了。第二个子网就是32+32=64,第三个就是64+32=96依次算六个出来就OK了。
那么172.16.32.0/19就是第一个网段了。172.16.64.0/19就是第二个了。
第一个网段内的第一个主机就是172.16.32.1;最后一个主机就是172.16.63.254了广播是172.16.63.255.这样就可以得出来你所要的了。

CIDR(发音为“cider”)
从网络位借位给主机,和vlsm正好相反,允许一组ip网络对其他的路由器看来好象为一个实体,只有 网络位 和 主机位 来区别不同的IP 不考虑 分类(A,B,C,D,E),ISP常用这样的方法给客户分配地址,ISP提供给客户1个块,类似192.168.10.32/28
无类域间路由(Classless Inter-Domain Routing,CIDR)在RFC 1517~RFC 1520中都有描述。提出CIDR的初衷是为了解决IP地址空间即将耗尽(特别是B类地址)的问题。CIDR并不使用传统的有类网络地址的概念,即不再区分A、B、C类网络地址。在分配IP地址段时也不再按照有类网络地址的类别进行分配,而是将IP网络地址空间看成是一个整体,并划分成连续的地址块。然后,采用分块的方法进行分配。

在CIDR技术中,常使用子网掩码中表示网络号二进制位的长度来区分一个网络地址块的大小,称为CIDR前缀。如IP地址210.31.233.1,子网掩码255.255.255.0可表示成210.31.233.1/24;IP地址166.133.67.98,子网掩码255.255.0.0可表示成166.133.67.98/16;IP地址192.168.0.1,子网掩码255.255.255.240可表示成192.168.0.1/28等。

CIDR可以用来做IP地址汇总(或称超网,Super netting)。在未作地址汇总之前,路由器需要对外声明所有的内部网络IP地址空间段。这将导致Internet核心路由器中的路由条目非常庞大(接近10万条)。采用CIDR地址汇总后,可以将连续的地址空间块总结成一条路由条目。路由器不再需要对外声明内部网络的所有IP地址空间段。这样,就大大减小了路由表中路由条目的数量。

例如,某公司申请到了1个网络地址块(共8个C类网络地址):210.31.224.0/24-210.31.231.0/24,为了对这8个C类网络地址块进行汇总,采用了新的子网掩码255.255.248.0,CIDR前缀为/21。如图2所示。

可以看出,CIDR实际上是借用部分网络号充当主机号的方法。在图2中,因为8个C类地址网络号的前21位完全相同,变化的只是最后3位网络号。因此,可以将网络号的后3位看成是主机号,选择新的子网掩码为255.255.248.0 (1111,1000),将这8个C类网络地址汇总成为210.31.224.0/21。

利用CIDR实现地址汇总有两个基本条件:

待汇总地址的网络号拥有相同的高位。如图2-2-8中8个待汇总的网络地址的第3个位域的前5位完全相等,均为11100。待汇总的网络地址数目必须是2n,如2个、4个、8个、16个等等。否则,可能会导致路由黑洞(汇总后的网络可能包含实际中并不存在的子网)。

CIDR作用用于帮助减缓IP地址耗尽和路由表增大问题的一项技术。CIDR的理念是多个C类地址块可以被组合或聚合在一起以生成更大的无类别IP地址集。这些多个C类地址可以在路由表中被归纳,从而减少了路由通告。
CIDR举例从192.168.8.0/24到192.168.15.0/24的C类网络地址被使用,并且被通告到ISP的路由器。当ISP路由器向外界通告路由时,它能够将这些C类网络的路由归纳为一条路由而不必分别通告这8个C类网络。通过通告路由192.168.8.0/21,ISP路由器指明他能够到达与地址192.168.8.0的前21比特相同的所有目的地址。
http://www.pcshow.net/bbs/viewthread.php?tid=350597772
这贴有CCNP的教材,头大头大
 
 
原创粉丝点击