如何使用 nsupdate 更新多个 TXT 记录之一

如何使用 nsupdate 更新多个 TXT 记录之一

我的 DNS 中有一个域条目,其中包含 3 个不同的 TXT 记录(1 个 SPF、1 个 Keybase 证明和一个 DMARC 条目)。

我即将将我的邮件服务器移动到新主机,因此需要更新 SPF 记录,但我正在努力研究如何使用 nsupdate 删除和替换 SPF 记录。

目前,我能想到的最佳选择是编写脚本 nsupdate 来删除所有 3 个,然后添加 2 个不变的,然后再添加更新的 SPF 记录。

有没有办法只删除 1 条记录?

答案1

当您不仅指定记录名称和类型,而且还指定现有值时,名称服务器应该仅删除具有该值的记录,而保持相同类型的其他记录不变。

man nsupdate

update delete domain-name [ ttl ] [ class ] [ type [ data...] ]
删除任何名为 domain-name 的资源记录。如果提供了类型和数据,则只会删除匹配的资源记录。如果未提供类,则假定为 Internet 类。ttl 将被忽略,并且仅允许用于兼容性。

update add domain-name ttl [ class ] type data...
添加具有指定 ttl、class 和 data 的新资源记录。

IE

# nsupdate
> update delete example.com 86400 TXT
> send

应该删除全部TXT 记录,但是当您更具体时:

# nsupdate
> update delete example.com 86400 TXT “v=spf1 a mx ip4:10.0.0.131”
> update add example.com 86400 TXT “v=spf1 a mx ip4:192.168.0.17”
> send

然后 nsupdate 应该删除仅有的SPF TXT 记录,然后您可以将其替换为具有不同 IPv4 地址的记录。

或者,您可以在计划迁移之前的某个时间添加新的 IP 地址,使用两个允许的上行地址运行一段时间,并且仅在迁移完成后删除旧的 IP 地址。

相关内容