128 位、8 组十六进制
IPv6 地址长 128 位,是 IPv4 的 4 倍,写作 8 组、每组 4 个十六进制数字,组间用冒号分隔,例如 2001:0db8:0000:0000:0000:0000:0000:0001。每组 16 位(4 个十六进制位),取值 0000 到 ffff。没有子网掩码的写法,前缀长度直接跟在斜杠后,例如 /64。
前后各 64 位的分工
实践中的惯例是把前 64 位当网络部分、后 64 位当接口标识:路由器收到 RA 里的 /64 前缀,主机据此生成接口标识并拼出完整地址。这等于把 IPv4 里「主机位」的概念延长到 64 位,也让 SLAAC 无状态自动配置成为可能。少数场景会偏离这个惯例,例如点对点链路用 /127、环回用 /128。
基本信息
| 长度 | 128 位 = 8 组 × 16 位 |
|---|---|
| 每组范围 | 0000 – ffff(4 个十六进制位) |
| 前缀写法 | 2001:db8::/32,用 /n 表示网络位数 |
| 惯例分界 | 前 64 位网络部分,后 64 位接口标识 |
| 规范依据 | RFC 4291(地址架构)、RFC 8200(协议) |
典型使用场景
- 看清运营商或云厂商分配的 IPv6 前缀属于哪个层级(/32、/48、/56、/64)
- 规划站点与子网:一个 /48 能切 65536 个 /64 链路
- 排查双栈故障时确认地址类型(全球单播、链路本地、ULA)
- 配置防火墙时按前缀而不是按 IP 逐条放行
- 读日志与抓包时正确解析带 :: 缩写的地址
展开形式与分组
展开形式与分组
2001:0db8:0000:0000:0000:0000:0000:0001
= 8 组 × 16 位 = 128 位
前 64 位:2001:0db8:0000:0000 ← 网络部分
后 64 位:0000:0000:0000:0001 ← 接口标识
# 常见写法:2001:db8::1/64查看本机地址类型
查看本机地址类型
ip -6 addr show
# inet6 2001:db8:1:2::10/64 scope global ← 全球单播
# inet6 fe80::1c2b:3d4e/64 scope link ← 链路本地
ip -6 route show default # 默认路由通常指向 RA 源(链路本地地址)常见前缀长度
| 前缀 | 含义 | 典型对象 |
|---|---|---|
| /128 | 单地址 | 环回 ::1、主机路由 |
| /127 | 点对点链路 | RFC 6164 路由器互联 |
| /64 | 标准子网 | LAN、SLAAC 的最小单元 |
| /56 | 小型站点 | 家宽、小分支 |
| /48 | 站点 | 企业园区或分支站点 |
| /32 | 分配起点 | 运营商从 RIR 获得的块 |
IPv6 地址的位数多但规则简单:前 64 位定链路、后 64 位定接口。读一个地址时先看前 3 组判断它属于哪个分配层级,再看后 4 组判断是哪台设备,比在 IPv4 里推断要直观。
别把一组当成 8 位:一组是 16 位,代表 4 个十六进制数字。按 IPv4 的习惯把 2001:db8 当成「两个字节」会在计算掩码与前缀时出现量级错误。