Перейти к основному содержимому

Настроить DNS в приватной сети выделенного сервера

Вы можете настроить DNS в приватных сетях выделенных серверов. Это позволит обращаться к серверам в приватной сети по доменным именам вместо IP-адресов.

Для настройки используется сервис Приватный DNS. Сервис работает на базе сетей облачной платформы, связь с сетями выделенных серверов осуществляется через глобальный роутер.

Настройка приватного DNS выполняется через API, для аутентификации запросов используется IAM-токен для проекта. Полный список API-методов для работы с сервисом смотрите в Private DNS API.

  1. Настройте приватный DNS в сети облачной платформы.
  2. Свяжите сеть выделенных серверов и сеть облачной платформы через глобальный роутер.
  3. Укажите IP-адреса DNS-серверов на выделенных серверах.

1. Настроить приватный DNS в сети облачной платформы

  1. Если у вас еще нет приватной сети в облачной платформе, создайте приватную сеть. Сеть должна находиться в одном проекте с выделенными серверами, для которых вы хотите использовать приватный DNS.

  2. Добавьте сервисного пользователя с ролью member.

  3. Для добавленного сервисного пользователя получите IAM-токен для проекта.

  4. Откройте CLI.

  5. Создайте приватную зону с записями, для этого выполните 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-токен для проекта, который вы получили на шаге 3;

    • <zone_name> — имя зоны;

    • <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> — значения записи.
  6. Подключите приватную сеть к DNS-резолверу, для этого выполните API-запрос:

    curl -X POST \
    <endpoint>/services \
    -H "X-Auth-Token: <token>" \
    -H "Content-Type: application/json" \
    -d '{
    "network_id": "<network_id>"
    }'

    Укажите:

    • <endpoint> — URL для обращения к API приватного DNS в нужном пуле. Список URL можно посмотреть в инструкции Список URL;
    • <token> — IAM-токен для проекта, который вы получили на шаге 3;
    • <network_id> — ID сети, можно скопировать в панели управления: в верхнем меню нажмите ПродуктыОблачные серверыСеть → вкладка Приватные сети → в карточке сети нажмите .

2. Связать сеть выделенных серверов и сеть облачной платформы через глобальный роутер

Свяжите сеть выделенных серверов и сеть облачной платформы через глобальный роутер, для этого используйте инструкцию Связать продукты и услуги через глобальный роутер.

3. Указать IP-адреса DNS-серверов на выделенных серверах

На каждом из выделенных серверов в сети, которую вы связали с сетью облачной платформы, нужно указать приватные DNS-серверы — IP-адреса DNS-резолвера из облачной сети.

  1. Подключитесь к серверу по SSH или через KVM-консоль.

  2. Откройте конфигурационный файл утилиты netplan текстовым редактором vi:

    vi /etc/netplan/<netcfg>.yaml

    Укажите <netcfg> — название конфигурационного файла утилиты netplan, например 50-cloud-init.yaml или 01-netcfg.yaml.

  3. Укажите DNS-серверы для сетевого интерфейса приватной сети, которую вы связали с сетью облачной платформы. Для этого в блоке нужного интерфейса добавьте блок nameservers с IP-адресами DNS-резолвера. Например:

    id1:
    addresses:
    - 192.168.0.3/24
    routes:
    - to: 172.16.0.0/24
    via: 192.168.0.1
    nameservers:
    addresses:
    - <dns_server_ip_address_1>
    - <dns_server_ip_address_2>

    Укажите <dns_server_ip_address_1> и <dns_server_ip_address_2> — IP-адреса DNS-резолвера. Адреса можно посмотреть в панели управления: в верхнем меню нажмите ПродуктыОблачные серверыСеть → вкладка Приватные сети → откройте страницу сети → вкладка Порты → в карточке порта с пометкой DNS-резолвер посмотрите IP-адреса.

  4. Нажмите ESC.

  5. Выйдите из текстового редактора vi с сохранением изменений:

    :wq
  6. Примените конфигурацию:

    netplan apply
  7. Опционально: перезагрузите сервер.