IPv6 到底是什么?一句话先抓住本质

IPv4 / IPv6 都是"给网络接口贴的门牌号码",只不过:

  • IPv4:门牌用 32 bit​ 编号 → 总共约 42 亿个地址

  • IPv6:门牌用 128 bit​ 编号 → 总共 2^128​ 个地址(大到天文数字,核心目的就是"永远不再不够用")

你现在网上的一切(手机/电脑/服务器)要通信,最终都得靠某个层次的 IP 地址来定位"你是谁、我回哪去"。IPv6 就是把这把尺子从 32 位拉长到 128 位,并顺手把协议翻新了一遍。


一、IPv4 地址先快速温习(才能看出 IPv6 为什么要那样设计)

1)长相

常见写法是 点分十进制

192.168.1.10

其实是把 32 bit 分成 4 个 8-bit 字节,每个写成十进制 0–255:

192 . 168 . 1 . 10
↑8bit  ↑8bit  ↑8bit  ↑8bit   = 32 bit

2)32 bit 意味着什么

  • 2^32 ≈ 4,294,967,296(42 亿)

  • 扣除掉保留段(私网段、回环、组播、广播等),能拿来给互联网单播用的更少

  • 于是我们被迫发明了 NAT(Network Address Translation)

    多家共用一个公网 IP,靠端口区分——解决了"数量不够",但也破坏了端到端模型(这也是很多网络麻烦的根源)


二、IPv6 地址怎么写(最容易卡壳的地方)

1)基本形态:冒号分隔十六进制

IPv6 是 128 bit,通常切成 8 组,每组 16 bit = 4 个十六进制字符,用 :分开:

2001:0db8:85a3:0000:0000:8a2e:0370:7331

每一组里的 前导 0 可以省略0db8db800000):

2001:db8:85a3:0:0:8a2e:370:7331

2)最关键的压缩规则:::(只能用一次)

一段或多段连续的 0000可以用 ::一次性缩掉:

2001:db8:85a3::8a2e:370:7331

为什么只能一次?因为展开时必须能唯一确定长度(8 组),用两次就会歧义。

3)IPv4 混写(过渡期遗留写法,你会见到但别滥用)

::ffff:192.168.1.10

表示"IPv4-mapped IPv6 address",本质是兼容写法,意思是"里面其实是 IPv4"。

4)前缀写法(像子网掩码的现代写法)

IPv6 不用255.255.255.0这种子网掩码,而是直接用 CIDR:

2001:db8:abcd:12::/64

意思是:前 64 bit​ 是网络前缀,后 64 bit 给主机接口自由分配。

(/64 是 IPv6 的"经典 subnet size",几乎等于一条铁律:一个 LAN 通常就是一个 /64,哪怕你只用 10 台机器。)


三、核心区别对照表(把"书上讲"变成"工程上感受")

维度

IPv4

IPv6

地址长度

32 bit

128 bit

常见写法

192.168.1.10

2001:db8::1

地址空间

≈42 亿(早就不够)

2^128(大得离谱)

地址类型观

A/B/C、私网/公网、NAT

单播 / 组播 / 任播;私网概念弱化(有"唯一本地"替代)

广播

有(ARP + broadcast)

没有广播(用组播/邻居发现代替)

子网掩码写法

255.255.255.0+ IP

CIDR:/64(干净利落)

头部复杂度

选项字段多、长度不定,路由器处理重

固定基本头 + 扩展头链,路由器处理更"流水线友好"

NAT 必要性

几乎必须(因为不够用)

理论上不需要 NAT(每块设备都能拿到公网可达地址)

安全(IPsec)

可选外挂

协议层面定义支持路径(虽然现实里仍靠 TLS 兜底)

配置方式

DHCP 或手动;DHCP 很常见

SLAAC(无状态自动配置)​ + DHCPv6;插上网线自己拼地址很常见

ARP

靠 ARP 拿 MAC

NDP(Neighbor Discovery Protocol)​ 取代(基于 ICMPv6)

checksum

IPv4 头有校验和

IPv6 头 去掉校验和(减少路由器负担)


四、IPv6 带来的 5 个"世界观级变化"(比地址更长更重要)

1)"公网地址充足"→ 端到端可恢复

IPv4 时代几乎所有终端躲在 NAT 后面,导致:

  • 不能直接连进来(P2P 痛苦、主动访问设备痛苦)

  • 需要 STUN/TURN/UPnP/各种穿透魔法

IPv6 的设计目标是:每台设备都可以有一个全球可达地址(当然仍然要靠防火墙策略控制访问,不是"裸奔")。

2)没有广播 = 更少"吵闹风暴"

IPv4 的广播(ARP 广播、某些服务广播)在大二层里容易出事。

IPv6 用:

  • 组播(发到 ff02::1 之类)

  • NDP(ICMPv6 type 133/134/135/136)

    来做"同一链路找邻居"这件事,结构更清晰。

3)/64 成为最小"可路由单元"

你在 IPv4 会纠结:这 VLAN 我给个 /28 还是 /26?

IPv6 的态度是:给一个 /64,后面再大也是 /60 /56 /48 往上借。

这让路由聚合、自动配置、操作系统期待都更简单一致。

4)地址分配更像"领区号 + 门牌"

典型 IPv6 公网单播长这样(示意):

2001:0db8 : abcd : 1234 : 5678 : 90ab : cdef : 1234
└───48 bit(或/32 / /48)────┘ └──────接口ID(64bit)──────┘
         ↑ 给你的组织/站点前缀       ↑ 你自己玩

也就是:

  • 前面是 ISP/公司前缀(像电话区号)

  • 后面是子网 + 接口标识(像门牌)

5)安全与审计的另一面

好处:无需 NAT 后,日志更干净:你能真正看到"哪个源 IP 发起的",而不是一堆 192.168.x.x 挤在一个公网出口后。

代价:如果防火墙策略松懈,"全球可达"确实意味着更大的攻击面——所以 IPv6 环境更强调:

  • 默认 deny​ 的边界策略

  • 严格控制哪些主机允许被外界主动连进来


五、几个最常见的误解(你以后看到能立刻拆穿)

  1. "IPv6 比 IPv4 更快"

    不一定。优势主要在地址空间与架构;实际性能更多取决于路径 MTU、网络设备转发能力、隧道/转换层。

  2. "有了 IPv6 就不用防火墙了"

    恰恰相反:因为 NAT 的"隐身副作用"没了,你更需要显式策略(ACL / 安全组 / stateful firewall)。

  3. "IPv6 地址太难记,所以不实用"

    本来就不指望人记;机器配、DNS 管、人看前缀即可。2001:db8::/32这种前缀比点分十进制并不更反人类。

  4. "IPv6 就是 IPv4 加长版"

    不是。报文头、邻居机制、扩展头、没有广播、地址语义都改过;它是一次"趁不够用机会把历史包袱翻修"的重写。


六、一句话总结

IPv4 是 32-bit 的点分十进制地址体系,靠 NAT 续命;IPv6 把它扩成 128-bit 的冒号十六进制地址体系,并用 /前缀、NDP、无状态配置把网络重新拉回"每块设备都可拥有公网可达身份"的模型,代价是把 NAT 的"天然隐蔽"拿走,要求你用策略替回来。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐