非常感谢各位小伙伴的支持,昨天头条号通过了优质领域创作者认证,这是对我十几天认真分享网络知识的认可。后续我会继续给大家分享高质量的网络知识,希望小伙伴还能一如既往的继续多持我,帮忙多点赞和转发。后面我还会分享路由、交换、MPLS、VPN、QoS等方面的内容。
同时各位小伙伴有什么需求,可以留言提出来,我会尽量的满足,今天的文章就是为了回报一位粉丝的支持而写的!
概述划分子网是任何一个网络工程师都必须掌握的基本技能,但由于在工作中经常使用24位掩码,在加上网络上有很多小工具可以自动计算,所以很多小伙伴都已经丧失了手工划分子网的能力。但我们作为一个高手,还是要具备手工划分子网能力的。
其实手工划分子网并不复杂,只需要记住3个部分、2个地址、1个公式,就可以轻松的划分子网。下面我们一起来看一下!
划分子网原因
Classful地址
我们都知道IP地址分为A、B、C、D、E五类Classfull地址,但通常我们只使用A、B、C类地址来划分子网,因为D类地址用于组播,E类地址暂时保留不用。
如上图所示,classful地址只包含两部分:network和host。一个A类地址可以包含的主机有16,777,214 (2的24次方-2 )个,这要是分配给一个组织和公司,是极大的浪费,因为没有公司能用完这么多地址。即使一个C类地址也包含254个可用的IP,这对于公网地址短缺的现状,全部分配给一个公司仍然是太多了。
看到这里,有的小伙伴可能会说,在公司都是使用的是私有地址,随便分配一个8网段的A类地址,就足够整个公司使用,不存在地址不够一说。那么这么想的小伙伴一定没有注意另外2个问题:
问题1:网络中的无用流量对带宽的占用
我们知道,一台主机为了和其它主机进行通信,会发送一些的报文,最典型的就是ARP报文。平常可能我们感知不太明显,因为我们所在的网络规模一般都很小。
但是假设网络中有1万台主机,一台主机发送的ARP报文,交换机会转发给剩下的9999台主机,交换机每秒需要发送9999个ARP报文。在极端情况下,所有的主机之间都互相通信,那么网络带宽很快就会被这些无用的流量占用满的。
问题2:所有的PC都要处理其它PC发送的无用流量;
接上面的例子,一台主机发送的ARP请求报文,只对于目标主机是有用的,对于剩下的9998都是无用的,收到以后就会丢弃。但是这9998台主机收到ARP报文以后,都需要处理,它要判断这个ARP是否是请求自己的MAC地址,这也会消耗主机的资源。网络规模越大,这种消耗越明显,对电脑的运行速度影响也就会越大。
所以在工作中,在网络规模比较小,几台PC怎么连都可以,不需要考虑划分子网。但是在较大的网络中,我们都是要划分子网的,不会把所有的PC都分在同一个网段。
据我观察,越是大型的公司,对子网划分越严格要求,不浪费一个地址是他们追求的目标。这就要求我们也要掌握划分子网这项技能,后面咋们也是需要去大公司镀金的,不能老是在小公司,对我们的职业生涯没有好处。
划分子网的3个部分,2个地址3个部分
上面我们已经看到了,对于一个classful地址来说,它由二部分组成:network和host。
而划分子网本质是从host拿出一部分出来,作为network;拿出的这一部分network,我们称它为subnet(子网),所以IP地址就变成了三部分:network、subnet、host,如下图所示:
IP地址变成三部分
2个地址
对于任何一个IP地址来说,都有两个与它对应的特殊IP地址,一个是网络ID(network ID),一个是网络广播IP,这两个地址是天生存在的。
例如对于192.168.1.10 255.255.255.0 这个地址来说,它的网络ID是192.168.1.0,对应的广播地址是192.168.1.255。
对于上面这种24位的掩码的地址来说,比较简单,我们一眼就能看出,但是这个是怎么计算的呢?因为如果是稍微复杂的地址,我们就看不出来了,例如192.168.1.72 255.255.255.240,这个IP对应的网络ID和广播地址各是多少呢?
网络ID计算
我先来看一下网络ID的定义:用来唯一的标识一个网段,所有在同一个网段上的主机使用相同的网络。
计算网络ID有多种方式,我教大家一种比较常用的方式,其步骤如下:
步骤1:首先把IP地址和子网掩码的后8位都化为2进制,如下图所示:
后8位化为2进制
步骤2:我们知道子网掩码用来标识一个IP地址的网络ID长度的,使用1来表示,而使用0来表示主机;把掩码和IP进行“相与”操作,就可以得到网络ID了,如下图所示:
想与操作
步骤3:上一步得到网络ID的后8位是01000000,化为十进制是64,则这个IP对应的网络ID就是192.168.1.64
广播地址计算
广播地址,这里说的广播地址不是二层广播MAC地址,而是三层广播IP地址。三层广播地址有什么用呢?也是用来在同一个网段群发报文的,所有在同一个网段的所有主机,收到三层IP广播地址,都是不能丢弃的,需要处理。
一个网段的广播地址,有比较简单的计算方法,就是把所有的host位都置为1,如下图所示:
主机位都置为1
这样计算出来的广播地址后8位值为79,则这个网段的广播地址就为192.168.1.79
转化为十进制
一个公式
上面我们通过计算,已经得到192.168.1.72 255.255.255.240 这个IP地址对应的网络ID和广播地址,那么这个网段可以容纳多个主机呢? 换句话说,有哪些地址是和这个IP在同一个网段里的呢?
其实很简单,掐头去尾,除去网络ID和广播地址,剩下的地址,都是在同一个网段,并且是可用的。
如上面的例子,去除了网络ID 192.168.1.64,广播地址192.168.1.79,剩下的14个IP地址192.168.65-78,都是可以使用的。
这里有一个简单的公式来计算某个网段内可用的IP地址个数:2的n次方-2。
这里的n指的是这个网段内的主机位数,所以计算结果为:
计算主机数量的公式
注意点:
一个IP的网络ID和广播地址是不能配置在设备上的,如果配置,就会出错,如下图所示:
网络ID和广播地址不能配置
顺便说一下计算subnet的公式是:2的n次方。这里不需要减2,n指的是subnet的位数,在这个例子中也是4,所有对于192.168.1.0 255.255.255.0 这个C类地址来说,被分为了2的4次方,即16个subnets。
前缀和掩码换算掩码地址太长,写起来太复杂,所有很多时候我们习惯使用前缀来表示子网掩码,例如192.168.1.72 255.255.255.240,可以写为192.168.1.72/28。那么掩码和前缀之间是怎么换算的呢?请看下面的步骤:
步骤:1:把内容转化2进制,例如下图
转化为2进制
步骤2:前面的24位我们都知道是网络位,在加上后面的子网位,就变成了最终的数字24 4=28;
反过来计算也一样:192.168.1.72/28对应的掩码是多少?
步骤1:28表示掩码的前面28位都是1,简写为:(位了简洁,255没有写成11111111)
步骤
步骤2:计算掩码:二进制11110000的值为240,所以掩码就为255.255.255.240;
是不是很简单?
划分子网的影响划分子网除了可以节省带宽和减少主机的负担以为,也是有缺点的,最大的缺点就是网络变的复杂了。
缺点1:看起来在同一个网段的IP,其实不是
有时你觉得这两个相隔很近的地址,看起来像在同一个网段,其实不是。例如下面的:
192.168.1.78/28,192.168.1.81/28,在同一个网段吗?
不是,它们是不能直接互通的!只有计算了以后才发现它们不在同一个网段,这就增加了维护网络的复杂度!
缺点2:在不同的子网的主机直接要通信,必须要经过网关
那这两个主机(192.168.1.78/28,192.168.1.81/28)想要通信,需要怎么办呢?中间必须加一台网关设备,这就增加了开销!
不同子网的主机通信,需要网关,如果还有疑问,可以参考我之前的文章:https://www.toutiao.com/i6742996863156224526/
总结从上面的例子中我们可以看出,网络IP地址必须要和掩码结合起来才有意义,不然你不能判断它到底是属于哪个网段,例如192.168.1.72这个地址,如果掩码不同,所在网段也不同!
我们还可以总结出:
- 网络ID的计算是IP地址和子网相与的结果
- 可用的IP地址需要去除网络ID和广播地址
- 计算可用IP地址有一个简单公式:2的n次方-2,n指的是主机位数
- 计算IP地址被划分为多少给subnet,也有一个简单公式:2的n次方,n指的是子网位数
- 子网掩码和前缀之间转换,把它们都转换为二进制然后换算,就非常简单了
关于子网划分,各位小伙伴也明白了吧?给大家留个题目,看有没有完全掌握!
192.168.1.75/29对应网络ID,广播IP是多少? 单选
0人 0%
网络ID:192.168.1.72,广播:192.168.1.79
0人 0%
网络ID:192.168.1.0,广播:192.168.1.255
0人 0%
网络ID:192.168.1.70,广播:192.168.1.79
欢迎关注我的头条号,一起讨论网络问题!
,