下面把 RA 里的三个标志位 M / O / A 的“所有有意义组合”系统性列出来,
按「是否自动生成地址」「是否使用 DHCPv6」「实际网络中是否常见」来解释。
一、先明确每个标志“单独”的含义
M = 1(Managed)
- 含义:地址由 DHCPv6 有状态方式分配
- 结果:主机不会用 SLAAC 生成全局地址
O = 1(Other)
- 含义:通过 DHCPv6 获取“其他配置”
- 典型用途:DNS、域名搜索列表、NTP 等
- 注意:O=1 本身不代表分配地址
A = 1(Autonomous,PIO 中)
- 含义:允许主机用该前缀进行 SLAAC
- 前提:前缀通常必须是 /64
二、所有有意义的组合(8 种)
组合 1:
M=0, O=0, A=0
含义:
- 不允许 SLAAC
- 不使用 DHCPv6
- 路由器只告诉“这个前缀在链路上”
结果:
- 主机不会自动生成全球地址
- 可能只有 Link-Local 地址
实际使用:
- 几乎不用
- 多用于特殊实验或调试
组合 2:
M=0, O=0, A=1
含义:
- 允许 SLAAC
- 不使用 DHCPv6
结果:
- 地址:SLAAC 自动生成
- DNS:只能来自 RDNSS(如果 RA 提供)
实际使用:
- 非常常见
- 家用路由器、纯 IPv6 SLAAC 网络
组合 3:
M=0, O=1, A=0
含义:
- 不允许 SLAAC
- 使用 DHCPv6 无状态
- 但没有 SLAAC 地址来源
结果:
- DHCPv6 无状态只给“其他配置”,不给地址
- 主机依然没有全球 IPv6 地址
实际使用:
- 基本没意义
- 常见于错误配置
组合 4:
M=0, O=1, A=1
含义:
- SLAAC 生成地址
- DHCPv6 无状态获取 DNS 等
结果:
- 地址:SLAAC
- DNS/域名:DHCPv6
实际使用:
- 非常常见
- 企业网络最推荐方案之一
组合 5:
M=1, O=0, A=0
含义:
- DHCPv6 有状态分配地址
- 不允许 SLAAC
结果:
- 地址:DHCPv6
- DNS:DHCPv6(通常)
实际使用:
- 常见于强管控企业网络
- 类似 IPv4 DHCP 管理模型
组合 6:
M=1, O=0, A=1
含义:
- DHCPv6 有状态
- 同时允许 SLAAC
结果(取决于操作系统实现):
主机可能同时获得:
- DHCPv6 地址
- SLAAC 地址(额外的)
实际使用:
- 不推荐
- 易导致多地址、路由与审计混乱
组合 7:
M=1, O=1, A=0
含义:
- DHCPv6 有状态分配地址
- DHCPv6 提供其他配置
- 不允许 SLAAC
结果:
- 地址:DHCPv6
- DNS:DHCPv6
实际使用:
- 常见
- 比组合 5 更明确表达“全部走 DHCPv6”
组合 8:
M=1, O=1, A=1
含义:
- DHCPv6 有状态
- 允许 SLAAC
- 同时 DHCPv6 提供其他配置
结果:
主机可能同时拥有:
- SLAAC 地址
- DHCPv6 地址
- DNS:DHCPv6
实际使用:
- 理论上可用
- 实际生产中强烈不推荐
三、快速决策表(记住这 4 个就够)
最常见、最推荐的只有下面 4 种:
1) M=0, O=0, A=1
→ 纯 SLAAC(DNS 用 RDNSS)
2) M=0, O=1, A=1
→ SLAAC + DHCPv6 无状态(企业常用)
3) M=1, O=1, A=0
→ DHCPv6 有状态(强管控)
4) M=1, O=0, A=0
→ DHCPv6 有状态(简化表达)
四、一句话记忆法
- 看 A:有没有 SLAAC 地址
- 看 M:地址是不是 DHCPv6 分的
- 看 O:DNS 等是不是 DHCPv6 分的