软考-子网划分及反掩码

👁 12 reads  ·  in 默认分类 with 0 comment

image.png

自从考过HCIP后就有些许松懈。看到软考的中级网络工程师与HCIP有部分重叠。那是否可以根据现有基础冲击一下软考呢?嘻嘻嘻。试试吧。这次需要将自己已知的知识全部打碎。让自己重新当回小学生学习。此次要比以往将加细究原理。每篇文章都相当于对自己的一次总结。其实关于子网划分本站也有一篇:IPV4。但本篇会偏理论。两篇的计算方式也略有不同。可根据情况选择自己习惯的计算方式。

子网划分


子网划分分为等比划分,变长子网掩码(VLSM)。看似计算很复杂,但实则将这块彻底搞懂后,也就那样。掌握底层原理后,后续计算时将会比较简单。最重要的是要确定几个概念:

1)子网掩码划分,一定是在某个网段中进行且子网划分的台数不可能超过该网段的计算机台数;
2)变长子网掩码是调整网段的主机位,而无类域间路由则是调整网段的网络位;
3)计算时需划分主机按从大到小的方式进行计算。在计算时,需熟练计算进制转换。二进制转十进制,十进制转二进制也就是除二取余法一定要懂;
4)算子网个数的2^n,n为向主机位借的位数;每个子网的主机台数2^n-2的n为剩下的主机位数;步长就是这个子网的主机数,步长等于2^n;
5)算子网时,除了子网到全到255算下一个子网需加一。否则算当前子网网络位将定死不动;
6)算子网的台数时,2^n的n需从0开始计算,最后一位为7。遵循128 64 32 16 8 4 2 1进行计算;如计算子网中可用机主机位2^n-2≧每个子网所需的可用主机数量或借用多少主机位2^n≧子网数时,n从1开始计算,遵循2 4 8 16 32 64...计算

上面的概念精通后,子网掩码划分真是易如反掌,特别是第6点,这个非常重要,因为在计算时很容易算混。

子网划分

下面为平均分IP的子网划分,是基础中的基础。只要搞懂上述6点后,下面的题目即可完成。

如果把一个192.168.1.0/24物理上平局切分成 4 个大小完全一样的子网,请问每个子网的斜杠掩码(/n)是多少?每个子网包含多少个总 IP 地址?

每个子网总IP包括网络地址和广播地址,计算时一定要把这两个地址算进取。

子网个数:2^n≥‌4,n=2,向主机位借了2位,那么就是/26。那么每个子网的取值范围为:
子网1:192.168.1.0/26 => 192.168.1.00/000000   /前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
主机位全部为0的就是网络位,全部为1的是广播位。即如下所示:
 192.168.1.00/000000-192.168.1.00/111111
转换为十进制即:网络地址:192.168.1.0,广播地址:192.168.1.63,总IP范围:192.168.1.0-192.168.1.63,共64个IP;
子网2:192.168.1.64/26 => 192.168.1.01/000000   /前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
主机位全部为0的就是网络位,全部为1的是广播位。即如下所示:
 192.168.1.01/000000-192.168.1.01/111111
转换为十进制即:网络地址:192.168.1.64,广播地址:192.168.1.127,总IP范围:192.168.1.64-192.168.1.127,共64个IP;
子网3:192.168.1.128/26 => 192.168.1.10/000000   /前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
主机位全部为0的就是网络位,全部为1的是广播位。即如下所示:
 192.168.1.10/000000-192.168.1.10/111111
转换为十进制即:网络地址:192.168.1.128,广播地址:192.168.1.191,总IP范围:192.168.1.128-192.168.1.191,共64个IP;
子网4:192.168.1.192/26 => 192.168.1.11/000000   /前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
主机位全部为0的就是网络位,全部为1的是广播位。即如下所示:
 192.168.1.11/000000-192.168.1.11/111111
转换为十进制即:网络地址:192.168.1.192,广播地址:192.168.1.255,总IP范围:192.168.1.192-192.168.1.255,共64个IP;

所以掩码为26,每个网段有64个IP。

变长子网掩码VLSM

其实就是划分子网掩码的变种,只是划分子网掩码是按照固定的台数进行划分,而变长子网掩码是非稳定台数的进行运算。

下面是一道较有难度的子网划分题目,但只要牢记上述的概念,耐下心一步一步做即可:

某集团公司获得了一个地址块 172.16.0.0/20。现需要按以下要求划分:
子网A(总部):需要 500 台主机
子网B(华南分部):需要 200 台主机
子网C(华东分部):需要 100 台主机
子网D(华北分部):需要 50 台主机
子网E(运维专线):点对点链路,只需要 2 台主机
按照 VLSM 从大到小的原则依次分配。请回答以下问题:

每个子网的前缀、掩码、步长各是多少?
每个子网的网络地址、可用范围、广播地址各是多少?
子网B和子网C之间有没有碎片?为什么?
子网D和子网E之间有没有碎片?为什么?
所有子网分配完之后,剩余地址范围是多少?还够再划一个容纳 200 台主机的子网吗?各地址为多少?

看似问题很多且计算量很大,但按照上面的6点进行运算即可,解题思路如下:

子网A:首先这个大网段中所要划分的第一个子网的台数为500,那么单纯255不够容纳这些数量电脑。那么就要有动用第5点的意识;由于他需要500台设备,那么2^n-2‌≥‌500,剩下的主机位的n数值为9,那么也可以推出网络位32-9=23,所以该网段的子网掩码位23。只要有子网掩码和网段,就可以进行计算了,首先我们将网络位卡住:

172.16.0.0/23 => 172.16.0000000/0.00000000  /前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
主机位全部为0的就是网络位,全部为1的是广播位。即如下所示:
172.16.0000000/0.00000000-172.16.0000000/1.11111111
转换为十进制即:网络地址:172.16.0.0,广播地址:172.16.1.255
由于全0和全1不允许分发给主机,所以在可用范围内,要将这两个IP剔除)。所以最终的该网段的全部IP地址范围为:
172.16.0000000/0.00000001-172.16.0000000/1.11111110
转换为十进制即:可用地址:172.16.0.1-172.16.1.254/23
子网A总的范围为:172.16.0.0-172.16.1.255/23

子网B:由于我们上述算出子网A的网段为172.16.1.255/23,所以我们将从172.16.2.0进行计算。因为该子网的台数为200,依旧2^n-2≥‌200。算出剩下的主机位n=8,那么也可以推出网络位32-8=24,所以该网段的子网掩码位24。只要有子网掩码和网段,就可以进行计算了,首先我们将网络位卡住:

172.16.2.0/24=>172.16.00000010/.00000000/前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
主机位全部为0的就是网络位,全部为1的是广播位。即如下所示:
172.16.00000010/.00000000-172.16.00000010/.11111111
转换为十进制即:网络地址:172.16.2.0,广播地址:172.16.2.255
由于全0和全1不允许分发给主机,所以在可用范围内,要将这两个IP剔除)。所以最终的该网段的全部IP地址范围为:
172.16.00000010/.00000001-172.16.00000010/.11111110
转换为十进制即:可用地址:172.16.2.1-172.16.2.254/24
子网B总的范围为:172.16.2.0-172.16.2.255/24

子网C:由于我们上述算出子网B的网段为172.16.2.255/24,所以我们将从172.16.3.0进行计算。因为该子网的台数为100,依旧2^n-2≥‌100。算出剩下的主机位n=7,那么也可以推出网络位32-7=25,所以该网段的子网掩码位25。只要有子网掩码和网段,就可以进行计算了,首先我们将网络位卡住:

172.16.3.0/25=>172.16.00000011.0/0000000/前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
主机位全部为0的就是网络位,全部为1的是广播位。即如下所示:
172.16.00000011.0/0000000-172.16.00000011.0/1111111
转换为十进制即:网络地址:172.16.3.0,广播地址:172.16.3.127
由于全0和全1不允许分发给主机,所以在可用范围内,要将这两个IP剔除)。所以最终的该网段的全部IP地址范围为:
172.16.00000011.0/0000001-172.16.00000011.0/1111110
转换为十进制即:可用地址:172.16.3.1-172.16.3.126/25
子网C总的范围为:172.16.3.0-172.16.3.127/25

子网D:由于我们上述算出子网C的网段为172.16.3.127/25,所以我们将从172.16.3.128进行计算。因为该子网的台数为50,依旧2^n-2≥‌50。算出剩下的主机位n=6,那么也可以推出网络位32-6=26,所以该网段的子网掩码位26。只要有子网掩码和网段,就可以进行计算了,首先我们将网络位卡住:

172.16.3.128/26=>172.16.00000011.10/000000 /前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
主机位全部为0的就是网络位,全部为1的是广播位。即如下所示:
172.16.00000011.10/000000-172.16.00000011.10/111111
转换为十进制即:网络地址:172.16.3.128,广播地址:172.16.3.191
由于全0和全1不允许分发给主机,所以在可用范围内,要将这两个IP剔除)。所以最终的该网段的全部IP地址范围为:
172.16.00000011.10/000001-172.16.00000011.10/111110
转换为十进制即:可用地址:172.16.3.129-172.16.3.190/26
子网D总的范围为:172.16.3.128-172.16.3.191/26

子网E:由于我们上述算出子网D的网段为172.16.3.191/26,所以我们将从172.16.3.192进行计算。因为该子网的台数为2,依旧2^n-2≥‌2。算出剩下的主机位n=2,那么也可以推出网络位32-2=30,所以该网段的子网掩码位30。只要有子网掩码和网段,就可以进行计算了,首先我们将网络位卡住:

172.16.3.192/30=>172.16.00000011.110000/00 /前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
主机位全部为0的就是网络位,全部为1的是广播位。即如下所示:
172.16.00000011.110000/00-172.16.00000011.110000/11
转换为十进制即:网络地址:172.16.3.192,广播地址:172.16.3.195
由于全0和全1不允许分发给主机,所以在可用范围内,要将这两个IP剔除)。所以最终的该网段的全部IP地址范围为:
172.16.00000011.110000/01-172.16.00000011.110000/10
转换为十进制即:可用地址:172.16.3.193-172.16.3.194/30
子网E总的范围为:172.16.3.192-172.16.3.195/30

计算碎片,也就是问在各子网之间是否有浪费的IP地址。计算过程为:下位的网段中的网络位除以步长,如果为0或整数,则无碎片;如果除不尽或者为小数,则存在碎片。(一般存在碎片是因为未按从大到小的分配)

子网B和子网C之间是否存在碎片,可看子网C的172.16.3.0的0除以步长,因为2^n=128,则可用
0/128=0,因为结果为0,所以子网B和子网C无碎片;

子网D和子网E之间是否存在碎片,可看子网E中的172.16.3.192的192除以步长,因为2^n=4,则可用
192/4=48,因为结果为48,所以子网D和子网E无碎片;

所有子网分配完之后,原本掩码为/20,又由于子网E的地址最后一位172.16.3.195/30,所以剩下的地址开始地址为172.16.3.196

剩下的地址范围:172.16.0000/0011.11000100   /前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
172.16.3.196-172.16.15.255,足够划分200台的主机。但我们要计算200台主机的地址时,第一位不能用172.16.3.196。因为196除以200=0.98,除不尽,需从172.16.4.0开始计算。步长为256,所以,32-8=24,子网掩码为24,所以

172.16.4.0/24=>172.16.00000100/.0000000/24 /前面的都是网络位,在本次运算中保持不变,只要将网络卡住。
主机位全部为0的就是网络位,全部为1的是广播位。即如下所示:
172.16.00000100./00000000-172.16.00000100/.11111111
转换为十进制即:网络地址:172.16.4.0,广播地址:172.16.4.255
由于全0和全1不允许分发给主机,所以在可用范围内,要将这两个IP剔除)。所以最终的该网段的全部IP地址范围为:
172.16.00000100/.00000001-172.16.00000100.11111110
转换为十进制即:可用地址:172.16.4.1-172.16.4.254/24
新子网的范围为:172.16.4.0-172.16.4.255/24
当然,172.16.3.196–172.16.3.255 这64个地址就成了碎片,被浪费。

当然也可以通过主机IP地址,反推出这个子网网段,然后进行计算。

某台主机的 IP 地址为 192.168.10.75,其子网掩码被配置为 255.255.255.192。请问该主机所在子网的网络地址和广播地址分别是什么?

此时可从255.255.255.192中推导子网掩码为/26。然后将192.168.10.75转换为二进制
192.168.10.01001011/26 => 192.168.10.01/001011
主机位全为0为网络位:192.168.10.64,主机位全为1为广播位:192.168.10.127,可用范围为:192.168.10.65-192.168.10.126/26
IP总范围:192.168.10.64-192.168.10.127/26    

无类域间路由CIDR


主要为几条路由合并在一起,减少路由条目,一般都是最长转发原则,因为子网掩码种最长的路由最为精准。但需要计算转发的IP是否在各网段中,假如不存在,则子网掩码再长也无效。CIDR的计算过程为:将所有的路由条目转为二进制,然后取并集,何处所有条目中一致的二进制进行转换。

数据中心工程师需要把四个连续的广域网网段进行 CIDR 聚合宣告:172.16.32.0/24、172.16.33.0/24、172.16.34.0/24 和 172.16.35.0/24。最精确的超网汇聚路由条目是?

 172.16.32.0/24 => 172.16.00100000.00000000
 172.16.33.0/24 => 172.16.00100001.00000000
 172.16.34.0/24 => 172.16.00100010.00000000
 172.16.35.0/24 => 172.16.00100011.00000000
 172.16.XX.0/XX => 172.16.001000xx.00000000 //第七位和第八位出现不同,所以xx缩进。
 最终汇聚结果为:
 172.16.32.0/22(从172.16.32.0/24缩进到172.16.32.0/22)

路由器的路由表里死板地躺着以下三条匹配项:172.16.0.0/16、172.16.4.0/22 和 172.16.5.0/24。当一个目的 IP 为 172.16.5.22 的数据包进入路由器时,它会通过哪条路由被转发?


A.172.16.5.0/24
B.172.16.0.0/16
C.172.16.4.0/22
D.路由器会判定路由重叠冲突,直接丢弃数据包

选择A,因为子网掩码最长原则

当然上面说的最长转发原则也有例外:
路由表中有以下三条并存路由:10.1.1.0/24、10.1.0.0/16 和 10.1.1.128/26。此时一个目的 IP 为 10.1.1.200 的单播商务数据包过来了,路由器会通过哪条路由完成下一步转发?

A.10.1.1.0/24
B.10.1.0.0/16
C.10.1.1.128/26
D.路由器认为该IP同时命中多条路由,无法决策,直接丢弃数据包

此时这道题选A,因为10.1.1.128/26的取值范围为:
10.1.1.128/26 => 10.1.1.10/000000
网络地址为10.1.1.1.128,广播地址为10.1.1.191,可用地址为10.1.1.129-10.1.1.190,
总范围为10.1.1.128-10.1.1.191,10.1.1.200不在这个范围内,无法转发。而10.1.1.0/24和10.1.0.0/16两者可以转发该路由,由于10.1.1.0/24比10.1.0.0/16子网掩码长,所以选10.1.1.0/24

通配符掩码(反掩码)


通配符掩码或称之为反掩码,作用为定义一个网段或者不连续的网段。一般作用于静态路由填写、ACL填写等。

计算过程十分简单,但也非常容易混,只有一个要领:与反掩码的值进行计算。于反掩码种的0取∧并集,与1取∨或集,0为固定,1为可变化。

在核心交换机上配置了以下 ACL 策略。请问下列哪一个 IP 地址会命中 rule 5 并被成功阻止(Deny)?
rule 5 deny source 10.1.4.0 0.0.10.255

此时需将整个IP地址转换为二进制:
10.1.4.0 => 00001010.00000001.00000100.00000000
0.0.10.255 => 00000000.00000000.00001010.11111111
00001010.00000001.00000100.00000000
00000000.00000000.00001010.11111111  //合出并集后,从左到右的第5位和第7位可以动,其他均要保持不变,
合并和就是0000X1X0,组合可出现以下4种情况:
00001010.00000001.00000100.00000000 => 10.1.4.0-10.1.4.255
00001010.00000001.00000110.00000000 => 10.1.6.0-10.1.6.255
00001010.00000001.00001100.00000000 => 10.1.12.0-10.1.12.255
00001010.00000001.00001110.00000000 => 10.1.14.0-10.1.14.255

所以以上四个网段都会匹配上。

Responses