Настроить DNS в приват ной сети облачной платформы
Для настройки DNS в приватной сети облачной платформы вы создаете приватную зону с ресурсными записями. Затем подключаете сеть к приватной зоне и подключаете сеть к приватному DNS-резолверу.
Если вам нужно настроить DNS в приватной сети выделенных серверов, подключение выполняется через глобальный роутер, подробнее в инструкции Настроить DNS в приватной сети выделенного сервера.
Подключение сети к зоне и подключение сети к DNS-резолверу выполняются независимо друг от друга. Вы можете не выполнять эти подключения, выполнить одно или оба в зависимости от ваших целей и особенностей вашей инфраструктуры:
- если сеть подключена к зоне, при добавлении или изменении порта в этой сети для него автоматически создается или обновляется A- или AAAA-запись. Полное доменное имя порта в записи формируется как
<server_name>.<zone_domain_name>., где<server_name>— имя сервера,<zone_domain_name>— доменное имя зоны. Вы можете изменить доменное имя порта вручную, при этом запись в зоне обновится автоматически; - если сеть подключена к DNS-резолверу, серверы в этой сети могут резолвить доменные имена всех зон в рамках своего пула и проекта.
Настроить приватный DNS
Настройка DNS выполняется через API, для аутентификации запросов используется IAM-токен для проекта. Полный список API-методов для работы с сервисом смотрите в Private DNS API.
-
Добавьте сервисного пользователя с ролью
member. -
Для добавленного сервисного пользователя получите IAM-токен для проекта.
-
Откройте CLI.
-
Создайте приватную зону с записями, для этого выполните API-запрос:
curl -X POST \
<endpoint>/zones \
-H "X-Auth-Token: <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "<zone_name>",
"ttl": <ttl>,
"domain": "<zone_domain_name>.",
"records": [
{
"type": "<record_type>",
"domain": "<subdomain>.<zone_domain_name>.",
"ttl": <record_ttl>,
"values": [
<value1>,<value2>
]
}
]
}'Укажите:
-
<endpoint>— URL для обращения к API приватного DNS в нужном пуле. Список URL можно посмотреть в инструкции Список URL; -
<token>— IAM-токен для проекта, который вы получили на шаге 2; -
<zone_name>— имя зоны; -
<zone_ttl>— TTL зоны в секундах, по умолчанию 3600. TTL — время, в течение которого ресурсная запись зоны в кэше DNS-сервера считается актуальной и не требует повторного кэширования; -
<zone_domain_name>— доменное имя зоны, напримерexample. Может содержать цифры, латинские буквы и дефисы; -
опционально: добавьте блок
"records"с информацией о ресурсных записях в зоне. Записи можно будет создать и изменить в любой момент после создания зоны. Записи указываются группами по типам, для каждой группы укажите:<record_type>— тип записи:A,AAAA,MX,TXT,CNAME;<subdomain>— доменное имя порта, напримерfirst. Может содержать цифры, латинские буквы и дефисы;<record_ttl>— TTL записи в секундах, по умолчанию 3600. Чтобы запись наследовала TTL зоны, укажите-1;<value1>,<value2>— значения записи.
-
-
Если вы хотите подключить сеть к зоне, выполните API-запрос:
curl -X PUT \
https://<pool>.cloud.api.servercore.com/network/v2.0/networks/<network_id> \
-H "X-Auth-Token: <token>" \
-H "Content-Type: application/json" \
-d '{
"network": {
"dns_domain": "zone_domain_name"
}
}'
Укажите:
<token>— IAM-токен для проекта, который вы получили на шаге 2;<pool>— пул, в котором находится сеть;<zone_domain_name>— доменное имя зоны, которое задали на шаге 4.
-
Если вы хотите подключить сеть к приватному DNS-резолверу, выполните API-запрос:
curl -X POST \
<endpoint>/services \
-H "X-Auth-Token: <token>" \
-H "Content-Type: application/json" \
-d '{
"network_id": "<network>"
}'Укажите:
<endpoint>— URL для обращения к API приватного DNS в нужном пуле. Список URL можно посмотреть в инструкции Список URL;<token>— IAM-токен для проекта, который вы получили на шаге 2;<network>— ID сети, можно скопировать в панели управления: в верхнем меню нажмите Продукты → Облачные серверы → Сеть → вкладка Приватные сети → в карточке сети нажмите .
-
Если на шаге 6 вы подключили сеть к приватному DNS-резолверу, укажите IP-адреса резолвера в настройках подсетей этой сети:
7.1. Получите ID подключения к DNS-резолверу, для этого выполните API-запрос списка подключений:
curl -X GET \
<endpoint>/services \
-H "X-Auth-Token: <token>" \
-H "Content-Type: application/json" \<endpoint>— URL для обращения к API приватного DNS в нужном пуле. Список URL можно посмотреть в инструкции Список URL;<token>— IAM-токен для проекта, который вы получили на шаге 2.
В ответе на запрос скопируйте ID нужного подключения, он указан в поле
id.7.2. Получите IP-адреса DNS-резолвера в подсети, для этого выполните API-запрос:
curl -X GET \
<endpoint>/services/<service> \
-H "X-Auth-Token: <token>" \
-H "Content-Type: application/json" \Укажите:
<endpoint>— URL для обращения к API приватного DNS в нужном пуле. Список URL можно посмотреть в инструкции Список URL;<service>— ID подключения к DNS-резолверу, который вы получили на шаге 7.1;<token>— IAM-токен для проекта, который вы получили на шаге 2.
В ответе на запрос скопируйте IP-адреса резолвера, они указаны в поле
address.7.3. Добавьте IP-адреса DNS-резолвера, которые получили на шаге 7.2, в настройки подсетей, для этого измените DNS-серверы в каждой из подсетей этой сети.