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

har*_*llb 3 bind nsupdate

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

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

目前,我能想到的最佳选择是编写 nsupdate 脚本来删除所有 3 个记录,并在添加更新的 SPF 记录之前添加 2 个未更改的记录。

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

HBr*_*ijn 5

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

\n\n

man nsupdate

\n\n
\n

update delete domain-name [ ttl ] [ class ] [ type [ data...] ]
\n 删除任何名为域名的资源记录。如果提供了类型和数据,则仅删除匹配的资源记录。如果未提供课程,则假定为互联网课程。ttl 被忽略,仅允许用于兼容性。

\n\n

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

\n
\n\n

IE

\n\n
# nsupdate\n> update delete example.com 86400 TXT\n> send\n
Run Code Online (Sandbox Code Playgroud)\n\n

应该删除所有TXT 记录,但当您更具体时:

\n\n
# nsupdate\n> update delete example.com 86400 TXT \xe2\x80\x9cv=spf1 a mx ip4:10.0.0.131\xe2\x80\x9d\n> update add example.com 86400 TXT \xe2\x80\x9cv=spf1 a mx ip4:192.168.0.17\xe2\x80\x9d\n> send\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n