VK Cloud logo
Обновлена8 августа 2023 г. в 13:15

Публичный DNS

Аутентификация и авторизация

Перед выполнением запросов получите токен доступа X-Subject-Token и запишите его в переменную OS_AUTH_TOKEN.

Параметры запросов и ответов

Для всех методов API используются параметры:

  • tenant — номер проекта, который можно найти в личном кабинете VK Cloud.
  • dns-uuid (uuid) — уникальный идентификатор DNS-записи;
  • record-type — тип записи: A, AAAA, CNAME, и т.д;
  • a-uuid — уникальный идентификатор А записи для DNS.

Создать зону DNS

Запрос

POST /v2/dns/

Пример запроса:

curl -X POST "https://mcs.mail.ru/public-dns/v2/dns/" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"soa_admin_email": "admin@example.com", "soa_expire": 3600000, "soa_refresh": 7200, "soa_primary_dns": "ns1.mcs.mail.ru.", "soa_ttl": 3600, "zone": "example.com." }'

Ответ

Код ответа:

  • 201 — DNS-запись создана успешно.

Тело ответа:

1{
2    "uuid": "a5ef043e-b517-4c45-a727-e8298f5d47d6",
3    "tenant": "7642b2c2-4162-4983-a7e7-b26de7cbdaf9",
4    "soa_primary_dns": "ns1.mcs.mail.ru.",
5    "soa_admin_email": "admin@example.com",
6    "soa_refresh": 7200,
7    "soa_expire": 3600000,
8    "soa_ttl": 3600,
9    "zone": "example.com.",
10    "status": "pending"
11}

Получить информацию о записи DNS

Запрос

GET /v2/dns/<dns-uuid>

Пример запроса:

curl -X GET "https://mcs.mail.ru/public-dns/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json"

Ответ

Код ответа:

  • 200 — успешный ответ.
  • 404 — DNS-запись не найдена.
  • 409 — DNS-запись уже существует.

Тело ответа:

1{
2    "uuid": "a5ef043e-b517-4c45-a727-e8298f5d47d6",
3    "tenant": "7642b2c2-4162-4983-a7e7-b26de7cbdaf9",
4    "soa_primary_dns": "ns1.mcs.mail.ru.",
5    "soa_admin_email": "admin@example.com",
6    "soa_serial": 2020080304,
7    "soa_refresh": 7200,
8    "soa_retry": 3600,
9    "soa_expire": 1209600,
10    "soa_ttl": 3600,
11    "zone": "example.com.",
12    "status": "pending"
13}

Получить список зон DNS

Запрос

GET /v2/dns/

Пример запроса:

curl -X GET "https://mcs.mail.ru/public-dns/v2/dns/" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json"

Ответ

Код ответа:

  • 200 — успешный ответ.

Тело ответа:

1[
2    {
3        "uuid": "a5ef043e-b517-4c45-a727-e8298f5d47d6",
4        "tenant": "7642b2c2-4162-4983-a7e7-b26de7cbdaf9",
5        "soa_primary_dns": "ns1.mcs.mail.ru.",
6        "soa_admin_email": "admin@example.com",
7        "soa_serial": 2020080304,
8        "soa_refresh": 7200,
9        "soa_retry": 3600,
10        "soa_expire": 1209600,
11        "soa_ttl": 3600,
12        "zone": "example.com.",
13        "status": "pending"
14    }
15]

Обновить информацию о зоне DNS

Запрос

PUT /v2/dns/<dns-uuid>

Пример запроса:

curl -X PUT "https://mcs.mail.ru/public-dns/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"soa_admin_email": "admin1@example.com", "soa_ttl": 7200, "zone": "example1.com." }'

Ответ

Код ответа:

  • 200 — успешный ответ.
  • 404 — DNS-запись не найдена.

Тело ответа:

1{
2    "uuid": "a5ef043e-b517-4c45-a727-e8298f5d47d6",
3    "tenant": "7642b2c2-4162-4983-a7e7-b26de7cbdaf9",
4    "soa_primary_dns": "ns1.mcs.mail.ru.",
5    "soa_admin_email": "admin1@example.com",
6    "soa_serial": 2020120302,
7    "soa_refresh": 7200,
8    "soa_retry": 3600,
9    "soa_expire": 1209600,
10    "soa_ttl": 7200,
11    "zone": "example1.com.",
12    "status": "pending"
13}

Удалить зону DNS

Запрос

DELETE /v2/dns/<dns-uuid>

Пример запроса:

curl -X DELETE "https://mcs.mail.ru/public-dns/v2/dns/ff1b847e-730b-40c9-a458-d5b153fd0fc9" -H "X-Auth-Token: $OS_AUTH_TOKEN"

Ответ

Код ответа:

  • 204 — удалено успешно.
  • 404 — DNS-запись не найдена.

Создать запись типа A

Запрос

POST /v2/dns/<dns-uuid>/a/

Пример запроса:

curl -X POST "https://mcs.mail.ru/public-dns/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6/a/" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"name": "google-dns-servers", "ipv4": "8.8.8.8", "ttl": 60}'

Ответ

Заголовки:

1Location:
2<https://mcs.mail.ru/public-dns/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6/a/631519fb-f2d3-43e0-ae9c-8f18adcf3b1a>
3Content-Type: application/json; charset=UTF-8
4Content-Length: 211

Код ответа:

  • 201 — A-запись создана успешно.
  • 409 — A-запись уже существует.

Тело ответа:

1{
2    "uuid": "631519fb-f2d3-43e0-ae9c-8f18adcf3b1a",
3    "name": "google-dns-servers",
4    "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5    "ipv4": "8.8.8.8",
6    "ttl": 60
7}

Отобразить информацию о записи типа A

Запрос

GET /v2/dns/<dns-uuid>/a/<a-uuid>

Пример запроса:

curl -X GET "https://mcs.mail.ru/public-dns/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6/a/631519fb-f2d3-43e0-ae9c-8f18adcf3b1a" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json"

Ответ

Код ответа:

  • 200 — успешный ответ.
  • 404 — A-запись не найдена.

Тело ответа:

1{
2    "uuid": "631519fb-f2d3-43e0-ae9c-8f18adcf3b1a",
3    "name": "google-dns-servers",
4    "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5    "ipv4": "8.8.8.8",
6    "ttl": 60
7}

Список записей типа А в зоне DNS

Запрос

GET /v2/dns/<dns-uuid>/a/

Пример ответа:

curl -X GET "https://mcs.mail.ru/public-dns/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6/a/" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json"

Ответ

Код ответа:

  • 200 — успешный ответ.

Тело ответа:

1[
2    {
3        "uuid": "631519fb-f2d3-43e0-ae9c-8f18adcf3b1a",
4        "name": "google-dns-servers",
5        "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
6        "ipv4": "8.8.8.8",
7        "ttl": 60
8    }
9]

Список записей типа CNAME в зоне DNS

Запрос

GET /v2/dns/<dns-uuid>/cname/

Пример ответа:

curl -X GET "https://mcs.mail.ru/public-dns/v2/dns/ff1b847e-730b-40c9-a458-d5b153fd0fc9/cname/" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json"

Ответ

Код ответа:

  • 200 — успешный ответ.

Тело ответа:

1[
2    {
3        "uuid": "732d2f59-b5a3-429a-8013-5340dcebcbb6",
4        "name": "@",
5        "dns": "/v2/dns/ff1b847e-730b-40c9-a458-d5b153fd0fc9",
6        "content": "example.com",
7        "ttl": 86400,
8    }
9]

Обновить существующую запись типа A

Запрос

PUT /v2/dns/<dns-uuid>/a/<a-uuid>

Пример запроса:

curl -X PUT "https://mcs.mail.ru/public-dns/v2/dns/ff1b847e-730b-40c9-a458-d5b153fd0fc9/a/631519fb-f2d3-43e0-ae9c-8f18adcf3b1a" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"name": "hela", "ipv4": "8.8.4.4", "ttl": 60}'

Ответ

Код ответа:

  • 200 — успешный ответ.
  • 404 — A-запись не найдена.

Тело ответа:

1{
2    "uuid": "631519fb-f2d3-43e0-ae9c-8f18adcf3b1a",
3    "name": "hela",
4    "dns": "/v2/dns/ff1b847e-730b-40c9-a458-d5b153fd0fc9",
5    "ipv4": "8.8.4.4",
6    "ttl": 60
7}

Удалить запись типа A

Запрос

DELETE /v2/dns/<dns-uuid>/a/<a-uuid>

Пример запроса:

curl -X DELETE "https://mcs.mail.ru/public-dns/v2/dns/ff1b847e-730b-40c9-a458-d5b153fd0fc9/a/bc0b9630-13cf-4ff1-a025-0ff9e746815f" -H "X-Auth-Token: $OS_AUTH_TOKEN"

Ответ

Код ответа:

  • 202 — удалено успешно.
  • 404 — A-запись не найдена.

Методы для записей типа AAAA, CNAME, MX, NS, SRV, TXT

Все операции абсолютно аналогичны A-записи, за исключением полей. Ниже приведены примеры ответов.

Пример запроса

GET /v2/dns/<dns-uuid>/<record-type>/<record-uuid>

AAAA

1{
2    "uuid": "00e52f77-2694-46de-b6e0-a37370bef2c5",
3    "name": "@",
4    "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5    "ipv6": "2001:0DB8:AA10:0001:0000:0000:0000:00FB",
6    "ttl": 86400
7}

MX

1{
2    "uuid": "4f2a4306-1c17-4f84-b6c5-438d2eb3d2d3",
3    "name": "@",
4    "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5    "priority": 10,
6    "content": "mx.example.com",
7    "ttl": 86400
8}

CNAME

Пример запроса на создание записи CNAME:

curl -X POST "https://mcs.mail.ru/public-dns/v2/dns/ff1b847e-730b-40c9-a458-d5b153fd0fc9/cname/" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"name": "test3", "ttl": 86400, "content": "www.mail.ru"}'
1{
2    "uuid": "732d2f59-b5a3-429a-8013-5340dcebcbb6",
3    "name": "@",
4    "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5    "content": "example.com",
6    "ttl": 86400,
7}

NS

1{
2    "uuid": "dccc755c-6f88-4e9c-9823-8589fa5c6d4e",
3    "name": "@",
4    "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5    "content": "ns2.mcs.mail.ru",
6    "ttl": 86400
7}

SRV

1{
2    "uuid": "545d152d-3cd1-4eba-946f-6931e8dd5874",
3    "name": "_sip._udp",
4    "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5    "priority": 10,
6    "weight": 5,
7    "port": 5060,
8    "host": "example.com",
9    "ttl": 86400
10}

TXT

Пример запроса на создание записи TXT:

curl -X POST "https://mcs.mail.ru/public-dns/v2/dns/ff1b847e-730b-40c9-a458-d5b153fd0fc9/txt/" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"name": "@", "ttl": 86400, "content": "textstring"}'
1{
2    "uuid": "39186a66-e165-4069-8ab7-0934d1d69634",
3    "name": "@",
4    "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5    "content": "Text example",
6    "ttl": 86400
7}