PowerDNS 的多个 TXT 记录 API
Multiple TXT records with PowerDNS API
我正在尝试通过 PowerDNS HTTP API 为我的域添加 SPF、DMARC 和 DKIM 记录。这是我找到的代码示例:
curl -X PATCH --data '{"rrsets": [ {"name": "example.org.", "type": "TXT", "ttl": 86400, "changetype": "REPLACE", "records": [ {"content": "Example text", "disabled": false } ] } ] }' -H 'X-API-Key: changeme' http://127.0.0.1:8081/api/v1/servers/localhost/zones/example.org. | jq .
这行得通,但是当我尝试插入另一条 txt 记录时,仅更改内容,PowerDNS 删除旧记录并插入新记录。这是由 curl 中的 "changetype": "REPLACE" 参数引起的,但根据文档,我可以使用两个更改类型:REPLACE(具有此效果)和 DELETE(这将简单地删除记录)。
有人有解决办法吗?
请记住,在 DNS 中我们说的 RRset 是资源记录 set,这意味着给定资源类型可能有多个结果。
正如您在 https://doc.powerdns.com/md/httpapi/api_spec/#url-apiv1serversserver95idzones 中看到的那样,省略号表示您可以在 "records" 元素中放置多个项目,因此您应该将所有 TXT 记录一次放在那里。
类似(为清楚起见格式化)
"records":
[
{
"content": "Example text 1",
"disabled": false,
},
{
"content": "Example text 2",
"disabled": false,
},
{
"content": "Example text 3",
"disabled": false,
},
],
等等
后面的文档文字清楚地说:
records: List of new records (replacing the old ones).
我正在尝试通过 PowerDNS HTTP API 为我的域添加 SPF、DMARC 和 DKIM 记录。这是我找到的代码示例:
curl -X PATCH --data '{"rrsets": [ {"name": "example.org.", "type": "TXT", "ttl": 86400, "changetype": "REPLACE", "records": [ {"content": "Example text", "disabled": false } ] } ] }' -H 'X-API-Key: changeme' http://127.0.0.1:8081/api/v1/servers/localhost/zones/example.org. | jq .
这行得通,但是当我尝试插入另一条 txt 记录时,仅更改内容,PowerDNS 删除旧记录并插入新记录。这是由 curl 中的 "changetype": "REPLACE" 参数引起的,但根据文档,我可以使用两个更改类型:REPLACE(具有此效果)和 DELETE(这将简单地删除记录)。
有人有解决办法吗?
请记住,在 DNS 中我们说的 RRset 是资源记录 set,这意味着给定资源类型可能有多个结果。
正如您在 https://doc.powerdns.com/md/httpapi/api_spec/#url-apiv1serversserver95idzones 中看到的那样,省略号表示您可以在 "records" 元素中放置多个项目,因此您应该将所有 TXT 记录一次放在那里。
类似(为清楚起见格式化)
"records":
[
{
"content": "Example text 1",
"disabled": false,
},
{
"content": "Example text 2",
"disabled": false,
},
{
"content": "Example text 3",
"disabled": false,
},
],
等等
后面的文档文字清楚地说:
records: List of new records (replacing the old ones).