首页/网络/协议速查/NAPTR 记录(命名授权指针)
DNS 与域名解析60 条

NAPTR 记录(命名授权指针)

通过正则/替换规则把一个域名转换为另一个域名或 URI:ENUM 电话映射(E.164 号码 → SIP)的经典用法。

协议速查网络更新于 2026-10-13

NAPTR 是什么

NAPTR(Naming Authority Pointer,TYPE 35)用 order、preference、flags、service、regexp、replacement 六个字段,把查询的名字按正则规则转换成另一个域名或 URI 形式。它是 DDDS(动态委托发现系统)的通用机制,最经典的用法是 ENUM:把电话号码映射成 SIP 地址(RFC 3403)。

基本信息

类型NAPTR(TYPE 35)
字段order、preference、flags、service、regexp、replacement
规范RFC 3403(DDDS)
经典应用ENUM(RFC 6116)、SIP 号码路由
查询命令dig +short <名字> NAPTR
与 SRV 关系常串联使用:先 NAPTR 定位服务,再 SRV 找端点

典型使用场景

  • ENUM 排障:号码到 SIP 地址的映射不生效
  • 语音与 SIP 网关对接:确认 E.164 号码在 e164.arpa 下的记录
  • 理解 DDDS 规则:多个候选如何按 order 与 preference 排序
  • 协议研究:厘清 NAPTR 与 SRV 的分工差异
  • 电信系统迁移:核对号码路由记录是否完整搬移
  • 自动化巡检:为关键号码配置解析可用性监控

ENUM 查询示例

ENUM 查询示例
# 查询 E.164 号码 +8612345678904 对应的 ENUM 记录(号码需倒序)
dig +short 4.9.0.8.7.6.5.4.3.2.1.6.8.e164.arpa NAPTR
# 100 10 "u" "E2U+sip" "!^.*$!sip:+8612345678904@example.com!" .
# order=100 preference=10 flags=u(结果是一个 URI) service=E2U+sip

NAPTR 字段读法

字段含义要点
order处理顺序,小者优先同一 order 内再看 preference
preference同组内优先级,小者优先数值越小越先尝试
flagsu 表示结果是 URI、s 表示下一步查 SRV决定如何解释输出
service服务类型,如 E2U+sip用于筛选可用服务
regexp改写规则,用感叹号分隔与 replacement 互斥
解析必须按 order 分组、组内按 preference 排序并依次尝试;跳过 order 直接比 preference 会选出错误目标。
regexp 与 replacement 只能二选一,同时给出属于非法记录,会直接被验证方判为格式错误。
regexp 以感叹号作为分隔符,替换串里的特殊字符要按规则处理,写规则时最容易出错。
日常运维很少直接碰到 NAPTR;多数服务发现场景 SRV 已经够用。
NAPTR 的价值在于把任意名字空间按规则映射到另一套命名空间,这正是 ENUM 能承载电话路由的原因。
ENUM 名字由号码倒序后拼接 e164.arpa 组成,例如 +8612345678904 对应 4.9.0.8.7.6.5.4.3.2.1.6.8.e164.arpa,顺序写错就查不到。
flags 为 s 时解析链路会继续走向 SRV,再由 SRV 给出主机与端口;只解析 NAPTR 并不能得到可直接连接的地址。

易错点

  • 按 preference 全局排序而不先按 order 分组,会选错路由目标
  • regexp 与 replacement 同时给出属于非法记录:写记录时二者只能取其一
  • 误以为 NAPTR 会直接给出 IP:结果通常是域名或 URI,需要继续解析(NAPTR 到 SRV 再到 A/AAAA)
  • 号码的 ENUM 名字顺序写错(E.164 需要倒序后加 e164.arpa),查询必然返回空
  • service 字段缺失或写错(把 E2U+sip 写成 sip),调用方无法筛选出可用服务

数据来源与参考

  • RFC 3403 NAPTR
  • RFC 6116(ENUM 登记)

相关工具

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