IPv6 子网划分 - 将十进制转换为十六进制

IPv6 子网划分 - 将十进制转换为十六进制

我遇到了一个关于 IPv6 子网划分的问题,

您是一家大型公司的分支机构网络管理员,该公司在全球许多城市设有办事处。公司网络目前正在为所有主机实施全局地址。中央 IT 部门为您提供全局地址空间 3f04:4d12:95a5:a000::/52。您的网络包括四个子网。

您应该为第三个子网分配哪个地址和网络前缀?

由于我们需要 4 个段,这意味着 2 位,因此掩码为 /52 + 2 = /54

子网之间的增量为 264 - 54 = 210

但是,增量必须是十六进制,当我将 210 转换为十六进制时,我得到了 D2

Convert 210 to hexadecimal

210 / 16 = 13 R 2
13 / 16 = 0 R 13, i.e. D in hex
0 / 16 = 0 R 0

表示地址和网络前缀

Subnet 1 = 3f04:4d12:95a5:ad20::/54
Subnet 2 = 3f04:4d12:95a5:a1a4::/54
Subnet 3 = 3f04:4d12:95a5:a2148::/54

这似乎不是正确的答案。

以下是本书提供的解决方案(复制粘贴)

如果您有四个子网,则需要为子网划分申请 2 位。在这种情况下,子网划分空间中使用的网络前缀必须是 /52 + 2,即 /54。对于 /54 子网划分方案,子网之间的增量是 264-54 或 210,十六进制表示为 400。子网 1 地址必须是 3f04:4d12:95a5:a000::/54,然后使用十六进制增量,您可以确定子网 2 地址是 3f04:4d12:95a5:a400::/54,子网 3 地址是 3f04:4d12:95a5:a800::/54,子网 4 地址是 3f04:4d12:95a5:ac00::/54。

我哪里做错了?

答案1

我们可以用二进制轻松完成此操作。让我们只看第 4 个四重奏(我真的讨厌这个名字)。地址的 49-64 位,因为写入所有 128 位很麻烦。我将使用对()每个半字节进行分组,并使用 a来表示子网边界。

a000 = (1010) (0000)(0000)(0000)

所以我们想将其分成 4 个子网,所以我们需要 4 位。

a000 = (1010)(00 00)(0000)(0000)
a400 = (1010)(01 00)(0000)(0000)
a800 = (1010)(10 00)(0000)(0000)
a800 = (1010)(11 00)(0000)(0000)

如果您想选择要添加到 a000 的值,它将是 0x0400(0100)(0000)(0000)或十进制 1024。

我真的不知道264 - 54 = 210你书中的解释到底是什么。在我看来,这完全是垃圾。

好的,我想我现在明白发生了什么。要么你在复制粘贴时遗漏了一些格式,要么你书中的格式搞砸了。

我几乎可以肯定,该值不应该是 264,而应该是 2 的 64 次方(2 62或 2^64)。210 不应该是十进制值 210,而应该是 2 的 10 次方(2 10)。2 10 = (2*2*2*2*2*2*2*2*2*2*2) = 1024 或十六进制的 0x0400。

相关内容