IPv6 基础:不只是把 IP 地址变长
围绕IPv6 基本认识、地址表示、地址类型和 IPv4/IPv6 首部差异章节,讲清 IPv6 为什么出现以及它改了哪些关键设计。
相关工具
IPv6 不是“更长的 IPv4”这么简单
讲完 IPv4 地址、CIDR 和 NAT,再看 IPv6 会更容易。IPv4 最大的问题大家都知道:地址不够。文中前面讲过,IPv4 虽然理论上有 43 亿多个地址,但地址要分网络号和主机号,还要预留、分配、规划,真正能直接分给设备的数量更少。
CIDR 能减少浪费,NAT/NAPT 能让多个内网设备共享一个公网 IP,但这些办法本质上是在给 IPv4 延寿。它们很实用,也带来了额外的转换表、端口映射、外部主动连接困难等问题。IPv6 出现的背景,就和这些限制有关。
资料 对 IPv6 的概括是:更多的地址,更好的安全性和扩展性。这里最容易误解的是“更多地址”。IPv6 确实把地址从 32 位扩到 128 位,但它不只是把门牌号写长,还顺手改了地址类型、首部结构、自动配置和转发处理方式。
IPv4 和 IPv6 不能直接兼容
IPv6 的普及没有想象中那么快,一个重要原因是它和 IPv4 不能直接兼容。文中也提到,不只是电脑、手机这类终端要支持,网络运营商和中间设备也要升级。只改一端没用,链路上的设备、系统、解析、路由都要配合。
这就解释了为什么今天很多网络还是 IPv4 和 IPv6 并存。你可能在系统里同时看到 IPv4 地址和 IPv6 地址;访问一个网站时,DNS 也可能同时返回 A 记录和 AAAA 记录。客户端会根据本机网络、系统策略和目标可达性选择实际使用哪条路径。
所以学 IPv6 时,不要只问“它为什么还没完全替代 IPv4”。更实际的问法是:IPv6 在地址表达、路由转发和首部处理上做了哪些变化?这些变化解决了 IPv4 的哪些痛点,又带来了哪些部署要求?
地址长度:从 32 位到 128 位
IPv4 地址长度是 32 位,通常每 8 位一组,用点分十进制表示,比如 `192.168.1.23`。IPv6 地址长度是 128 位,每 16 位一组,共 8 组,用冒号分隔,例如 `2001:0db8:0000:0000:0000:ff00:0042:8329`。
128 位带来的地址空间非常大,大到可以让地址分配不再像 IPv4 那样紧巴巴。文中说 IPv6 可分配地址变多,也可以自动配置,即使没有 DHCP 服务器也能实现自动分配 IP 地址。这一点对于大量设备接入网络很重要。
不过地址变长也带来书写问题。IPv6 如果每次都完整写 8 组,既长又容易抄错,所以它支持压缩表示。连续的 0 可以省略成 `::`,但一个 IPv6 地址中 `::` 只能出现一次,否则无法判断到底省略了多少组 0。

IPv4 使用 4 组 8 位点分十进制;IPv6 使用 8 组 16 位冒号分隔,并允许连续 0 用 :: 压缩一次。
地址类型:单播、组播、任播
IPv6 也通过地址前几位标识地址类型。文中列了三类主要地址:单播地址、组播地址、任播地址。单播用于一对一通信,这是最常见的方式;组播用于一对多通信,只有加入对应组的主机才接收;任播用于把数据发送给“最近”的节点,这里的最近由路由协议决定。
IPv6 没有广播地址。IPv4 里常见的广播,在 IPv6 里更多通过组播来完成类似功能。这个变化不是文字游戏。广播会把包发给一个范围内的所有主机,而组播只发给加入某个组的设备,范围更可控。
理解这三类地址,有助于看懂 IPv6 网络里的很多现象。比如同一服务可能在多个位置部署同一个任播地址,用户请求会被路由到相对近的节点;一些邻居发现和控制消息会使用特定组播地址,而不是像 IPv4 那样依赖广播。
三类单播地址怎么用
资料 对 IPv6 单播地址又做了三类划分。第一类是链路本地单播地址,用于同一链路内通信,不经过路由器。IPv4 没有完全对应的正式类型。你在系统里看到 `fe80::` 开头的地址,常常就是链路本地地址。
第二类是唯一本地地址,用于内网单播通信,可以把它理解成 IPv6 里的私有地址。它适合组织内部使用,不直接面向整个互联网。第三类是全局单播地址,用于互联网通信,相当于 IPv4 里的公有 IP。
这样分的好处是范围更清楚。同一链路、组织内网、互联网通信分别有不同语义。排查时看到一个 IPv6 地址,先判断它属于哪个范围,比直接拿去访问更可靠。链路本地地址往往还需要指定接口,否则系统不知道应该从哪块网卡发出去。
自动配置:不一定非要 DHCP
IPv4 时代,我们经常依赖 DHCP 获取地址。IPv6 当然也可以配合 DHCPv6 使用,但 文中强调了 IPv6 的一个亮点:可以自动配置,即使没有 DHCP 服务器也可以实现自动分配 IP 地址。
这背后常见的是无状态地址自动配置。主机通过路由器通告知道网络前缀,再结合接口标识生成自己的 IPv6 地址。实际网络里,运营商、企业设备、操作系统策略会影响最终配置方式,所以你可能看到自动配置、DHCPv6、手工配置并存。
对入门来说,先记住边界就够了:IPv6 不再把“拿到地址”完全绑定到传统 DHCP 四步上。它提供了更适合大规模地址空间的自动配置思路,但 DNS、网关、前缀策略这些信息仍然需要网络侧正确发布。
IPv6 首部固定 40 字节
IPv4 首部有可变长度,里面有首部校验和、分片相关字段、选项字段等内容。IPv6 则把基础首部固定为 40 字节。文中说,IPv6 去掉了包头校验和,简化了首部结构,减轻了路由器负荷。
为什么能去掉首部校验和?已有的理由是,数据链路层和传输层都会做校验,因此 IPv6 取消 IP 首部校验。这样中间路由器每转发一跳,就少了一项重新计算的工作。
IPv6 还取消了中间路由器分片和重组相关字段。分片和重组是耗时操作,IPv6 不允许中间路由器进行分片与重组,这些事情只能由源主机和目标主机处理。路由器的职责更集中:根据首部信息转发,不在路上做复杂加工。

IPv6 基础首部固定 40 字节,取消首部校验和、中间路由器分片相关字段,并用下一个首部承载扩展能力。
选项字段去了哪里
IPv4 里有选项字段,但它会让首部长度变得不固定。路由器处理包时,如果首部长短不一,就会增加解析复杂度。IPv6 删除了基础首部里的选项字段,让基础首部保持固定长度。
这并不代表 IPv6 没有扩展能力。文中提到,选项字段并没有消失,而是可能出现在 IPv6 首部中“下一个首部”指出的位置上。换句话说,常规转发看到的是精简的基础首部,需要扩展时再通过扩展首部表达。
这个设计很像把常用通道和特殊通道分开。大多数包走固定、简单、容易处理的路径;少数需要特殊能力的包,再通过扩展首部携带额外信息。这样既保留扩展性,也减少普通转发的负担。
IPv6 和 NAT 的关系
IPv4 里 NAT 很常见,是因为公网地址紧缺。家庭、公司、学校里的主机用私有 IP 出口转换成公网 IP,多个设备共享一个地址。IPv6 地址空间大得多,理论上每台设备都可以配置全局唯一地址,所以它不需要像 IPv4 那样大量依赖 NAT 来节省地址。
这不等于 IPv6 网络里完全没有地址转换,也不等于所有设备都应该裸露在互联网上。安全边界仍然要靠防火墙、访问控制、路由策略来做。只是“为了省公网地址而不得不用 NAT”这个压力,在 IPv6 下明显小很多。
实际部署中,很多网络会同时运行 IPv4 和 IPv6,也可能使用双栈、隧道、NAT64 等过渡方案。入门阶段不需要把这些方案一次吃完,先把 IPv6 的地址空间、地址类型和首部变化理解好,后面再看过渡技术会轻松不少。
排查 IPv6 时别照搬 IPv4 习惯
排查 IPv6 连通性时,第一步仍然是看地址、网关、DNS,但判断方式和 IPv4 有差异。一个接口上可能同时有链路本地地址、唯一本地地址、全局单播地址。你要先确认当前访问目标应该使用哪类地址。
第二步看 DNS。IPv4 常看 A 记录,IPv6 要看 AAAA 记录。一个域名可能同时有 A 和 AAAA,客户端走哪条路径,取决于系统策略和网络可达性。遇到“有的网络能访问、有的网络不能访问”时,IPv6 路径和 IPv4 路径可能完全不同。
第三步看中间设备支持。文中也提醒,IPv4 和 IPv6 不兼容,普及需要终端和运营商设备升级。如果链路中某段设备没有正确支持 IPv6,或者防火墙没有放行对应流量,应用层看到的就只是连接失败。
面试里怎么讲
如果被问 IPv6 为什么出现,可以这样答:IPv4 地址空间有限,CIDR 和 NAT 能缓解但不能从根上解决。IPv6 把地址长度从 32 位扩到 128 位,提供更大的地址空间,同时在自动配置、安全性和扩展性上做了改进。
如果被问 IPv6 地址怎么写,就说 IPv6 每 16 位一组,共 8 组,用冒号分隔。连续的 0 可以用 `::` 压缩,但一个地址里 `::` 只能出现一次。IPv6 主要有单播、组播、任播三类地址,没有广播地址。
如果被问 IPv6 首部变化,可以抓住三点:基础首部固定 40 字节;取消首部校验和;不允许中间路由器分片和重组,选项能力通过“下一个首部”指向扩展首部。这样能简化路由器处理,提高转发效率。
常见问题
IPv6 地址为什么可以用 :: 压缩?
IPv6 地址很长,连续的 0 可以用 `::` 省略,方便书写。但一个地址中 `::` 只能出现一次,否则无法判断省略了多少组 0。
IPv6 有没有广播地址?
没有。文中提到 IPv6 主要有单播、组播、任播地址,没有广播地址。类似广播的场景通常通过组播完成。
IPv6 和 IPv4 能直接互通吗?
不能直接兼容。实际网络中通常依赖双栈、隧道、NAT64 等过渡方案,并且需要终端、网络设备和运营商链路支持。