背景

我们工作中,会经常遇到网络规划的场景,那对于工程师来说避免不了的就是网络划分,之前我们可通过网络地址的构成原理手动计算,但这样效率可能有点低,现在已经流行很多在线网络计算工具,工程师科借助此,来辅助网络规划工作,提升效率,本文,列出了几个网络划分工具的路径,以供相关参考!

另外,让我们回顾下相关网络知识:

1)IP地址的结构

IP地址=网络地址+主机地址 或者 IP地址=网络地址+子网地址+主机地址,其中,有2个概念:

网络位(网络地址):用于计算机/网络协议识别主机所在的网络身份;

主机位(主机地址):用于识别该网络中的主机身份。

2)IP地址类别: IP地址可分为以下五类:

其中:A类:用于政府机构;B类分配给中等规模的公司;C类则可分配给任何需要的人;D类用于组播;E类用于实验。127.X.X.X是保留地址,用做循环测试用,不能通讯。如上图所示,当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两位总是10,C类地址的前三位总是110。

A类地址的IP范围:1.0.0.0-126.255.255.255;
本地测试IP范围:127.0.0.0-127.255.255.255;
B类地址IP范围:128.0.0.0–191.255.255.255
C类地址IP范围:192.0.0.0–223.255.255.255
D类地址IP范围:224.0.0.0——239.255.255.255
E类地址IP范围:240.0.0.0——255.255.255.255

私网地址:

3)IPv6地址:

IPv4最大的问题在于网络地址资源有限,基于此,发展了互联网协议第6版,即Pv6。后者解决了网络地址资源数量不够用的问题,大大降低了多种接入设备连入互联网的障碍。IPv6的地址长度为128b,16字节,是IPv4地址长度的4倍。区别与IPv4的十进制格式,它采用十六进制表示。IPv6有3种表示方法:

①冒分十六进制表示法

格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16位,以十六进制表示,格式类似如下:
  ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
  
②0位压缩表示法

某些情况下,一个IPv6地址中问可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
  FF01:0:0:0:0:0:0:1101 → FF01::1101
  0:0:0:0:0:0:0:1 → ::1
  0:0:0:0:0:0:0:0 → ::
  
③内嵌ipv4表示法

通过 IPv4 映射对应的 IPv6 地址 ,实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,它允许 IPv6 应用程序直接与 IPv4 应用程序通信。我们在IPv4过渡IPv6阶段,会常用到这种格式,常表示为:X:X:X:X:X:X:d.d.d.d,其中,d.d.d.d为对应的IPv4地址,格式类似如下,

0:0:0:0:0:ffff:192.1.56.10 和 ::ffff:192.1.56.10/96(短格式)。

关于进制如何转化为16进制?这里用一个网络示例来介绍,方法是将IPv4的各十进制数除以16,反向取余数,除到不能除为止。如将135.75.43.52 ,化成16进制,其中16进制的10、11、12、13、14、15分别用A、B、C、D、E、F来表示;:

如上图示,十进制的IP135.75.43.52 最终得出的是十六进制87.4B.2B.34,而87.4B.2B.34这串地址还是8位,将前96位补零,如下:
0000:0000:0000:0000:0000:0000:874B:2B34或者::874B:2B34。

4)子网掩码(subnet mask)作用

子网掩码不能单独存在,它必须结合IP地址一起使用。作用如下:

①将某个IP地址划分成网络地址和主机地址两部分,可判断两台设备是否属于同一网段;

②用于将一个大的IP网络划分为若干小的子网络,减少IP浪费。

如果两台计算机各自的IP地址与子网掩码进行与运算(按位与:全1则得1,不全1则得0)后,若得出的结果是相同的,则可说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。

1、网络划分工具

IP地址计算器:点击进入

子网掩码换算 点击进入

2、Linux系统命令划分网络

对于网络划分,linux下有一个Ip计算器工具,就是命令:Ipcalc。用法如下:

Ipcalc命令用于计算ip地址的网络地址,广播地址和子网掩码。如果没有该命令,安装 ipcalc;

sudo apt install ipcalc #Ubuntu
#yum install inits #RHEL/CentOS
#dnf install inits #Fedora

语法:Ipcalc [-bnmnps] <ip地址> [子网掩码]

选项

-b 或broadcast :显示给定的IP地址和网络掩码计算出的广播地址,抑制二进制输出
-4:ipv4;
-6:ipv6;
-c 或–check:检测ip地址
-h 或 hostname :显示给定IP地址所对应的主机名;
-m 或 netmask : 由给定的IP地址计算器网络掩码;其中网络掩码“位格式”也被称为CIDR格式(CIDR=无类别域间路由选择)。
-n 或 network : 给定的IP地址和网络掩码计算网络地址;
-p 或 prefix :显示指定子网掩码/ip的网络前缀。
-s 或–slient: 安静模式,不显示指定错误信息。
–help:显示帮助信息。

示例:

1)计算网络地址:#ipcalc -n 192.168.1.2/24 //显示该ip地址所属网段,输出如下:

NETWORK=192.168.1.0

或者执行:# ipcalc -n 192.168.1.2 255.255.255.0 //输出如下:
NETWORK=192.168.1.0

2)计算广播地址:# ipcalc -b 192.168.1.2/24 //示该ip地址所属网段的广播地址,输出如下:

BROADCAST=192.168.1.255

3)计算子网掩码:# ipcalc -4 -m 192.168.1.2 //示该ip地址IPV4网段的网络掩码,输出如下:

NETMASK=255.255.255.0

4)计算网段的掩码前缀:#ipcalc -p 192.168.1.2 255.255.255.0
PREFIX=24

5)显示局域网内IP地址对应的主机名:# ipcalc -h 127.0.0.1
HOSTNAME=localhost

6)综合显示网络信息:# ipcalc -pnbm 192.168.1.2 255.255.255.0
NETMASK=255.255.255.0
PREFIX=24
BROADCAST=192.168.1.255
NETWORK=192.168.1.0

3、网络知识点:

IP组播地址范围:所有的多播地址可以很容易被认出,因为同位模式“1110”开始。

224.0.0.0 - 224.0.0.255知名多播地址,控制通道

224.0.1.0 - 238.255.255.255全球范围的(互联网宽)组播地址

239.0.0.0 - 239.255.255.255本地多播地址

4、手动子网划分

将标准的网络划分子网后,默认的子网(<网络标识>,<主机标识>)将转化为3级结构(<网络标识>,<子网标识>,<主机标识>),即实际划分只是将二级结构的IP地址的主机位部分进行了二次划分,即我能常说的主机位借位,而不改变网络位;其实,也可以向网络位借位(子网聚合)。


4.1、网络划分示例1:将192.168.0.0/24此网络划分为4个子网

1)当前为C为地址,划分为4个子网,借助公式:4=2²,即我能需要向主机位借2位进行子网划分:(如划分成8个子网则需要借用三位 (8 = 2³) ,将24位C子网掩码转成二进制:
255.255.255.0 (10进制)转化后如下:
<1111 1111.1111 1111.1111 1111>.<0000 0000> (16进制) //借主机位2位后,将借用的子网标识全部换成1,如下
<1111 1111.1111 1111.1111 1111>.<11><00 0000> //子网掩码255.255.255.192

这样,网掩码就从原来默认的没有划分子网时的255.255.255.0变成了255.255.255.192

2)借用了原先的8位主机标识的2位后主机标识剩下6位,那这6位就可以确定这要划分的子网中的主机数量为:

每个子网可以拥有的最大主机数量为2^6 -2=62个,因主机标识为全0的,即第一个地址是用于标识该子网网段,而最后一个地址全1是用做该网段的广播地址,这两个地址不能用于主机。

如果按主机数量来划分子网,也可以通过此公式来倒推:每个楼层需要58个工位,那么就需要2^n>=58,然后向前取整,2的5次方等于32,则取6次方等于64,大于58,满足子网划分要求,反推n(主机位)=6,则需要向主机位借位8-n=8-6=2,即需要将原主机位借位2个主机位,来进行子网划分。我们回到上述的示例,划分4个子网后,各子网如下:

第一个网段为1100 0000.1010 1000.0000 0000.0000 0000(主机标识全为0) >> 192.168.0.0
第二个网段为1100 0000.1010 1000.0000 0000.0100 0000(子网网段不同) >> 192.168.0.64
第三个网段为1100 0000.1010 1000.0000 0000.1000 0000(子网网段不同) >> 192.168.0.128
弟四个网段为1100 0000.1010 1000.0000 0000.1100 0000(子网网段不同) >> 192.168.0.192

3)根据上面的4个子网段,就可确定每个网段可以分配给主机使用的IP范围了,可分配范围从每个网段的网络号+1开始之后的62个ip(因主机容量为62),如下所示:

第一个网段的可分配范围为:192.168.0.1–192.168.0.62
第二个网段的可分配范围为:192.168.0.65–192.168.0.126
第三个网段的可分配范围为:192.168.0.129–192.168.0.190
第四个网段的可分配范围为:192.168.0.193–192.168.0.254

4)那么各子网对应的广播地址,就是将剩下的各子网主机号设置为全1的ip地址,如下所示:

第一个网段的广播地址为:192.168.0.63
第二个网段的广播地址为:192.168.0.127
第三个网段的广播地址为:192.168.0.191
第四个网段的广播地址为:192.168.0.255

最终结果如下:

4.2、网络划分示例2:

某单位划分一个C类IP地址:201.222.5.0,子网掩码24,需要划分为6个子网,每个子网需要容纳20台主机,

1)根据需求子网数量为6,则计算向主机借位数为:

2)确定新的子网掩码:

3)验证子网数是否满足主机容量需求:

4)子网划分:为5个子网分配网络号,如下

5)确定主机地址

第一个子网:001,即<1111 1111.1111 1111.1111 1111>.<001><0 0000> //主机容量32,向后推32个地址得出2^5=32,即从第6到第2位是1,最后一位是0,即<001><1 1110> :

第一个子网:201.222.65.0/27 则:依次类推:

第一个子网:201.222.65.32/27 //下一个网络位为:0+32=32

第三个子网:201.222.65.64/27 //网络位=24+3,去除网络位和广播位后,有30个有效地址,地址范围如下:

第四个子网:201.222.65.96/27 //96=64+32,则下一个网络位为:96+32=128

第五个子网:201.222.65.128/27 //下一个网络位为:128+32=160

第六个子网:201.222.65.160/27 //下一个网络位为:160+32=192,对应的广播地址:192+32=224

第七个子网:201.222.65.192/27 //下一个网络位为:192+32=224

第八个子网:201.222.65.224/27 //最后一位是广播地址:224+31=255

5、网络聚合

其实,子网聚和与子网划分的操作与意图是正好相反。不同于子网划分向主机位借位,子网聚合是向网络位借位(借用给主机位),将多个子网汇聚成一个大网,相当于找两个子集的并集。

网络聚合示例:将如下五个子网聚和成一个超网

192.168.11.0/27、192.168.12.0/27、192.168.14.0/27、192.168.14.32/27、192.168.14.64/27

对上述5个子网,主要是在第三个分段出现不同,我们重点关注该分段网络即可。由上观察各子网可知,我们可直接将之聚合成192.168.0.0/16,这样虽然操作最简单,但会出现一些网络问题,如局域网内又增加了一个子网192.168.0.0/18,当路由器存在此网络的路由表项时,会将其也聚合进去,而192.168.0.0/18又与上述部分子网重合从而造成路由混乱,故应尽量找到它的最小合集,即找到最小的超网,才是我们的目标。

1)将各子网掩码换算成二进制,因前2个分段相同,这里只转化后2个分段掩码:

00001 011 00000000 ==>11.0

00001 100 00000000 ==>12.0

00001 110 00000000 ==>14.0

00001 110 00100000 ==>14.32

00001 110 01000000 ==>14.64

由上可知,掩码前5位相同,剩余位数填充为网络位0,即00001000 00000000 换算后对应==> 8.0 ;故掩码长度为16(前2个分段掩码数)+5=21(新的聚合物掩码数)

结论:故可得出,这5个子网的超网为:192.168.8.0/21

网络划分之IP地址计算器相关推荐

  1. 网络和IP地址计算器

    网络和IP地址计算器: https://www.sojson.com/convert/subnetmask.html IP知识: IP&IP地址.ipv4&ipv6.子网掩码.网段计算 ...

  2. 【Linux网络编程】IP地址介绍

    什么是 IP 地址 IP 地址(Internet Protocol Address)也称为网间地址.网际地址.IP地址是指互联网协议地址(英语:Internet Protocol Address,又译 ...

  3. ipcalc命令 – 简单的IP地址计算器

    ipcalc命令的全称是:Calculate IP information for a host(计算主机的IP信息) ipcalc命令是一个简单的ip地址计算器,可以完成简单的IP地址计算任务. 语 ...

  4. 计算机网络子网的特定主机地址,网络基础之IP地址和子网掩码

    原标题:网络基础之IP地址和子网掩码 今天来看下IP地址和子网掩码. 子网掩码是每个网络工程师必须要掌握的基础知识,只有掌握它,才能够真正理解TCP/IP协议的设置.下边我们一起来复习复习. 一.IP ...

  5. VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装

    VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装 在阿里云开源镜像地址下载镜像 Index of /centos/7.2.1511/isos/x86_64/ http://mi ...

  6. Linux网络编程之IP地址转换为无符号整数的方法

    Linux网络编程之IP地址转换为无符号整数的方法,代码如下:(没考虑异常输入) #include <stdio.h> #include <string.h> #include ...

  7. Python编程获得本机所有网络链接的ip地址

    一.前言 本文使用Python编程获得本机所有网络链接的ip地址,主要思路为:通过os模块调用cmd命令ipconfig,将返回的结果 保存,然后使用re模块的正则表达式从结果中获得所有网络链接的ip ...

  8. 【Python基础】网络编程之IP地址

    [Python基础]网络编程之IP地址 文章目录 IP 地址的介绍 1. IP 地址的概念 2. IP 地址的表现形式 2. IP 地址的作用 3. 查看 IP 地址 4. 检查网络是否正常 3. 小 ...

  9. 网络无法分配 IP 地址有什么原因?

    IP地址是计算机网络中用于唯一标识一台设备的地址,由四部分组成: 网络地址:表示设备所连接的网络的地址,多数情况下是点分十进制表示的. 主机地址:表示设备在网络中的具体物理地址,也是点分十进制表示的. ...

最新文章

  1. 量子信息技术研究现状与未来
  2. 聚类 高维聚类 聚类评估标准 EM模型聚类
  3. oracle帮助系统,开启Oracle的帮助系统
  4. 【Servlet】解决org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method……
  5. Android 系统(12)---Zygote进程启动过程
  6. Angularjs在初始化未完毕时出现闪烁的解决办法
  7. 机械--NX2007(UG)有限元分析教程1--简单物体
  8. Cocos Creator 3.6 新特性详解 1/3:编辑器篇
  9. 数值计算之第二期:误差分析
  10. 20130408-[转]贴片钽电容的封装、尺寸和标识
  11. 搜索引擎算法研究(一)
  12. Exception in thread main java.util.UnknownFormatConversionException: Conversion = ';'
  13. 软件项目量化管理(CMMI高成熟度)实践经验谈——之概述篇
  14. input输入框只能输入11位数字
  15. P8339-[AHOI2022]钥匙【虚树,扫描线】
  16. Unity - Timeline 之 Muting tracks(屏蔽轨道)
  17. 常见的数据校验方式(奇偶,累加,CRC校验)
  18. MediaPlayer提示“无法播放视频”
  19. 近五年中文电子病历命名实体识别研究进展
  20. 论文阅读 (84):A GAN-based Algorithm for Multi-Instance Multi-Label Learning on Overlapping Signal Wavefo

热门文章

  1. am5728 中断的使用
  2. mac远程控制程序:AnyDesk for Mac
  3. 树莓派CM4开机准备开发环境
  4. Krita源码分析(一)——项目结构
  5. html按钮扁平化,HTML5和CSS3扁平化风格博客教程的资源分享
  6. 46、微信-群聊列表
  7. 超闩锁和子闩锁如何工作的
  8. MOSES的高级特征和功能
  9. 使用jbe修改jar中class中的内容
  10. 总结 | Prompt在NER场景的应用