Несколько записей TXT с PowerDNS API

Я пытаюсь добавить записи SPF, DMARC и DKIM для моего домена через HTTP-API PowerDNS. Вот пример кода, который я нашел:

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 .

Это работает, но когда я пытаюсь вставить другую текстовую запись, меняя только содержимое, PowerDNS удаляет старую запись и вставляет новую. Это вызвано аргументом "changetype": "REPLACE" в curl, но в соответствии с документами я могу использовать два типа change: REPLACE (с этим эффектом) и DELETE (который просто удалит запись).

у кого-нибудь есть решение?

1 ответ

Решение

Помните, что в DNS мы говорим о RRset, который является набором записей ресурсов, что означает, возможно, более одного результата для данного типа ресурса.

Как видно из https://doc.powerdns.com/md/httpapi/api_spec/, многоточие означает, что вы можете поместить несколько элементов в элемент "records", поэтому вы должны поместить все свои TXT записи сразу есть.

Так что-то вроде (отформатировано для наглядности)

  "records":
    [
      {
        "content": "Example text 1",
        "disabled": false,
      },
      {
        "content": "Example text 2",
        "disabled": false,
      },
      {
        "content": "Example text 3",
        "disabled": false,
      },
    ],

и т.п.

Текст документации после него ясно говорит:

записи: список новых записей (замена старых).

Другие вопросы по тегам