一文搞懂 IPv4、IPv6 与双栈部署区别

2025.7.2 杂七杂八 1808
33BLOG智能摘要
从 IPv4 到 IPv6:主要介绍 IPv4 和 IPv6 的特点与现实挑战,指出 IPv4 地址已成稀缺资源,IPv6 尽管地址空间巨大并具新技术优势,但普及缓慢。双栈部署作为过渡方案被广泛采用,实际操作中需注意 DNS 解析优先级和防火墙规则管理等问题。建议先在内网测试,再逐步推进到公网服务。作者团队已完成 Web 服务双栈改造,访问延迟平均降低 15%。
— 此摘要由33BLOG基于AI分析文章内容生成,仅供参考。

从 IPv4 到 IPv6:一个运维老兵的踩坑与双栈部署实战

一文搞懂 IPv4、IPv6 与双栈部署区别

大家好,我是 33blog 的运维老司机。今天想和大家聊聊 IP 地址那些事儿——特别是 IPv4 和 IPv6 的爱恨情仇,以及我们团队在双栈部署路上踩过的那些坑。相信看完这篇,你就能明白为什么 IPv6 喊了这么多年还没完全取代 IPv4,以及在实际环境中如何优雅地过渡。

IPv4:互联网的老功臣

记得我刚入行时,IPv4 就像空气一样理所当然。32 位地址,约 43 亿个组合,在 90 年代看起来简直是天文数字。但现实很骨感——谁能想到我们真的会用完呢?

最让我印象深刻的是 2019 年给客户申请公网 IP 时,AWS 居然要求我们写使用说明!这让我意识到 IPv4 地址真的成了稀缺资源。常见的 IPv4 特点:

  • 点分十进制表示(如 192.168.1.1)
  • NAT 成为标配(说好的端到端呢?)
  • 子网掩码和 CIDR 玩到飞起

IPv6:未来已来,但来得有点慢

IPv6 的 128 位地址号称能给地球上每粒沙子都分配地址,但推广速度堪比蜗牛。去年我给公司内网部署 IPv6 时,发现不少设备居然还不支持!

# 检查 Linux 系统 IPv6 支持
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
# 返回 0 表示已启用

IPv6 的几个关键变化:

  • 冒号分隔的十六进制(如 2001:0db8:85a3::8a2e:0370:7334)
  • 取消了 NAT(终于回归设计初衷)
  • 内置 IPSec 支持
  • 无状态地址自动配置(SLAAC)真香

双栈部署:不得不选的过渡方案

在现网环境中,我们最终选择了双栈部署。但这个过程简直是一部血泪史:

坑点1:DNS 解析优先级
有次服务突然不可用,排查半天发现是客户端优先解析了 IPv6,但我们的 IPv6 路由还没配置完整。解决方案:

# 修改 /etc/gai.conf 调整解析优先级
precedence ::ffff:0:0/96  100

坑点2:防火墙规则翻倍
原本简单的 iptables 规则现在要维护两套,后来我们改用 nftables 才统一管理:

# nftables 示例规则
nft add rule inet filter input ip6 saddr 2001:db8::/64 accept
nft add rule inet filter input ip saddr 192.168.1.0/24 accept

实战建议:如何优雅过渡

根据我们的经验,建议按这个节奏推进:

  1. 先在内网测试环境启用 IPv6
  2. 确保所有监控系统支持 IPv6 指标
  3. 应用代码要处理 getaddrinfo() 可能返回的 IPv6 地址
  4. 逐步将公共服务升级为双栈
  5. 最后处理 VPN 等特殊场景

最近我们刚完成所有 Web 服务的双栈改造,访问延迟平均降低了 15%。虽然过程曲折,但看到 traceroute 里出现 IPv6 的路径时,那种成就感还是很爽的!

IPv6 的全面普及可能还需要几年时间,但早做准备绝对没错。如果你也在部署过程中遇到问题,欢迎在评论区交流~

评论

  • 第一次看这么详细的IPv6教程,比那种官方的文档好理解多了👍

  • 作为一个网络小白,看完还是有点懵😅 能推荐些更基础的入门资料吗?

  • 双栈部署那段太真实了,我们公司也是遇到DNS解析问题,搞了三天才定位到问题

  • IPv6推广慢主要还是设备兼容性问题吧?感觉很多IoT设备都还只支持v4

  • 老司机带带我!正好下周要搞IPv6迁移,这篇文章来得太及时了

  • 防火墙那段用nftables的方案太实用了,省了我们很多工作量

  • IPv4最后那两个地址段现在分配得怎么样了?感觉都在搞NAT划水

  • 想问下小编,你们测试IPv6时用的是什么抓包工具?Wireshark有点不太适应v6的报文格式