一、子网掩码的概述及作用
1 )子网掩码是一个应用于TCP/IP网络的32位二进制值,每节8位,必须结合IP地址对应使用。
2 )子网掩码32位都与IP地址32位对应,如果某位是网络地址,则子网掩码为1,否则为0。
3 )子网掩码一般用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而引起IP浪费。
4 )要让子网划分方案管用,网络中的每台机器都必须知道主机地址的哪部分为子网地址,这是通过给每台机器分配子网掩码实现的。子网掩码是一个长32位的值,让IP分组的接收方能够将IP地址的网络ID部分和主机ID部分区分开来。网络管理员创建由1和0组成的32位子网掩码,其中的1表示lP地址的相应部分为网络地址或子网地址。
二、为什么要使用子网掩码?
子网掩码可以分离出IP地址中的网络地址和主机地址,那为什么要分离呢?因为两台计算机要通讯,首先要判断是否处于同一个广播域内,即网络地址是否相同。如果网络地址相同,表明接受方在本网络上,那么可以把数据包直接发送到目标主机,否则就需要路由器网关将数据包转发送到目的地。
三、子网掩码的分类
1)缺省子网掩码:
(未划分子网)
子网掩码32位与IP地址32位对应,如果某位是网络地址,则子网掩码部分为1,否则子网掩码部分为0。例如A类IP地址,第一节为网络地址,其余三节为主机地址,故掩码为“11111111.00000000.00000000.00000000”
A类网络缺省子网掩码:255.0.0.0
B类网络缺省子网掩码:255.255.0.0
C类网络缺省子网掩码:255.255.255.0
2)自定义子网掩码:
(用于划分子网)
将一个网络划分为若干个子网,希望每个子网拥有不同的网络地址或子网地址。因为ip是有限的,实际上我们是将主机地址分为两个部分:子网网络地址、子网主机地址。形式如下:
未做子网划分的ip地址:网络地址+主机地址
做子网划分后的ip地址:网络地址+(子网网络地址+子网主机地址)
四 、子网划分简述
子网划分是通过借用IP地址中若干位主机地址来充当子网的网络地址,从而将原网络划分为若干子网。
划分子网时,随着子网地址借用主机位数的增多,子网的数目也随之增加,但每个子网中的可用主机数却逐渐减少。
如C类地址,原来有8位主机位,即有2^8-2 = 254个可用主机地址,默认子网掩码255.255.255.0。(当 1 个字节中为全0或全1时是不可用的)
若借用1位主机位,将产生 2 ^ 1=2个子网,每个子网有2^7个主机地址(包括不可用主机位);
解释:网络位向主机位部分借用 1 位来充当子网网络位,由于主机位原本有 8 位,现在被网络部分借去 1 位的话,那么现在主机位部分还剩下 7 位了,所以有 2 的 7 次幂个主机地址
若借用2位主机位,将产生 2 ^ 2=4个子网,每个子网有2^6个主机地址(包括不可用主机位);
解释:网络位向主机位部分借用 2 位来充当子网网络位,由于主机位原本有 8 位,现在被网络部分借去 1 位的话,那么现在主机位部分还剩下 6 位了,所以有 2 的 6 次幂个主机地址
……
为什么借用1位主机位就会产生2个子网,而不是3个或4个子网呢?
因为在 二进制 的形势下,1个 主机 位既可以表示0,也可以表示1,这就有两种变化,所以借用1位主机位能产生两个 子网 。
举个例子
192.168.1.0/24
主机位是32-24=8,当网络位向主机位借用一个主机位时,也就是将 掩码 变成了25(因为原来的掩码是 24 位,现在从主机位那边借来一位所以变成了 25 位了)
有一个规定:把ip和 子网掩码 做“与”运算,能得到 网络号 ,或者子网号
把ip和掩码都化成2进制进行对比:
ip: 11000000 10101000 00000001 x0000000
掩码:11111111 11111111 11111111 10000000
所谓的与运算,就是对于相同位的两个数字,上下对齐,如果全是1,就得到1,如果有一个是0,那就得到0
ip里的第25位(从主机位借来的那一位)用x来表示了(因为不能确定它到底是 0 还是 1, 所以用 x 来表示)
当第25位是0时,将得到一个子网192.168.1.0/25
也就是11000000 10101000 00000001 00000000
当第25位是1时,得到一个子网192.168.1.128/25
也就是11000000 10101000 00000001 10000000
如果借用2位,就是4个子网了。
就是 2的n次方 ,n是借用的主机位数。
CIDR:( Classless Inter-Domain Routing,无类别域间路由) ,我们需要了解这种网络表示法。形式如:192.168.10.32/28 前面的数字192.168.10.32是我们的网络地址,后面的28表示用28位来表示网络位,用32-28=4位来表示主机位。通过这种记法,我们能明确两个信息:
网络地址:192.168.10.32
子网掩码:255.255.255.240
通过下表我们能明确子网掩码和斜杠表示法之间的关系:
其中/8-/15只能用于A类网络,/16-/23可用于A类和B类网络,而/24-/30可用于A类、B类和C类网络。这就是大多数公司都使用A类网络地址的一大原因,因为它们可使用所有的子网掩码,进行网络设计时的灵活性最大。
#子网划分常见问题
选定的子网掩码将创建多少个子网?
2^x个,其中x是子网掩码借用的主机位数。如:192.168.10.32/28,我们知道C类ip的默认子网掩码为:255.255.255.0,而由上文的CIDR知识,我们了解到这个ip的实际子网掩码是:255.255.255.240。原本最后一个字节应该是0(00000000),现在却是240(11110000)。故其借用了主机位4位来充当网络位。
** 这个地方不懂的话可以结合我后面的实际案例一起来看**
每个子网可包含多少台主机?
2^y-2台,其中y是没被借用的主机位的位数(即 8 位减去被借走的位数得到的位数)。-2是因为,主机位全为0的部分是这个子网的网段号(Net_id),全为1的部分是这个网段的广播地址。
有哪些合法的子网?
算出子网的步长(增量)。一个例子是256-192 = 64,即子网掩码为192时,步长为64。从0开始不断增加剧,直到到达子网掩码值,中间的结果就是子网,即0、64、128和192,
每个子网的广播地址是什么?
主机位全为1就是该子网的广播地址。一般我们这样计算:广播地址总是下一个子网前面的数.前面确定了子网为0、64、128和192,例如,子网0的广播地址为63,因为下一个子网为64;子网64的广播地址为127,因为下一个子网为128,以此类推。请记住,最后一个子网的广播地址总是255
每个子网可包含哪些主机地址?
合法的主机地址位于两个子网之间,但全为0和全为1的地址除外。例如,如果子网号(网段号)为64,而广播地址为127,则合法的主机地址范围为65-126,即子网地址和广播地址之间的数字。
五、子网划分实例精析
##C类子网划分实例分析
首先我们要知道C类可使用的全部子网掩码:
###已知网络地址和子网掩码,求子网划分结果
案例一:
255.255.255.128 (即 25 位掩码)
128的二进制表示为10000000,只有1位用于定义子网,余下7位用于定义主机。这里将对C类网络192.168.10.0进行子网划分。
网络地址=192.168.10.0
子网掩码=255.255.255.128
回答五大问题:
多少个子网?
在128( 10000000 )中,取值为1的位数为1,借用了一位主机位,因此答案为2^1=2。
每个子网多少台主机?
有7个主机位取值为o( 10000000),还剩下7位主机位,因此答案是2^7-2= 126台主机。
有哪些合法的子网?
256 -128 = 128。也就是子网的增量是128.因此子网为0和128
每个子网的广播地址是什么?
在下一个子网之前的数字中,所有主机位的取值都为1,是当前子网的广播地址。对于子网0,下一个子网为128,因此其广播地址为127
每个子网包含哪些合法的主机地址?
合法的主机地址为子网地址和广播地址之间的数字。要确定主机地址,最简单的方法是写出子网地址和广播地址,这样合法的主机地址就显而易见了。
下面我分别用图表和图画来表示该子网划分,以希望大家能有一个更深刻的理解。
案例二:
255.255.255.192 (/26)
在第二个示例中,我们将使用子网掩码255.255.255.192对网络192.168.10.0进行子网划分。
网络地址=192.168.10.0
子网掩码=255.255.255.192
下面来回答五大问题
多少个子网?
在192(11000000)中,取值为1的位数为2,因此答案为2^2=4个子网。
每个子网多少台主机?有6个主机位的取值为o(11000000),因此答案是2^6-2=62台主机。
有哪些合法的子网?
256 -192 = 64。所以子网的步长[增量]为64,因此子网为0、64、128和192
每个子网的广播地址是什么?
在下一个子网之前的数字中,所有主机位的取值都为1,是当前子网的广播地址。对于子网0,下一个子网为64,因此其广播地址为63。以此类推。
合法的主机地址有哪些?
合法的主机地址为子网地址和广播地址之间的数字。要确定主机地址,最简单的方法是写出子网地址和广播地址,这样合法的主机地址就显而易见了。
下面我分别使用图表和图画来更形象的展示这五大问题的答案。
案例三:
从这个案例开始,我不再一一回答这五大问题,大部分的思考是重复的,我只给出问题和图表类型的答案。
255.255.255.224 (/27)
这次我们将使用子网掩码 255.255.255.224 对网络 192.168.10.0 进行子网划分。
网络地址 =192.168.10.0
子网掩码 =255.255.255.224
下表是图表类型的子网划分结果
案例四:
255.255.255.240 (/28)
再来看一个示例:
网络地址=192.168.10.0
子网掩码=255.255.255.240
子网划分结果:
案例五:
255.255.255.248 (/29)
继续练习:
网络地址=192.168.10.0
子网掩码=255.255.255.248
子网划分结果:
### 已知 IP 地址和子网掩码求子网划分
** 案例 1 : **
已知 ip 地址 =192.168.10.33 ,子网掩码 =255.255.255.224 ,求该网络的子网划分。
求出子网增量:
由于子网掩码是 224 ,所以子网步长为 256-224=32
求有哪些合法子网:
由上文知道,子网的步长为 32. 因此子网为 0 、 32 、 64 等等
求出该 Ip 地址对应的子网号。
因为主机地址 33 位于子网 32 和 64 之间,因此属于子网 192.168.10.32
求该子网对应的广播地址:
下一个子网为 64 ,因此子网 32 的广播地址为 63( 广播地址总是下一个子网之前的数字 ) 。
求合法的主机地址范围:
33~62( 子网和广播地址之间的数字 ) 。
** 案例 2 : **
ip 地址 =192.168.10.174
子网掩码 =255.255.255.240. 合法的主机地址范围是多少呢 ?
解答:子网掩码为 240 ,因此将 256 减去 240 ,结果为 16 ,这是子网增量。要确定所属的子网,只需从零开始不断增加 16 ,并在超过主机地址 174 后停止 :0 、 16 、 32 、 48 、 64 、 80 、 96 、 112 、 128 、 144 、 160 、 176 等。主机地址 174 位于 160 和 176 之间,因此所属的子网为 160 。广播地址为 175 ,合法的主机地址范围为 161~174 。
案例 3 :
ip 地址 =192.168.10.17
子网掩码 =255.255.255.252 该 IP 地址属于哪个子网 ? 该子网的广播地址是什么 ?
解答: 256 -252= 4 ,因此子网为 0 、 4 、 8 、 12 、 16 、 20 等 ( 除非专门指出,否则总是从 0 开始 ) 。主机地址 17 位于子网 16 和 20 之间,因此属于子网 192.168.10.16 ,而该子网的广播地址为 19 ,合法的主机地址范围为 17-18 。
##B 类地址子网划分实例
B 类地址可使用的 CIDR 地址表:
注意:在 B 类地址中,有 16 位可用于主机地址。这意昧着最多可将其中的 14 位用于子网划分,因为至少需要保留 2 位用于主机编址。使用 /16 意味着不对 B 类网络进行子网划分,但它是一个可使用的子网掩码。
### 已知网络地址和子网掩码求子网划分
案例 1 :
255.255.128.0 (/17)
网络地址 =172.16.0.0
子网掩码 =255.255.128.0
多少个子网 ?
2^1 =2 ( 与 C 类网络相同 ) 借用了一位主机位。
每个子网多少台主机 ?
2^15 -2 = 32766 ( 主机位一共 15 位,第三个字节 7 位,第四个字节 8 位 ) 。
有哪些合法的子网 ?
256 -128 = 128 ,因此子网为 0 和 128 。鉴于子网划分是在第三个字节中进行的,因此子网号实际上为 0.0 和 128.0
每个子网的广播地址是什么 ? (跟 C 类相同,广播地址总是下一个子网前面的数)
合法的主机地址是什么 ? (子网号与广播地址之间的地址就是合法的主机地址)
用图表来表示出上面的参数
案例 2 :
255.255.255.128 (/25)
这是一个非常难但是却十分适合生产环境的子网划分组合
网络地址 =172.16.0.0
子网掩码 =255.255.255.128
多少个子网 ?
2^9=512 。一共借用了 9 个主机位
每个子网多少台主机 ?
2^7-2 = 126 。 还有 16-9=7 位主机位
有哪些合法的子网 ?
这是比较棘手的部分。这个地方的子网增量应该是 256-255=1 ,因此第三个字节的可能取值为 0 、 1 、 2 、 3…255; 但别忘了,第四个字节还有一个子网位。还记得前面如何在 C 类网络中处理只有一个子网位的情况吗 ? 这里的处理方式相同。也就是说第三个字节的每个取值都有 0 和 128 这两种情况。例如,如果第三个字节的取值为 3 ,则对应的两个子网为 3.0 和 3.128 。因此总共有 512 个子网。
每个子网的广播地址是什么 ? (下一个子网地址的前一位)
合法的主机地址是什么 ? (介于子网地址和该子网的广播地址之间的就是主机地址)
下面用图表列出这个例子的子网划分结果:
### 已知 ip 地址和子网掩码求子网划分
当使用 cidr 表示子网划分,网络位的位数 >24 时,比如 /25 , /27. 我们只需要考虑第四个字节。 <=24 时,我们只需要考虑第三个字节,因为第四个字节的主机位并没有被借用,并没有参与到子网划分。
问题 :172.16.10.33/27 属于哪个子网 ? 该子网的广播地址是多少 ?
答案 : 这里只需考虑第四个字节。 256-224=32 ,故第四个字节的变化为 0 、 32 、 64… 。 33 位于 32 和 64 之间,但子网号还有一部分位于第三个字节,因此
答案是该地址位于子网 10.32 中。由于下一个子网为 10.64 ,该子网的广播地址为 172.16.10.63
问题 :IP 地址 =172.16.66.10; 子网掩码 =255.255.192.0(/18) 属于哪个子网 ? 该子网的广播地址是多少 ?
答案 : 这里需要考虑的是第三个字节,而不是第四个字节。 256-192=64 ,因此子网为 0.0 、 64.0 、 128.0 等。所属的子网为 172.16.64.0 。由于下一个子网为 128.0 ,该子网的广播地址为 172.16.127.255 。
问题 :IP 地址 =172.16.50.10; 子网掩码 =255.255.224.0(/19) 属于哪个子网 ? 该子网的广播地址是多少 ?
答案 : 只需要考虑第三个字节。 256-224=32 ,因此子网为 0.0 、 32.0 、 64.0 等 ( 所属的子网为 172.16.32.0 ,因而其广播地址为 172.16.63.255 ,因为下一个子网为 64.0 。
问题 :IP 地址 =172.16.45.14; 子网掩码 =255.255.255.252(/30) 属于哪个子网 ? 该子网的广播地址是多少 ?
答案 : 这里需要考虑哪个字节呢 ? 第四个。 256-252=4 ,因此子网为 0 、 4 、 8 、 12 、 16 等。所属的子网为 172.16.45.12 ,而该子网的广播地址为 172.16.45.15 ,因为下一个子网为 172.16.45.16 。
##A 类子网划分实例
A 类网络的子网划分与 B 类和 C 类网络没有什么不同,但需要处理的是 24 位,而 B 类和 C 类网络中需处理的分别是 16 位和 8 位。
可用于 A 类的所有子网掩码:
### 已知网络地址和子网掩码求子网划分
案例 1 :
255.255.240.0(/20)
网络地址 =10.0.0.0
子网掩码 =255.255.240.0(/20) 时, 12 位用于子网划分,余下 12 位用于主机编址。
多少个子网 ?
2^12=4096 。
每个子网的主机数 ?
2^12-2=4094
有哪些合法的子网 ?
需要考虑哪些字节 ? 借用的主机号来自于第二和第三个字节,因此要考虑第二个和第三个字节,在第二个字节中,子网号的间隔为 1; 在第三个字节中,子网号为 0 、 16 、 32 等,因为 256-240=160
每个子网的广播地址是什么 ?
合法的主机地址是什么 ?
具体划分如表中所示:
案例 2 :
网络地址 =10.0.0.0
子网掩码 =255.255.255.192(/26)
这个例子将第二个、第三个和第四个字节用于划分子网。
多少个子网 ?
2^18=262144 。
每个子网的主机数 ?
2^6-2=62 。
有哪些合法的子网 ?
在第二个和第三个字节中,子网号间隔为 1 ,而在第四个字节中,子网号间隔为 64
每个子网的广播地址是什么 ?
合法的主机地址是什么 ?
下面只列出最后一部分的子网划分
###已知ip地址和子网掩码求子网划分
最后一个案例:
ip地址=10.1.3.65/23
求该ip地址对应的子网以及该子网合法的主机地址和广播地址:
**回答:**首先,如果不知道/23对应的子网掩码,你就回答不了这个问题。它对应的子网掩码为255.255.254.0。这里需要注意的字节为第三个。256-254=2,因此第三个字节的子网号为0、2、4、6等。在这个问题中,主机位于子网2.0中,而下一个子网为4.0,因此该子网的广播地址为3.255。10.1.2.1~10.1.3.254中的任何地址都是该子网中合法的主机地址。