什么是 IPv6 地址,与 ipv4 地址有什么区别?
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 可以省略(0db8→ db8,0000→ 0):
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 |
|
常见写法 |
|
|
|
地址空间 |
≈42 亿(早就不够) |
2^128(大得离谱) |
|
地址类型观 |
A/B/C、私网/公网、NAT |
单播 / 组播 / 任播;私网概念弱化(有"唯一本地"替代) |
|
广播 |
有(ARP + broadcast) |
没有广播(用组播/邻居发现代替) |
|
子网掩码写法 |
|
CIDR: |
|
头部复杂度 |
选项字段多、长度不定,路由器处理重 |
固定基本头 + 扩展头链,路由器处理更"流水线友好" |
|
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 的边界策略
-
严格控制哪些主机允许被外界主动连进来
五、几个最常见的误解(你以后看到能立刻拆穿)
-
"IPv6 比 IPv4 更快"
不一定。优势主要在地址空间与架构;实际性能更多取决于路径 MTU、网络设备转发能力、隧道/转换层。
-
"有了 IPv6 就不用防火墙了"
恰恰相反:因为 NAT 的"隐身副作用"没了,你更需要显式策略(ACL / 安全组 / stateful firewall)。
-
"IPv6 地址太难记,所以不实用"
本来就不指望人记;机器配、DNS 管、人看前缀即可。
2001:db8::/32这种前缀比点分十进制并不更反人类。 -
"IPv6 就是 IPv4 加长版"
不是。报文头、邻居机制、扩展头、没有广播、地址语义都改过;它是一次"趁不够用机会把历史包袱翻修"的重写。
六、一句话总结
IPv4 是 32-bit 的点分十进制地址体系,靠 NAT 续命;IPv6 把它扩成 128-bit 的冒号十六进制地址体系,并用 /前缀、NDP、无状态配置把网络重新拉回"每块设备都可拥有公网可达身份"的模型,代价是把 NAT 的"天然隐蔽"拿走,要求你用策略替回来。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)