前置知识:
1、标准ip地址分为A、B、C、D、E五类,分类标准是ip地址的前几个比特位的值。
我们知道ip地址是32位比特-4字节组成,A类地址则是由首位为0,首字节为网络地址,其余3字节为主机地址组成,A类网络地址范围用十进制表示即为0-127,00000000 - 01111111,但由于127是特殊地址,通常用于本机测试。主机地址范围是0-2^24 - 2。因此A类地址可允许的主机数最多,通常用于大型网络;
类似的,B类地址首位10,首字节范围128 - 191,前两个字节为网络部分,后两个字节为主机部分,最大主机数2^16 - 2
C类首位110,首字节范围192 - 223, 前3字节为网络部门,最后一个字节是主机部分,
D类地址1110开头,与E类不划分网络部分和主机部分,首字节范围224-239,后三字节用于多播组。
E类则是11110开头,首字节范围240-255,其他3字节保留,用于科研。
2、子网掩码及子网划分
子网掩码是为了解决ip地址分配问题提出的一种虚拟ip技术,帮助我们在大类A,B,C的划分下,再去划分更小的子网络,用以区分网络段和主机段。(比如你要新建一个服务集群,就得去分配各主机IP,各ip的划分该怎么去确定,就需要用到了)
子网掩码也是32位4字节组成,对应ip的用1 表示,对应主机的部分用0 表示,
如A,B,C三类子网掩码:A类,255.0.0.0,B类,255.255.0.0,C类255.255.255.0
我们以一个C类子网的规划为例,
假如你申请到一个C类网络ip,你想把它划分为四个子网(通常划分子网是为了更有效利用ip地址资源,或实现流量的精细化控制管理等),
221.100.5.0 ,各个主机ip地址的范围是多少?
我们通常进行均分,221.100.5.0的默认子网掩码是255.255.255.0,子网的划分依据是子网掩码的的变化。我们要想把最后一个字节范围平分四分,则只需看它的前两位即可,前两位可分别包含00,01,10,11。同理,分2份则只看第一位,分8份则看前3位,计算方法是[log2 N],以2为底取对数取整,而划分出来的这两位我们也将它看做网络地址,因此子网的掩码是255.255.255.11000000,即255.255.255.192
那么四个子网络的网络地址分别是:
221.100.5.0
221.100.5.01000000 即221.100.5.64
221.100.5.10000000即221.100.5.128
221.100.5.11000000即221.100.5.192
主机地址范围即为200.100.5.0 - 200.100.5.64,0是网段地址,即网络地址,全1是广播地址,固排除这俩,就是221.100.5.1 - 221.100.5.63
221.100.5.129 - 221.100.5.191
221.100.5.193 - 221.100.5.254
其他需要注意的是,主机IP地址和子网掩码做逻辑与,就得到网段地址,根据IP地址大类,就可以反向推出子网的个数,网段地址加主机地址,就是主机ip地址,如上网段地址221.100.5.0 + 0.0.0.1,主机ip地址就是221.100.5.1