为什么 LAN 用 /64
IPv6 的无状态自动配置(SLAAC,RFC 4862)要求接口标识固定为 64 位,因此以太网链路的惯例前缀就是 /64:前 64 位来自 RA 通告的前缀,后 64 位由主机自行生成。路由器的 RA 里如果前缀不是 /64,主机的自动配置会失效或被忽略。
不同链路用不同前缀
/64 只适用于有多个主机、需要自动配置的 LAN。路由器之间的点对点链路推荐用 /127(RFC 6164):只有两个地址、不需要邻居发现之外的机制,也避免链路上出现可被扫描的地址空间。环回接口用 /128 表示单个地址。规划时把 /64 当作「最小可管理单元」,而不是所有接口的默认值。
64 位分界线的意义
把 64 位当成固定的边界带来两个好处:一是任何站点前缀到 /64 的距离就是可用子网位数,规划时数子网而不是数地址;二是接口标识与网络前缀彻底解耦,换运营商前缀时主机只需替换前 64 位,后 64 位标识保持不变。这也让 IPv6 的地址管理比 IPv4 更接近「换前缀不换主机」。
基本信息
| LAN | /64(SLAAC 的前提) |
|---|---|
| 点对点链路 | /127(RFC 6164) |
| 环回 | /128 |
| 站点块 | /48 或 /56,再切 /64 |
| 示例 | 2001:db8:1:2::/64 |
典型使用场景
- 给办公 VLAN 配前缀:每个 VLAN 一条 /64,终端自动配置地址
- 点对点互联:用 /127 节省前缀并减少可扫描面
- 向运营商申请地址时确认委派的是 /56 还是 /64
- 规划 IPv6 网络时确定哪些链路需要 /64、哪些可用更小前缀
- 排查终端拿不到 IPv6 地址时确认 RA 前缀是否为 /64
常见前缀长度
常见前缀长度
/128 单地址(环回、主机路由)
/127 路由器互联(RFC 6164)
/64 标准子网(SLAAC 的最小单元)
/56 家宽或小型站点委派
/48 企业站点
/32 运营商分配起点查看链路上的前缀与自动配置结果
查看链路上的前缀与自动配置结果
ip -6 addr show dev eth0
# inet6 2001:db8:1:2:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic
# ^^^^ 前缀长度应为 64
ip -6 route show default # 默认路由来自 RA 通告
sysctl net.ipv6.conf.eth0.accept_ra # =1 才接受 RA 自动配置链路类型与前缀
| 链路类型 | 推荐前缀 | 原因 |
|---|---|---|
| 办公 / 服务器 LAN | /64 | SLAAC 要求,主机数量不受限 |
| 点对点互联 | /127 | 只有两端,避免浪费与扫描 |
| 环回 | /128 | 单地址语义 |
| 容器网络 | /64 每节点 | 便于自动配置与可读性 |
| 家宽内网 | 运营商 /56 内切 /64 | 多条链路各一段 |
/64 提供的地址数量是 2^64 个(约 1.8×10^19),不可能枚举或扫描完。因此 IPv6 的安全策略不能依赖「地址猜不到」,而要按前缀在防火墙层面明确放行哪些服务。
给 LAN 配 /120、/80 这类非 64 前缀会让 SLAAC 直接失效,终端拿不到全局地址,现象是「路由器有 IPv6、终端没有」。需要手工分配时改用 DHCPv6,或把前缀改成 /64。