IPv6 入门理解

2026-08-05 · 网络

IPv6 常被理解成「IPv4 的加长版」,但实际接触之后会发现,它的控制面换了一整套, 地址长度反倒不是最需要适应的地方。这篇记录几个我觉得关键的认知差异。

一个接口有多个地址是常态

IPv4 时代,「接口的 IP」通常是一个确定的配置项。IPv6 里它是一个选择结果: 链路本地地址(fe80::/10)每个接口都有,可能还有唯一本地地址 (fd00::/8)、全局地址(2000::/3), 以及启用隐私扩展后的临时地址。

所以调试的第一步往往是搞清楚「这次通信实际用了哪个源地址」。 选择规则由 RFC 6724 定义,可以用显式指定源地址的方式来验证:

ping6 -I <源地址> <目标地址>

路由通告承担了配置下发

IPv6 里路由器通过 RA(Router Advertisement)告诉主机前缀、默认网关、MTU, 甚至 DNS 服务器(RDNSS 选项)。这些都跑在 ICMPv6 上。

有个反直觉的点:DHCPv6 不能下发默认路由,只有 RA 能。 这意味着你没法像 IPv4 那样用 DHCP 选项把网关指到另一台设备上。

想看路由器实际宣告了什么,抓包最直接:

tcpdump -i <接口> -n -vvv icmp6

一个 RA 报文里就能看到前缀、标志位、生存时间、MTU、DNS 全部信息,信息密度很高。

ICMPv6 不能随便封

IPv4 里防火墙封掉 ICMP 基本没什么影响。IPv6 里 ICMPv6 承担了地址解析 (取代 ARP)、路由通告、路径 MTU 发现等职责,封掉之后网络直接不通。 这是配置防火墙时最常见的翻车点。

没有 NAT,防火墙要显式配置

IPv4 时代 NAT 顺手把内网设备藏在了后面。IPv6 下每台设备都有全局可路由的地址, 默认状态下是对外可见的。这是安全模型上的实质变化,需要显式配置防火墙策略, 不能再依赖 NAT 带来的副作用。

MTU 与分片

IPv6 的最小 MTU 是 1280,且中间路由器不做分片,必须依赖路径 MTU 发现。 MTU 问题的典型表现是「小包通、大包卡」——ping 正常但 HTTPS 请求挂住。 排查时可以用不分片的方式逐步加大包体:

ping6 -M do -s 1400 <目标地址>

关于前缀委派

如果要在下游再划分子网,需要上游提供前缀委派(PD)。运营商给的前缀大小决定了 你能划出多少个子网。只拿到一个 /64 的话,下游路由器就无法再分配子网, 只能在同一个前缀内取址或者做邻居发现代理。这一点和 IPv4 里随手 NAT 一层 就有无限内网的思路差别很大。

← 返回文章列表