我非常了解 IPv4,但我从未使用过 IPv6,也从未真正上过关于它的课程或阅读有意义的文档。
谁能指出我对 IPv4 管理员的 IPv6 的良好介绍(在线或在书中)。我主要是 Windows 而不是 UNIX,但我可以遵循大多数 UNIXy 的解释。
我非常了解 IPv4,但我从未使用过 IPv6,也从未真正上过关于它的课程或阅读有意义的文档。
谁能指出我对 IPv4 管理员的 IPv6 的良好介绍(在线或在书中)。我主要是 Windows 而不是 UNIX,但我可以遵循大多数 UNIXy 的解释。
去年,当我们的一些工程师在被要求将 IPv6 地址放入 DNS 时感到困惑时,我将其写成内部参考文档。我没有专门针对 DNS,但大多数问题似乎都围绕着地址的格式,而不是“了解”它们是如何工作的。也许它对其他人也有用:
所以,首先要承认的是 IPv6 地址看起来很丑。他们是这样。
但我认为这只是因为我们不习惯与它们打交道,而且我们不像处理 IPv4 地址那样在非常低的层次上理解它们的含义。我认为需要一段时间才能适应它们,但我们必须从某个地方开始。
另一个需要记住的重要事情是 IPv4 地址是 32 位数字,而 IPv6 地址是 128 位数字。当路由器路由或防火墙过滤器时,它们会根据该数字进行操作。一个人如何选择显示这个数字是完全任意的,而且大多只是传统。所以这整封电子邮件解释了人类如何选择表示这些数字——机器不在乎,对它们来说都是比特。
IPv4 地址是 32 位或四个字节。我们认为的“真实”IP 地址只是表示该位串的标准方法,将位分成 4 个 8 位组,将每个 8 位表示为一个十进制数,并将这些十进制数分开一段时间。因此,取随机 IP 地址 172.30.154.249。当路由器“思考”这个 IP 地址时,它真的是这样思考的:
我们可以将其转化为我们自己的形式:
有时您可能还会看到这些写为纯十进制数:
几乎没有人故意使用这种形式(*),但它是编写 IPv4 地址的历史有效方式。事实上,这种形式在 1982 年定义 SMTP 的 RFC821 中使用。如果您想手动将邮件路由到特定机器而不是使用 DNS,您可以使用两种不同类型的文字。第一个是括号中熟悉的“点四边形”形式(“user@[172.30.154.249]”)。第二种是使用 IP 的十进制形式,前缀为井号(“user@#2887686905”)。
以上所有内容只是为了提供一个框架,用于将您对 IPv4 地址如何工作的知识转换为 IPv6 地址。正如 IPv4 是 32 位数字一样,IPv6 地址也是 128 位数字。ARIN 为 MY AWESOME COMPANY(**) 分配了 IP 范围 2311:FD67/32。为了举例说明,我将使用 IP 2311:FD67::AC1E:9AF9。
所以,这是代表该 ip6 的位串:
如果我们用我们处理 IPv4 位串的方式来表示这些位串(将每个 1 字节的块转换为十进制,用句点分隔每个块),我们将得到以下结果:
这有几个问题。首先是它看起来像一个时髦的 IPv4 号码,这不好,你需要一种可靠的方法来区分它们。另一个是它有很多信息,很多数字,还有很多空白。因此,这两个问题都可以通过使用不同的分隔符(冒号(:) 而不是句点(.))以及以十六进制而不是十进制表示字节来解决。IPv4 分隔 8 位块,用十进制表示,用句点表示,而 IPv6 分隔 16 位块,用冒号分隔。下面是我们的 IPv6 示例 IP 的细分:
这仍然有很多空白,因此允许最大的零字符串可以省略并用双冒号表示。所以,上面的IP可以写成:
我没有看到很多,但据我了解,还有一个简洁的约定,允许将最后 32 位写为带前缀的点分四边形,以便在从 IPv4 迁移到 IPv6 时轻松识别旧地址. 因此,您可能已经注意到我的 IPv6 示例地址以完全包含我的 IPv4 示例的相同 32 位结尾。当您以这种风格写作时,这尤其有用。在这种情况下,我的 IPv6 地址将如下所示:
回到我开始使用 IPv6 的地方,我提到我们被分配了 2311:FD67/32。/32 是一个位掩码,就像它在 IPv4 地址中一样。这实质上意味着我们已经静态分配了我们可以创建的 IPv4 地址中 128 位中的前 32 位。由于 2311:FD67 是 32 位,这意味着我们从该范围创建的每个 IP 地址都将从该地址开始。
换句话说,正如 172.17/16 可以被认为是“172.17.0.0 和 172.17.255.255 之间的每个 IP”,2311:FD67/32 可以被认为是“2311:FD67:0:0 之间的每个 IP: 0:0:0:0 和 2311:FD67:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF”。
我认为我们开始迁移到 IPv6 还需要很长时间,但我希望这个解释能帮助您更轻松地使用它们并参考它们。
同样,了解我在这里谈论的唯一内容是如何写下 IPv6 地址是非常重要的。路由编号方案中似乎内置了很多智能,等等,我还没有真正掌握,所以我现在只能解决它的样子=)。
(*) 我之前在一些软件调试中看到过十进制 IPv4 表示,但我几乎可以肯定这是一个错误或懒惰,我认为在 C 代码中快速打印 32 位整数比它要容易得多格式化一个虚线四边形进行打印。
(**) 我把我的公司名称和前缀
TechNet 有一个有趣的IPV6 页面。
看一下这个:
Hurricane Electric 免费 IPv6 认证
以下链接提供了非常丰富的信息(关于 IPv6):
http://www.personal.psu.edu/dvm105/blogs/ipv6/(IPv6上的第一人称帐户 - 博客)
http://www.tcpipguide.com/free/t_InternetProtocolVersion6IPv6IPNextGenerationIPng.htm
http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_9-3/ipv6_internals.html
http://www.spirentcom.cn/download/Poster/ProtocolPoster_IPv6.pdf(可打印的 IPv6 海报)
我可以推荐至少 3 本书来帮助您了解 IPv6 网络的实践:
由于您是 Windows 人员,我认为第一本书是 Microsoft Windows 中 IPv6 实施的权威指南。第 2 和第 3 本书非常适合获得 IPv6 的实践经验。