首页/网络/IP 与子网速查/RA 标志速查:A、M、O 与默认路由
IPv6 与下一代网络42 条

RA 标志速查:A、M、O 与默认路由

PIO 中 A=1 允许用该前缀 SLAAC;RA 头 M=1 表示“地址去问 DHCPv6”;O=1 表示“其他配置去问 DHCPv6”。默认路由来自 RA 源地址,与 M/O 无关;DNS 可由 RDNSS 或 DHCPv6 提供。

IP 与子网速查网络更新于 2026-10-13

三个标志决定地址来源

路由器通告 RA 决定了终端从哪里拿地址、从哪里拿其他配置。前缀信息选项里的 A 位控制这个前缀能否用于无状态自动配置;RA 头里的 M 位表示“地址请去问 DHCPv6”;O 位表示“其他配置比如 DNS 请去问 DHCPv6”。默认路由则由 RA 的源地址直接给出,与 M、O 无关,这是最容易记错的一点。

基本信息

A 位位于前缀信息选项中,A=1 允许终端用该前缀做 SLAAC
M 位RA 头中,M=1 表示地址由 DHCPv6 分配
O 位RA 头中,O=1 表示其他配置由 DHCPv6 提供
默认路由来自 RA 的源地址,任何标志组合都不影响
DNS 来源可由 RA 中的 RDNSS 选项或 DHCPv6 提供
发送周期路由器周期发送,终端也可主动发 RS 立即索要

典型标志组合

组合地址来源其他配置
A=1, M=0, O=0SLAAC 自动生成仅依赖 RA 与 RDNSS
A=1, M=0, O=1SLAAC 自动生成DHCPv6 提供 DNS 等
A=0, M=1, O=1DHCPv6 分配DHCPv6 分配,企业最常见
A=0, M=0, O=0无自动配置,需手工手工配置

查看与验证

查看与验证
ip -6 addr show dev eth0            # 有地址说明 SLAAC 或 DHCPv6 生效
ip -6 route show default            # 默认路由的 next hop 来自 RA 源地址
sysctl net.ipv6.conf.eth0.accept_ra  # 1 表示接受 RA,0 则完全不听
rdisc6 eth0                         # 主动发送 RS 并打印 RA 详情
# 抓包只看 RA:tcpdump -ni eth0 'icmp6 and ip6[40] == 134'

典型使用场景

  • 企业内网想统一由 DHCPv6 管地址:把 RA 配成 A=0、M=1,终端就不再靠 SLAAC 自己生成后缀
  • 只想用 RA 发地址、DNS 交给 DHCPv6:设置 A=1、M=0、O=1,混合模式在存量网络里常见
  • 排查“有地址上不了网”:先看默认路由是否存在,RA 缺失时地址可能有但路由为空
  • 排查 DNS 不生效:确认 O 位与实际 DNS 来源是否匹配,O=0 却指望 DHCPv6 下发 DNS 必然失败
  • 核对终端安全策略:禁用 RA 接收的服务器必须静态配置路由与 DNS,否则启用 IPv6 后直接不可达
M=1 并不表示禁用了 SLAAC 地址:若前缀选项里 A 仍为 1,终端可能同时持有 SLAAC 地址与 DHCPv6 地址,出向连接用哪个取决于地址选择规则。

易错点

  • 以为 DHCPv6 能提供默认网关:网关只能来自 RA,DHCPv6 协议本身不下发默认路由,这是最常见的概念错误
  • 把 A 位与 M 位理解成互斥开关:实际是两层独立控制,配成 A=1、M=1 时终端会同时拿到两类地址
  • 关掉 RA 却保留 DHCPv6:终端能拿到地址与 DNS,但没有默认路由,表现为内网通、外网不通
  • 只在一台路由器上改标志,另一台仍发旧 RA:多路由器环境下终端取先收到的配置,表现随机且难复现

数据来源与参考

  • RFC 4861(邻居发现)
  • RFC 4862(SLAAC)
  • RFC 8415(DHCPv6)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌