DNS TXT记录拆分工具

把过长的TXT值切成DNS要求的255字节字符串,直接可以贴进区域文件。

DNS TXT记录拆分工具完全在浏览器中运行,密钥和验证令牌只在你的设备上切分,不会上传。

由 Udit Agarwal 开发和维护

生成DKIM记录

关于 DNS TXT记录拆分

TXT记录并不是一条长字符串。RFC 1035把它存成一串字符字符串,每条最多255字节,解析器会在中间不加任何东西地把它们拼回去。这正是2048位DKIM密钥必须以多个带引号的片段写进区域文件的原因,也是为什么切错位置——或者用空格把片段连起来——会以很难排查的方式破坏邮件签名。这个工具按字节边界切分,绝不会切在字符中间,并可输出为BIND单行、括号形式或JSON数组。

功能特性

  • 按255字节边界切分,计算的是字节而不是字符
  • 绝不切断多字节字符或代理对
  • 支持BIND单行、括号形式、仅带引号字符串或JSON数组
  • 逐片显示字节数,可以看出哪些字符串已经装满
  • 对多余空白、已有引号以及超过512字节的记录给出提示
  • 把区域文件或dig输出中的字符串重新拼回
  • 内置2048位DKIM、长SPF和验证令牌示例

如何使用 DNS TXT记录拆分

  1. 粘贴完整的TXT值——引号会自动添加
  2. 需要完整区域行时填写记录名和TTL
  3. 选择DNS服务商需要的输出格式
  4. 复制记录,或用拼接标签页还原已拆分的值

示例

输入

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A… (392 bytes)

输出

default._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIja…" "…QIDAQAB"

两条带引号的字符串,解析器会在中间不加任何东西地把它们连起来。

常见错误与故障排除

  • DNS服务商以太长为由拒绝该记录。 — 它把255字节限制套在了单条字符串上。请粘贴拆分后的版本,每一片单独加引号。
  • 拆分之后DKIM校验失败。 — 几乎总是片段之间多了空格。解析器拼接时不加任何字符,多出来的空格会成为密钥的一部分。
  • 记录值本身已经带了引号。 — 请粘贴原始值。引号是在格式化时添加的,已带引号的值会被重复包裹。
  • 片段不足255个字符。 — 限制是255字节而不是字符。任何非ASCII字符要占两到四个字节,所以字符更少也可能已经装满。

常见问题

TXT记录为什么被限制在255个字符?
记录中每条字符串前面都有一个长度字节,因此单条被限制在255字节。整条记录可以包含很多条,所以真正的上限是DNS消息大小。
解析器怎样把拆开的TXT字符串拼回去?
按顺序拼接,中间不加任何分隔符。DKIM、SPF和验证令牌都依赖这一行为,所以在哪里切分并不重要。
DKIM密钥应该在哪里切?
任何位置都行,只要每一片不超过255字节。对校验方来说,拼接之后密钥就是一整条Base64字符串。
整条TXT记录能有多大?
实际中可以到几千字节,但超过约512字节的应答需要EDNS或改用TCP重试,部分解析器处理得并不好。
SPF记录也要这样拆分吗?
只有当单条字符串超过255字节时才需要,include较多时会出现。另外SPF还有十次DNS查询的独立限制,拆分帮不上忙。

相关工具

更多网络工具

查看全部网络工具 (24) · 全部工具