![如何使用 nsupdate 更新多个 TXT 记录之一](https://linux22.com/image/741043/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20nsupdate%20%E6%9B%B4%E6%96%B0%E5%A4%9A%E4%B8%AA%20TXT%20%E8%AE%B0%E5%BD%95%E4%B9%8B%E4%B8%80.png)
我的 DNS 中有一个域条目,其中包含 3 个不同的 TXT 记录(1 个 SPF、1 个 Keybase 证明和一个 DMARC 条目)。
我即将将我的邮件服务器移动到新主机,因此需要更新 SPF 记录,但我正在努力研究如何使用 nsupdate 删除和替换 SPF 记录。
目前,我能想到的最佳选择是编写脚本 nsupdate 来删除所有 3 个,然后添加 2 个不变的,然后再添加更新的 SPF 记录。
有没有办法只删除 1 条记录?
答案1
当您不仅指定记录名称和类型,而且还指定现有值时,名称服务器应该仅删除具有该值的记录,而保持相同类型的其他记录不变。
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 地址。