其他分享
首页 > 其他分享> > 172.16.0.0/24 与 CIDR 的关系

172.16.0.0/24 与 CIDR 的关系

作者:互联网

172.16.0.0/24 与 CIDR 的关系

使用过云服务器的同学,应该比较常见到类似 172.16.0.0/24 这样一个像 ip 地址又不是 ip 的东西,要我们判断,其下多少个 ip 是在同一个局域网的。

要讲清楚这个,首先要讲到我们现在正在使用的 IPV4。IPV4,说的直白点,就是把 ip 地址,划分为网络地址与主机地址,用 4 段,每一段为 8 位,段与段之间用点号连接,如果网络地址为第 1 段,那么主机地址就是后面 3 段。即:

二进制: 000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111

十进制:0.0.0.0 ~ 255.255.255.255

这样,IPV4 总共有 2 的 32 次方个 IP 地址。

为了能很好管理和分配这些 IP 地址,国际互联网组织又讲 IPV4 地址划分为 5 类

A 类:00000000.00000000.00000000.00000000 ~ 01111111.11111111.11111111.11111111 即 1.0.0.0 ~ 127.255.255.255

B 类:10000000.00000000.00000000.00000000 ~ 10111111.11111111.11111111.11111111 即 128.0.0.0 ~ 191.255.255.255

C 类:11000000.00000000.00000000.00000000 ~ 11011111.11111111.11111111.11111111 即 192.0.0.0 ~ 223.255.255.255

D 类:11100000.00000000.00000000.00000000 ~ 11101111.11111111.11111111.11111111 即 224.0.0.0 ~ 239.255.255.255

E 类:11110000.00000000.00000000.00000000 ~ 11110111.11111111.11111111.11111111 即 240.0.0.0 ~ 247.255.255.255

其中每类 IP 地址的第 1 个和最后 1 个是有特殊用途的。

A 类地址,第 1 段,是网络号,后面 3 段是主机号

B 类地址,前 2 段,是网络号,后面 2 段是主机号

C 类地址,前 3 段,是网络号,后 1 段是主机号

D 类地址,前 4 位固定,后 28 位为广播地址

E 类地址,前 5 位固定,后 27 位为实验和未来保留地址

只要我们稍微算一下,我们就能算出 A 类地址有 16777214(16777216-2)个主机地址,B 类地址有 65534(655536-2)个主机地址,C 类地址有 254(256-2)个主机地址。

这么大的一个主机地址,如果不进行合理的分配和管理,就会造成浪费,所以,人们就想到划分子网,就是把 A、B、C 类地址的主机号位数的前几位作为子网号,IP 地址就演变成了 网络号 + 子网号 + 主机号。这样,不同的子网号,有不同数量的主机,可以分开分配与管理。但是,这样也带来了一个问题,那就是在网络中,别人不知道你属于哪个子网?为了解决这样一个问题,就出现了子网掩码,子网掩码就是把网络号 + 子网号的位置全部设置为 1,主机号位置设置为 0。比如 ip 地址:172.31.112.3, 开头是 172,对照IP地址分类,发现在 128 ~191 之间,所以是 B 类 IP 地址。前 2段是网络号,后 2 段是主机号,即 172.31 是网络号,112.3 是主机号,现在,假设主机号中用了 4 位当做子网号(11110000),那么此时的子网掩码就是 255.255.240.0

 估计很多人还是不知道怎么算出来的,的确不好理解。

那有没有简单的办法呢?这时就引出了CIDR

CIDR 全称是无分类-域间-路由选择,它没有了 IP 地址分类,也就是没有了A、B、C、D、E 类 IP地址,IP 地址统一为网络前缀 + 主机号/网络前缀所占位数,因为在这个里面,直接告诉了网络前缀的位数了,所以子网掩码根据位数,就可以直接得出来;主机号的范围,也就可以通过“32 减去网络前缀所占位数”得到主机号的位数,然后把主机号全部设置为 0 和 1,就得到了理论上的主机范围。如:

172.31.112.3/20 = 10101100.00011111.01110000.00000011

最小 ip 地址:10101100.00011111.01110000.00000000 = 172.31.112.0(主机号位置设成0得到最小ip地址)

最大 ip 地址:10101100.00011111.01111111.11111111=172.31.127.255(主机号位置设成1得到最大ip地址)

主机号=32-网络前缀所占位数=32-20=12,所以主机号的位数为 12 位,可以得出总共有 2 的 12 次方(4096)个主机。子网掩码为11111111.1111111.11110000.0000000,即255.255.240.0

现在知道 CIDR 是个什么了吧!

下面,来做个题目看下检查下吧

有这么一个需求,要你设计一个局域网,要求能容纳 100 台机器,问你 CIDR 表示应该是多少,子网掩码是多少?

按题目理解,主机数为100,2的7次方是128,是大于 100 的最小数,因此,主机号位数为 8 位,那么网络前缀所占位数就是 24(32-8),所以,CIDR 表示就应该是 192.168.0.0/24, 子网掩码就是把所有网络号位设置为 1,即 255.255.255.0(11111111.11111111.11111111.00000000)

标签:24,0.0,11111111.11111111,255.255,地址,主机,CIDR,ip
来源: https://www.cnblogs.com/scarecrow1992/p/15099113.html