老司机:子网掩码我不怕,怕的是子网划分!
教程每周二、四、六更新
子网掩码
不按照ABC类划分网段,可以任意指定网段的范围,即CIDR无类域间路由
CIDR表示法:IP/网络ID位数。如:172.16.0.0/16
netmask子网掩码:32位或128位的数字,和IP配对使用,用来确认IP地址中的网络ID和主机ID,网络ID对应掩码是1的位置,主机ID对应掩码位0的位置。
网络地址 = (二进制的 IP 地址) AND (地址掩码)
我们看个实例:
已知IP地址是128.14.35.7,求网络地址。
上图中,粉红色背景的部分正好是20位,作为网络ID,后面的就是全0,这样与IP地址相与,得到的就是网络地址。通过这个例子我们也可以看到:
不按照A、B、C这种分类进行IP划分以后,网络ID的位数是不固定的,不一定是整数个字节
计算的时候,需要把所有的数都换算成对应的二进制数进行计算
当然,网络ID永远是在最左边,这样的话,就不是所有的十进制数都是子网掩码,我们来看:
所以,我们记住上面的表格,就可以轻松的得到对应的掩码值,不需要再费时间计算了。
这里再重复一下前面讲过的两个公式,然后我们看个例子:
网络的最多主机数:2^主机ID位数-2
网络数(网段数)=2^网络ID中可变的位数
实例讲解1:
netmask:255.255.192.0, 网络ID位:18,主机ID14位,主机数:2^14-2
实例2:
A:192.168.1.100 netmask: 255.255.255.0
B:192.168.2.100 netmask: 255.255.0.0
判断A和B是否在同一个网段?
通常工作中:判断是不是在同一个网段,需要计算出网络ID,如果网络ID相同,则在同一网段,否则不在同一个网段。
192 .168 . 1.100 # 十进制地址
192 .168 .000000001.01100100 # 二进制地址
11111111.11111111.11111111 .00000000 # 掩码的二进制,和上面地址相与,得到:
192 .168 .000000001.00000000 # 网络地址就是192.168.1.0
192 .168 . 2.100 # 十进制地址
192 .168 .00000010.01100100 # 二进制地址
11111111.11111111.00000000.00000000 # 掩码的二进制,和上面地址相与,得到:
192 .168 .00000000.00000000 # 网络地址就是192.168.0.0
所以上面的两个地址不是同一个网段。但是这么算对吗?
实际上,判断两者是不是在同一个网段,需要用自己的子网掩码分别和自己的IP以及对方的IP相与,如果得到的网络ID相同,则才认为是在同一个网段,否则不在同一个网段。所以上面的结果,如果从A的角度看,A和B是不在同一个网段的,但是从B的角度看(网络地址都是192.168.0.0),B和A是在同一个网段的。这是因为,在网络通信的时候,我是不知道对方的子网掩码的,只能用我自己的子网掩码和对方的IP地址相与。
课后练习:
172.16.2.100/28
求这个地址的主机数、网络ID、主机ID最小的IP和最大的IP
划分子网
将一个大的网络划分成多个小的网络,主机ID位数变少,网络ID位数变多,网络ID位向主机ID位借位。
下面我们通过一个实例来讲解子网划分:
请把10.0.0.0/8划分成2个子网
前提原则:向主机ID位借位的时候,把数字换成二进制形式,从最左侧开始借位。
我们把第二个数字0换成二进制以后,写成如下形式
| 10 | 00000000 | 0 | 0 || ---- | -------- | ---- | ---- |
第一列的数字是固定,所以,10.0.0.0/8的最小IP地址是10.0.0.1,最大地址是10.255.255.254。故,第二列的8个0可以都为0,也可以都为1 。 现在要求划分两个子网,网络数(网段数)=2^网络ID中可变的位数,所以就是2^1,所以我们只需要从主机ID位借一位即可:
| 10 | 0 0000000 | 0 | 0 || ---- | ----------- | ---- | ---- |
其中第二列最左侧的0就是我们借来用作网络ID的位。经过上面的讨论,我们知道,这一位可以是0也可以是1。
当这一位为0的时候,我们可得网络地址为:10.0.0.0/9
当这一位为1的时候,我们可得网络地址为:10.128.0.0/9
这就是我们分出来的两个网络。
课后练习:
假设取得网络地址200.200.200.0 ,子网掩码为255.255.255.0。现在一个子网有100台主机,另外4个子网有20台主机,请问如何划分子网,才能满足要求。请写出五个子网的子网掩码、网络地址、第一个主机地址、最后一个主机地址、广播地址。(子网号可以全0和全1)。
雷哥在这个暑假决定搞一件大事:带你学Linux 云计算 运维。
课程特色:
量身定制学习计划、正规出版社书籍电子版; 雷哥一对一答疑(集中做计划学习一个月,答疑有效期一年); 雷哥督促学习进度。 点我查看详情
推荐阅读
干货 | PXE+kickstart无人值守批量装机(原理与架构)
40个简单而有效的Shell脚本,想不起来的时候一看就懂(下)
干货 | PXE+kickstart无人值守批量装机(实战部署)
ifconfig已淘汰,ip登场
Linux 网络状态工具 ss 命令详解
这次终于搞明白VLAN技术了
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!