IPv6 使用 128 位地址,旨在提供大得多的地址空间,同时更新数据包和邻居发现行为。IPv4 与 IPv6 是两种独立协议;双栈主机可以在网络过渡期间同时运行两者。
子网划分 · 第 7 课
IPv6
学习如何读取 IPv6 地址、前缀、作用域、自动配置和 Linux 路由状态。
阅读 IPv6 表示法
IPv6 地址写成八个 16 位十六进制组:
2001:0db8:0000:0000:0000:0000:0000:0025
每组开头的零可以省略,一段连续的零组可以使用 :: 压缩:
2001:db8::25
:: 只能出现一次,否则无法确定省略了多少组。2001:db8::/32 保留用于文档示例。
为什么 :: 在一个 IPv6 地址中最多出现一次?
地址类型与作用域
重要地址和范围包括:
::1/128:本地主机上的环回地址。fe80::/10:链路本地单播,通常存在于 IPv6 接口上。2000::/3:当前分配的全球单播空间。ff00::/8:多播。
IPv6 没有广播地址;多播和邻居发现承担 IPv4 中常由广播完成的用途。链路本地目标可能需要 fe80::1%eth0 这样的接口区域,因为每条链路上都存在相同前缀。
fe80::/10 地址的正常作用范围是什么?
前缀与接口地址
IPv6 CIDR 表示法使用 /0 到 /128 的前缀长度。/64 是大多数 LAN 子网的标准大小,并支持无状态地址自动配置。一个接口可以同时拥有链路本地、稳定全球、临时隐私及其他地址,每个地址都有首选期和有效期。
为什么一个接口可能显示多个 IPv6 地址?
邻居发现与路由器发现
IPv6 邻居发现使用 ICMPv6 完成地址解析、重复地址检测、路由器发现和可达性信息交换。路由器通告可以提供前缀和默认路由器信息。主机可以将 SLAAC 与 DHCPv6 结合以获得其他配置;DHCPv6 通常不提供默认路由器。
阻止所有 ICMPv6 会破坏必要的协议行为。防火墙策略应在适当作用范围允许必需的消息类型,而不能把 ICMPv6 当作可有可无。
IPv6 主机通常如何动态获得默认路由器?
检查和测试 IPv6
分别检查地址、路由和邻居:
$ ip -6 address show
$ ip -6 route show
$ ip -6 neighbor show
$ ping -6 -c 3 2001:db8::25
应使用真实分配的测试地址,而不是这里显示的文档地址。双栈应用程序可能通过 IPv4 成功而 IPv6 失败,反之亦然,因此应分别明确测试每个地址族及其 DNS A 或 AAAA 记录。
为什么要分别测试双栈服务的 IPv4 与 IPv6?
课程已完成
你已完成 IPv6
现在,你可以读取和测试常见 IPv6 接口与路由状态。
正确展开或压缩八个十六进制地址组。
区分环回、链路本地、全球和多播作用域。
预期一个接口上存在多个 IPv6 地址和有效期。
保留必要的邻居发现与路由器通告流量。
在双栈服务上分别测试 IPv4 和 IPv6 路径。