完整的 IPv6 指南:你需要知道的一切
从基础到高级部署,掌握 IPv6。涵盖地址分配、配置、安全、迁移和最佳实践的综合指南。
互联网依赖于地址运行。1981 年,IPv4 的 43 亿个地址似乎是无穷无尽的。到 2011 年,它们已经用完了。IPv6 通过 340 涧个地址解决了这个问题——足以让地球上的每一粒沙子拥有数十亿个地址。但 IPv6 不仅仅是更大的数字。它是一个更清洁、更快速的协议,专为现代互联网而设计。
这是你的完整 IPv6 指南。无论你是在生产环境中部署它的系统管理员、构建 IPv6 就绪应用程序的开发人员,还是学习网络基础知识的学生,本指南都涵盖了你需要知道的一切。
如何使用本指南#
这是一个支柱页面——一个链接到特定主题详细文章的综合路线图。从这里开始了解大局,然后深入研究对你最重要的文章。
如果你是 IPv6 新手:从上到下阅读本页,然后按顺序阅读基础文章。IPv6 基础知识文章是你的起点。
如果你正在部署 IPv6:跳到配置和迁移部分。双栈指南和迁移策略文章将帮助你快速运行。
如果你是开发人员:关注地址、DNS 和开发人员部分。IPv6 开发人员指南文章涵盖了 API 注意事项和常见陷阱。
如果你正在排除故障:跳转到诊断工具和故障排除部分。我们的 Ping、Traceroute 和 MTR 工具都支持 IPv6。
什么是 IPv6?#
IPv4 地址用完了。不是「可能用完」——它们实际上用完了。IANA 在 2011 年分配了最后的地址块。从那时起,我们一直在用 NAT、运营商级 NAT 和越来越复杂的技巧来解决耗尽问题。
IPv6 使用 128 位地址,而不是 IPv4 的 32 位。这是 340,282,366,920,938,463,463,374,607,431,768,211,456 个地址。写出来就是:三百四十涧。我们不会用完这些地址。
但协议重新设计不仅仅解决了地址空间问题。IPv6 消除了 NAT,简化了头部处理以实现更快的路由,从一开始就包含了 IPsec,并添加了无状态自动配置,使设备可以在没有 DHCP 的情况下自行配置。
IPv6 地址看起来像这样:2001:0db8:85a3:0000:0000:8a2e:0370:7334。八组用冒号分隔的十六进制数字。压缩规则允许你将其缩短为 2001:db8:85a3::8a2e:370:7334,使地址更易于管理。
从这里开始
阅读 IPv6 基础知识 以全面了解 IPv6 地址、压缩规则以及相对于 IPv4 的关键协议改进。
理解 IPv6 地址#
IPv6 地址是分层的和结构化的。前 64 位通常标识网络,后 64 位标识接口。这种清晰的划分使路由更快,子网划分更简单。
但并非所有 IPv6 地址都相同。不同的地址类型有不同的用途:
- 全局单播地址(
2000::/3)可在公共互联网上路由 - 链路本地地址(
fe80::/10)仅在本地网络段上工作 - 唯一本地地址(
fc00::/7)是类似于 IPv4 中 RFC 1918 的私有地址 - 多播地址(
ff00::/8)将数据包传递给主机组 - 特殊地址,如
::1(环回)和::(未指定)
每种类型都解决特定问题。链路本地地址允许设备在获得全局地址之前进行通信。多播取代了 IPv4 的广播,减少了网络噪音。理解在不同场景中使用哪种地址类型是使用 IPv6 的基础。
IPv6 中的子网划分在半字节边界(4 位块)上工作,因为使用十六进制表示法。典型的家庭或企业获得 /48 分配,提供 65,536 个 /64 子网。这比大多数组织的 IPv4 地址总数还要多的子网。
地址深入探讨
- IPv6 地址类型 - 单播、多播、任播和特殊地址的完整分解
- IPv6 子网划分指南 - 通过实际示例学习高效划分地址空间
IPv6 如何工作#
IPv6 用更清晰的设计替换了几个 IPv4 协议。理解这些核心机制有助于你配置、故障排除和优化 IPv6 网络。
ICMPv6:不仅仅是错误消息#
在 IPv4 中,ICMP 处理错误消息和 ping。IPv6 的 ICMPv6 可以做到这一点,还可以进行邻居发现、路由器发现、路径 MTU 发现等。它是必不可少的——在防火墙上阻止 ICMPv6,IPv6 就会停止工作。
ICMPv6 包括邻居发现协议(NDP),它取代了 ARP。NDP 不是向每个主机广播「谁有这个 IP 地址?」,而是使用目标多播。它更高效,更安全(特别是使用安全邻居发现扩展)。
路由器通告消息允许路由器自动宣布网络前缀。设备侦听这些通告并在没有手动干预或 DHCP 的情况下自行配置。
了解更多:ICMPv6 解释涵盖错误消息、NDP、路由器发现,以及为什么不能阻止 ICMPv6。
地址自动配置#
IPv6 设备可以使用 SLAAC(无状态地址自动配置)自行配置。以下是插入以太网电缆时发生的情况:
- 接口生成链路本地地址(
fe80::/10) - 它发送邻居请求以检查该地址是否唯一
- 它侦听来自本地路由器的路由器通告
- 路由器通告网络前缀(如
2001:db8:1::/64) - 设备将前缀与生成的接口 ID 组合
- 现在它有一个全局单播地址,并知道默认网关
不需要 DHCP 服务器。设备在几秒钟内自行配置。
你仍然可以使用 DHCPv6 进行集中管理、DNS 服务器分配或其他选项。许多网络同时运行 SLAAC 和 DHCPv6。SLAAC 处理基本连接;DHCPv6 提供附加配置。
了解更多:DHCPv6 vs SLAAC 解释何时使用每种方法以及如何将它们一起运行。
配置 IPv6#
启用 IPv6 取决于你的操作系统和网络设置。大多数现代系统开箱即支持双栈(IPv4 和 IPv6 同时运行)。你通常只需要启用它并配置你的路由器。
操作系统支持#
Windows、macOS、Linux、iOS 和 Android 都默认启用 IPv6。FreeBSD、OpenBSD 和企业 Linux 发行版等企业系统具有强大的 IPv6 支持。配置语法有所不同,但概念是相同的。
常见任务包括:
- 在网络接口上启用 IPv6
- 配置静态地址或 SLAAC
- 设置路由和默认网关
- 配置支持 AAAA 记录的 DNS 解析器
- 调整防火墙以允许 ICMPv6
了解更多:如何启用 IPv6 提供 Windows、macOS、Linux 和各种服务器平台的分步说明。
DNS 和 IPv6#
IPv6 的 DNS 记录使用 AAAA 记录(发音为「quad-A」)而不是 A 记录。AAAA 记录将主机名映射到 IPv6 地址,就像 A 记录映射到 IPv4 地址一样。
客户端通常同时查询 A 和 AAAA 记录。如果服务器同时具有 IPv4 和 IPv6 地址,客户端更喜欢 IPv6(遵循 Happy Eyeballs 算法,如果 IPv6 失败则快速回退)。
反向 DNS 使用 ip6.arpa 而不是 in-addr.arpa。地址在半字节级别反转,这一开始看起来很奇怪,但遵循与 IPv4 相同的分层委派模式。
DNS64 是一种特殊机制,可以从 A 记录合成 AAAA 记录,让纯 IPv6 客户端访问纯 IPv4 服务器。它通常部署在运行纯 IPv6 基础设施的移动网络中。
了解更多:IPv6 DNS 配置涵盖 AAAA 记录、反向 DNS、DNS64 和解析器配置。
IPv6 安全#
IPv6 不会自动比 IPv4 更安全或更不安全。它消除了一些 IPv4 漏洞(如 ARP 欺骗),并引入了新的考虑因素(如大规模地址空间使扫描更困难,但 NDP 缓存耗尽成为可能)。
安全基础#
巨大的地址空间使盲目扫描变得不切实际。攻击者试图通过扫描 /64 子网中的每个地址来查找主机,每秒十亿个地址需要 5.84 亿年。但使用可预测寻址模式的目标攻击仍然有效。
IPsec 支持从一开始就内置在 IPv6 中。在 IPv4 中,IPsec 是后来改装的,除了 VPN 之外从未得到广泛采用。IPv6 更清洁的 IPsec 集成使加密通信更容易——尽管它仍然不是通用的。
扩展头部提供灵活性,但会产生攻击面。防火墙和路由器必须小心处理它们。一些网络完全丢弃带有扩展头部的数据包,这会破坏合法用例,如分片。
了解更多:IPv6 安全注意事项涵盖攻击向量、防御策略和常见安全错误。
防火墙规则#
IPv6 防火墙的工作方式与 IPv4 防火墙类似,但有关键区别。你必须允许 ICMPv6 类型 133-137(邻居发现和路由器通告),否则 IPv6 会停止工作。阻止所有 ICMPv6 不是一个选项。
默认拒绝策略的工作方式相同:阻止所有入站连接,除了已建立的连接和明确允许的服务。内部主机上的全局单播地址是可路由的,因此防火墙规则比在 IPv4 NAT 环境中更重要。
许多组织最初在学习模式下运行 IPv6 防火墙,记录所有流量以在执行拒绝规则之前了解合法模式。这可以防止破坏意外的服务。
了解更多:IPv6 防火墙配置包括常见平台和服务的示例防火墙规则。
隐私扩展#
基于 MAC 的接口 ID 会在网络之间泄露硬件地址。如果你的笔记本电脑在任何地方生成相同的接口 ID,即使前缀更改,观察者也可以在不同网络中跟踪你。
隐私扩展(RFC 4941)通过生成定期更改的随机接口 ID 来解决此问题。Windows、macOS、iOS 和 Android 默认启用此功能。Linux 发行版各不相同——一些启用它,一些不启用。
对于服务器,稳定的地址更有意义。对于用户设备,隐私扩展可减少跟踪。根据你的用例进行选择。
了解更多:IPv6 隐私扩展解释跟踪风险和隐私保护机制。
迁移策略#
你不能一夜之间翻转开关并转换到 IPv6。迁移使用双栈、隧道或转换机制逐步进行。
双栈:同时运行两者#
最常见的方法是在同一网络上同时运行 IPv4 和 IPv6。每个设备都有两种地址类型。应用程序在可用时首选 IPv6,并在需要时回退到 IPv4。
双栈很简单,但需要两种协议的地址空间。你需要 IPv4 地址以实现传统兼容性,需要 IPv6 地址以面向未来。随着时间的推移,随着服务和客户端专门支持 IPv6,你可以弃用 IPv4。
今天,大多数连接互联网的网络都运行双栈。AWS、Google Cloud 和 Azure 等云提供商都支持它。Cloudflare 等 CDN 通过两种协议提供内容。你的基础设施也应该如此。
了解更多:双栈 IPv4/IPv6 指南涵盖部署规划、路由配置和常见问题。
隧道和转换#
当双栈不可行时,隧道将 IPv6 数据包封装在 IPv4 中(反之亦然)。隧道允许隔离的 IPv6 网络通过纯 IPv4 基础设施进行通信。
常见隧道协议:
- 6to4:使用公共 IPv4 地址的自动隧道
- 6rd:ISP 管理的隧道,用于快速 IPv6 部署
- Teredo:通过 NAT 的隧道(已弃用,被更好的选项替代)
- 6in4:点对点连接的手动隧道
NAT64 和 DNS64 等转换机制允许纯 IPv6 客户端访问纯 IPv4 服务器。移动运营商广泛使用此功能——许多手机在蜂窝网络上仅使用 IPv6,仅在需要时才转换为 IPv4。
了解更多:IPv6 迁移策略通过部署场景和建议解释所有迁移机制。
生产环境中的 IPv6#
在生产环境中部署 IPv6 需要的规划不仅仅是在路由器上启用它。你需要工作的 DNS、监控、日志记录、应用程序支持和清晰的回滚计划。
云平台支持#
主要云提供商支持 IPv6,集成程度各不相同:
- AWS:VPC 支持双栈,大多数服务支持 IPv6,一些需要配置
- Google Cloud:默认双栈 VPC,跨服务的出色 IPv6 支持
- Azure:双栈支持,区域可用性各不相同
- DigitalOcean:所有 Droplet 上的 IPv6,配置简单
- Hetzner:原生 IPv6 支持,/64 分配标准
云部署通常比本地部署更容易,因为提供商处理路由和地址分配。你为双栈操作配置实例和安全组。
了解更多:云中的 IPv6涵盖主要云平台的配置细节。
最佳实践#
生产 IPv6 部署遵循最小化风险和最大化兼容性的模式:
- 尽可能在任何地方运行双栈
- 对服务器使用稳定地址,对客户端使用隐私扩展
- 在防火墙上允许所需的 ICMPv6 类型
- 为两个地址族配置监控
- 在生产部署之前测试应用程序兼容性
- 实施 DNS AAAA 记录以及 A 记录
- 记录你的地址分配计划
许多组织首先将 IPv6 部署到新基础设施,在迁移关键系统之前获得经验。这种分阶段的方法可以降低风险,同时建立机构知识。
了解更多:IPv6 最佳实践提供生产部署的全面检查表。
开发人员注意事项#
应用程序需要更新才能正确支持 IPv6。大多数网络库支持双栈,但假设 32 位地址或解析点分十进制表示法的代码会中断。
常见问题:
- 配置中的硬编码 IPv4 地址
- 期望点而不是冒号的字符串解析
- 对于 IPv6 地址来说太小的数据库字段(最少使用 VARCHAR(45))
- 仅跟踪 IPv4 的日志记录和监控
- 不尝试两个地址族的套接字代码
Happy Eyeballs 算法(RFC 8305)优雅地处理双栈连接。首先尝试 IPv6,如果失败则快速回退到 IPv4。现代 HTTP 库自动实现此功能。
了解更多:IPv6 开发人员指南涵盖 API 更改、常见陷阱和测试策略。
IPv6 故障排除#
IPv6 的诊断工具与 IPv4 对应工具类似,但使用不同的协议和地址格式。
基本工具#
- ping6:发送 ICMPv6 回显请求,验证连接性
- traceroute6:映射数据包通过网络的路径
- mtr:将 ping 和 traceroute 与实时统计相结合
- nslookup/dig:查询 AAAA 记录并验证 DNS 配置
- tcpdump/wireshark:捕获和分析数据包,包括 ICMPv6
所有这些工具都可以在 ping6.net 上使用:
- IPv6 Ping 工具 - 使用详细统计测试可达性
- IPv6 Traceroute 工具 - 使用逐跳延迟跟踪数据包路径
- IPv6 MTR 工具 - 具有数据包丢失检测的实时网络诊断
- IPv6 DNS 查询 - 查询 AAAA 记录并验证 DNS 配置
常见问题#
没有 IPv6 连接:检查你的接口是否具有全局单播地址,验证是否正在接收路由器通告,确认你的 ISP 提供 IPv6。
间歇性故障:通常由路径 MTU 发现问题引起。验证 ICMPv6 类型 2(数据包太大)消息未被阻止。
连接缓慢:通常意味着 IPv6 失败,应用程序在超时后回退到 IPv4。修复 IPv6 连接或完全禁用它。
DNS 解析失败:检查你的解析器是否返回 AAAA 记录,验证权威 DNS 服务器具有正确的记录,使用多个解析器进行测试。
了解更多:IPv6 故障排除指南通过常见问题的系统诊断。
文章索引#
所有文章都按类别组织,便于导航。这是你成为 IPv6 深度专家的路线图。
基础知识#
如果你是 IPv6 新手或需要全面的基础,请从这里开始。
| 文章 | 描述 | 级别 |
|---|---|---|
| IPv6 基础知识 | 核心概念、地址格式、压缩规则和协议改进 | 初学者 |
| IPv6 地址类型 | 全局单播、链路本地、多播、任播和特殊地址 | 初学者 |
| IPv6 子网划分指南 | 子网分配、地址规划和实际示例 | 中级 |
| ICMPv6 解释 | 错误消息、NDP、路由器发现以及为什么 ICMPv6 至关重要 | 中级 |
配置#
在真实系统上启用和配置 IPv6 的实用指南。
| 文章 | 描述 | 级别 |
|---|---|---|
| 如何启用 IPv6 | Windows、macOS、Linux 和服务器的分步说明 | 初学者 |
| DHCPv6 vs SLAAC | 无状态与有状态自动配置以及何时使用每种方法 | 中级 |
| IPv6 DNS 配置 | AAAA 记录、反向 DNS、DNS64 和解析器设置 | 中级 |
安全#
保护你的 IPv6 网络并了解安全环境。
| 文章 | 描述 | 级别 |
|---|---|---|
| IPv6 安全注意事项 | 攻击向量、防御策略和安全最佳实践 | 中级 |
| IPv6 防火墙配置 | 防火墙规则、ICMPv6 要求和示例配置 | 中级 |
| IPv6 隐私扩展 | 跟踪风险、隐私扩展和临时地址 | 中级 |
迁移#
使用经过验证的策略自信地从 IPv4 迁移到 IPv6。
| 文章 | 描述 | 级别 |
|---|---|---|
| IPv6 迁移策略 | 双栈、隧道和转换机制概述 | 中级 |
| 双栈 IPv4/IPv6 指南 | 通过详细示例同时部署两种协议 | 中级 |
生产部署#
自信地将 IPv6 从实验室带到生产环境。
| 文章 | 描述 | 级别 |
|---|---|---|
| 云中的 IPv6 | AWS、GCP、Azure 等的平台特定指南 | 中级 |
| IPv6 最佳实践 | 生产部署检查表和经过验证的模式 | 高级 |
| IPv6 开发人员指南 | API 注意事项、代码更改和测试策略 | 中级 |
故障排除#
使用系统方法诊断和修复 IPv6 问题。
| 文章 | 描述 | 级别 |
|---|---|---|
| IPv6 故障排除指南 | 连接、DNS 和路由问题的系统诊断 | 中级 |
测试你的理解#
阅读 IPv6 可以建立知识。使用它可以建立专业知识。我们的工具让你可以练习所学内容:
诊断工具#
- IPv6 Ping - 测试基本连接并测量延迟
- IPv6 Traceroute - 跟踪互联网上的数据包路径
- IPv6 MTR - 具有数据包丢失检测的连续监控
- IPv6 DNS 查询 - 查询 AAAA 记录并验证 DNS 配置
学习工具#
- IPv6 验证器 - 练习地址表示法和压缩规则
- IPv6 子网计算器 - 计算子网边界和地址范围
检查你的连接#
- 我的 IPv6 地址是什么? - 查看你是否通过 IPv6 连接
- IPv6 显示 - 可视化地址结构和层次结构
下一步#
你已经到达支柱指南的末尾。以下是继续你的 IPv6 之旅的方法:
对于初学者:从 IPv6 基础知识开始,然后阅读地址类型和子网划分。使用我们的验证器练习,直到地址表示法感觉自然。
对于系统管理员:阅读如何启用 IPv6,然后查看双栈指南和迁移策略。使用我们的诊断工具测试你的部署。
对于开发人员:关注 IPv6 开发人员指南并使用双栈连接测试你的应用程序。检查 DNS 解析、套接字处理和日志记录。
对于安全专业人员:学习 IPv6 安全和防火墙配置。查看你的防火墙规则以确保允许 ICMPv6 类型 133-137。
互联网正在转向 IPv6。问题不是你是否会部署它,而是何时部署。本指南为你提供成功部署它所需的一切。
保持连接
IPv6 是一个不断发展的生态系统。新的 RFC、部署模式和最佳实践定期出现。本指南已更新以反映当前的最佳实践和实际部署经验。
相关文章#
- IPv6 基础知识 - 从基础知识开始你的 IPv6 之旅
- IPv6 地址类型 - 了解不同的地址类别及其用途
- IPv6 子网划分指南 - 掌握 IPv6 子网划分