Ubuntu 上无法解析长 SPF(TXT)记录

Ubuntu 上无法解析长 SPF(TXT)记录

当尝试构建以下形式的长 SPF 记录时:

example.com.               86400  IN  TXT  "v=spf1 ip4:1.2.3.0/24 include:example.net include:_my_whitelist.example.com -all"
_my_whitelist.example.com. 86400  IN  TXT  "v=spf1 ip4:... " " ip4:..."

...这样白名单记录长度超过 255 个字节。我理解这是构建更长 DNS 响应的有效方法(http://www.openspf.org/RFC_4408#multiple-strings表示它们应该连接在一起并作为一个整体处理),有些解析器对此很满意。然而,有些解析器无法解析 - 例如 Ubuntu 18.04 的解析器声称不存在 TXT 记录。

当使用以下host命令时会出现这种情况:

$ host -t txt _my_whitelist.example.com
_my_whitelist.example.com has no TXT record
  1. 这是 Ubuntu/ 中的一个错误吗systemd
  2. 有没有更好的方法来构建长 TXT/SPF 记录?

答案1

似乎已经出现了两个可能的问题:

  1. DNS 记录略有损坏(太长?)
  2. Ubuntu 的 systemd DNS 解析器不太好

我们创建的 DNS 记录在 255 字节边界处被分割。将其降低到 248 字节似乎已解决问题。

Ubuntu 解析器有预期行为默认情况下,它不提供本地 TCP 解析服务,因此host回退到 TCP 进行查找会失败——我认为!https://github.com/systemd/systemd/issues/6520

相关内容