有人可以确切解释一下CIDR块的工作原理,以及如何将其转换为0.0.0.0/32吗?请使用外行术语或什至是与网络无关的类比。似乎找不到找到我的解释。谢谢!!
无类别域间路由 (CIDR) 块用于以 IPv4 或 IPv6 格式指定 IP 地址的范围。为简单起见,我将以 IPv4 的格式解释其余部分,但它适用于 IPv6。
CIDR 块的一般格式:xyzt/p
x、y、z 和 t 是从 0 到 255 的数字。基本上,每个代表一个 8 位二进制数。这就是为什么它的范围高达 255。这些数字的组合成为一个 IPv4 IP 地址,它必须是唯一的才能识别特定实例。
在 AWS 的情况下,p 是一个从 16 到 28 的数字。它表示从给定 IP 地址继承的位数。例如: 10.0.0.0/16 代表以下格式的 IP 地址: 10.0.xy 其中 x 和 y 是 0 到 255 之间的任意数字。因此,实际上它代表了一个 IP 地址范围,从 10.0.0.0 到 10.0。 255.255。
但是,对于每个 CIDR 块,AWS 禁止 5 个可能的 IP 地址。这些是前 4 个可用地址和最后一个可用地址。在这种情况下:
实际上,这是 AWS 允许 p 的数值高达 /28 的主要原因之一。因为对于 p=30,将有 4 个可用值,但是 AWS 需要使用 5 个 IP 地址。在我看来,对于 p=29,他们可能会发现占用 5 个地址来提供 3 个可能的 IP 地址效率低下。
可以使用以下公式计算可能的 IP 地址数:
NumberOfPossibleIPs = 2^(32-p) - 5
上面所有的答案都很好,但是对于那些不理解寻址的人来说缺少一些非常重要的东西。
IP 地址实际上只是一串二进制字符串,分为 4 个“八位字节”。每个八位位组是一个2^8块;00000000。所以对于机器来说,IP 地址看起来像这样((.)为了人性化而添加了):
00000000(.)00000000(.)00000000(.)00000000
Run Code Online (Sandbox Code Playgroud)
当我们谈论 IP 地址上的“掩码”时,它的意思是“不改变的位”。块末尾的或表示该网络不允许使用的/8位数/255.0.0.0。
因此,假设我们有一个 CIDR 块10.0.0.0/8- 这也可以用 格式编写10.0.0.0/255.0.0.0,实际上您可能会在旧版本的 Linux 中看到这种表示法。您还会注意到,这255是二进制字符串的十进制表示形式11111111-8二进制“ones”。那么机器看到的内容如下:
Net: 00001010(.)00000000(.)00000000(.)00000000
Mask: 11111111(.)00000000(.)00000000(.)00000000
Run Code Online (Sandbox Code Playgroud)
掩码中带有 0 的部分是网络内的可用地址空间。
因此,以下示例地址在此网络中有效,因为0屏蔽范围的部分内容正在发生变化:
00001010(.)00000001(.)00110000(.)00111000
00001010(.)00110001(.)00110100(.)00111001
Run Code Online (Sandbox Code Playgroud)
当我们说“cidr 块”时,我们只是指“表达机器理解的二进制字符串的人类可读的速记方式”。在上面的示例中,第一个八位字节可以表示为10,后面的八位字节可以表示为0。并且掩码可以表示为255和 的后面八位字节0,或者;因为掩码始终是1 的序列,然后是 0 的序列,1 的长度,即8
因此,我们得到一个 cidr 10.0.0.0/255.0.0.0,或者10.0.0.0/8
再举几个例子:
-- 172.1.1.0/24
net: 10101100.00000001.00000001.00000000
mask: 11111111.11111111.11111111.00000000
^ 24 bits for the mask ^ 8 bits of usable space
-- 10.10.10.8/29
net: 00001010.00001010.00001010.00001000
mask: 11111111.11111111.11111111.11111000
^ 29 bits for the mask. ^ 3 bits of usable space
Run Code Online (Sandbox Code Playgroud)
但重要的是,这只是网络的一方面。通常其中几个是为事物保留的。有关 AWS 特定问题,请参阅其他答案。在他们的示例中,为 AWS 保留的“前 4 个”IP 地址将是前 4 个可用地址,即
...00 - Network address
...01 - Router
...10 - DNS
...11 - Futureproofing
Run Code Online (Sandbox Code Playgroud)
无类域间路由(CIDR)块基本上是一种分配IP地址和IP路由的方法。创建网络或路由表时,需要指定要使用的范围。“ 0.0.0.0”表示它将与任何IP地址匹配。某些IP地址是特定的,例如10.0.0.0,它将与任何以10开头的IP地址匹配。在任何IP地址范围内,您都可以使用后缀(例如本例中的/ 32之类)来更特定。这些允许符号从前缀中指定要使用的位数(实际IP范围,如10.0.0.0)。如上所述,它代表子网掩码的位长。子网掩码就像绘画时的掩码。您在不想画的东西上放了一个面具。
例如,10.10.0.0 / 16将在其范围内具有256 * 256个IP地址。
注意:范围中的某些IP地址被保留用于各种目的。根据AWS VPC文档,以下是保留的IP地址。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1789 次 |
| 最近记录: |