Облачная платформаEvolution

Реализация Split DNS в облаке Evolution


С помощью этого руководства вы реализуете Split DNS в облаке Evolution. При такой схеме доменные имена разрешаются в разные IP-адреса в зависимости от источника DNS-запроса: изнутри VPC или из интернета.

Схема реализации Split DNS приведена ниже.

Схема реализации Split DNS

Вы будете использовать следующие сервисы:

  • «Виртуальные машины» — сервис, в рамках которого предоставляется виртуальная машина.

  • «Группы безопасности» — сервис для контроля трафика виртуальных машин.

  • «Публичные IP» — сервис для организации доступа к виртуальной машине из интернета.

  • VPC — изолированная виртуальная сеть для создания безопасной инфраструктуры.

  • DNS — сервис по управлению приватными и публичными зонами и их ресурсными записями.

Шаги:

  1. Разверните ресурсы в облаке.

  2. Настройте приватную зону.

  3. Настройте публичную зону.

  4. Создайте А-записи.

  5. Проверьте работу.

Перед началом работы

  1. В любом регистраторе доменов зарегистрируйте домен, например example.com.

  2. Зарегистрируйтесь в личном кабинете Cloud.ru.

    Если вы уже зарегистрированы, войдите под своей учетной записью.

  3. Создайте и загрузите SSH-ключ в облако.

1. Разверните ресурсы в облаке

На этом шаге вы создадите VPC, подсети, виртуальные машины и настроите правила групп безопасности.

  1. Создайте VPC с названием VPC-1.

  2. Создайте подсеть с параметрами:

    • Названиеsubnet-1.

    • VPCVPC-1.

    • Зона доступностиru.AZ-1.

    • Адрес10.0.1.0/24.

  3. Создайте подсеть с параметрами:

    • Названиеsubnet-2.

    • VPCVPC-1.

    • Зона доступностиru.AZ-1.

    • Адрес10.0.2.0/24.

  4. Убедитесь, что в личном кабинете на странице сервиса «Подсети» отображаются подсети subnet-1, subnet-2 в статусе «Создана».

  5. Создайте виртуальную машину со следующими параметрами:

    • Названиеapp_server.

    • Зона доступностиru.AZ-1.

    • ОбразПубличные → Ubuntu 22.04.

    • Гарантированная доля vCPU10%.

    • vCPU1.

    • RAM1.

    • Сетевой интерфейс — выберите тип Подсеть с публичным IP.

    • VPCVPC-1.

    • Подсеть10.0.1.0/24 (subnet-1).

    • Внутренний IPАвтоматически.

    • Публичный IP — оставьте Арендовать новый или выберите IP-адрес из списка арендованных.

    • Группы безопасностиSSH-access_ru.AZ-1.

    • Логин — оставьте имя пользователя по умолчанию или укажите новое.

    • Метод аутентификацииПубличный ключ и Пароль.

    • Публичный ключ — укажите ключ, созданный ранее.

    • Пароль — задайте пароль пользователя.

    • Имя хостаapp_server.

  6. Создайте виртуальную машину со следующими параметрами:

    • Названиеclient.

    • Зона доступностиru.AZ-1.

    • ОбразПубличные → Ubuntu 22.04.

    • Гарантированная доля vCPU10%.

    • vCPU1.

    • RAM1.

    • Сетевой интерфейс — выберите тип Подсеть.

    • VPCVPC-1.

    • Подсеть10.0.2.0/24 (subnet-2).

    • Внутренний IPАвтоматически.

    • Группы безопасностиSSH-access_ru.AZ-1.

    • Логин — оставьте имя пользователя по умолчанию или укажите новое.

    • Метод аутентификацииПубличный ключ и Пароль.

    • Публичный ключ — укажите ключ, созданный ранее.

    • Пароль — задайте пароль пользователя.

    • Имя хостаclient.

  7. Убедитесь, что в личном кабинете на странице сервиса «Виртуальные машины» отображаются виртуальные машины client, app_server в статусе «Запущена».

  8. Для группы безопасности SSH-access_ru.AZ-1 создайте правила для трафика с параметрами:

    Тип трафика

    Протокол

    Тип источника

    Источник

    Входящий

    Любой

    IP-адрес

    10.0.1.0/24

    Входящий

    Любой

    IP-адрес

    10.0.2.0/24

2. Настройте приватную зону

На этом шаге вы создадите DNS-сервер и приватную зону.

  1. Создайте DNS-сервер с параметрами:

    • Названиеdns-server.

    • VPCVPC-1.

    • Зона доступностиru.AZ-1.

    • Подсеть10.0.1.0/24.

    • Адрес DNS-сервера — выберите 10.0.1.100/24.

  2. Для подсети subnet-1 укажите DNS-сервер 10.0.1.100/24.

  3. Создайте приватную зону с параметрами:

    • Домен — ваш зарегистрированный домен example.com.

    • VPCVPC-1.

    • Тип домена — выберите Приватный.

    • Названиеprivate.

3. Настройте публичную зону

На этом шаге вы создадите публичную зону и делегируете ее NS-серверам Cloud.ru.

  1. Создайте публичную зону с параметрами:

    • Домен — ваш зарегистрированный домен example.com.

    • Тип домена — выберите Публичный.

    • Названиеpublic.

  2. В панели управления вашего регистратора проверьте уникальность зоны.

    Если зона уникальная, ее не нужно подтверждать.

    Если зона неуникальная, подтвердите ее.

  3. Делегируйте зону. В личном кабинете регистратора в параметрах домена укажите адреса NS-серверов, указанных в личном кабинете, например evo-cns01.cloud.ru. и evo-cns02.cloud.ru..

    Примечание

    Делегирование может занимать до 24 часов.

  4. Проверьте делегирование, выполнив команду:

    dig +short NS example.com

    Где example.com — ваш зарегистрированный домен.

    В результате должны отобразиться NS-серверы, указанные при делегировании.

4. Создайте А-записи

На этом шаге вы создадите A-записи для публичной и приватной зоны.

  1. В параметрах виртуальной машины app_server скопируйте публичный и внутренний IP-адреса.

  2. В публичной зоне example.com cоздайте запись с параметрами:

    • Поддомен — оставьте пустым.

    • Тип записиA.

    • Значение — публичный IP-адрес виртуальной машины.

  3. В приватной зоне example.com cоздайте запись с параметрами:

    • Поддомен — оставьте пустым.

    • Тип записиA.

    • Значение — внутренний IP-адрес виртуальной машины.

5. Проверьте работу

На этом шаге вы проверите разрешение запросов из VPC и интернета.

  1. Проверьте разрешение запросов из VPC:

    1. Подключитесь к виртуальной машине client через виртуальную консоль.

    2. Выполните команду:

    dig @10.0.1.100 example.com

    Где:

    • 10.0.1.100 — IP-адрес DNS-сервера;

    • example.com — ваш зарегистрированный домен.

    В результате должен отобразиться внутренний IP-адрес виртуальной машины app_server, например:

    ; <<>> DiG 9.18.39-0ubuntu0.22.04.2-Ubuntu <<>> @10.0.1.100 example.com
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6128
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ;; QUESTION SECTION:
    ;example.com. IN A
    ;; ANSWER SECTION:
    example.com. 60 IN A <internal_ip>
    ;; Query time: 12 msec
    ;; SERVER: 10.0.1.4#53(10.0.1.4) (UDP)
    ;; WHEN: Wed Apr 01 16:36:43 MSK 2026
    ;; MSG SIZE rcvd: 64

    Где <internal_ip> – внутренний IP-адрес виртуальной машины app_server.

  2. Проверьте разрешение запросов из интернета, выполнив команду:

    dig example.com

    Где example.com — ваш зарегистрированный домен.

    В результате должен отобразиться публичный IP-адрес виртуальной машины app_server, например:

    ; <<>> Net::DNS::Dig 0.12 <<>> -t a example.com.
    ;;
    ;; Got answer.
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61490
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    ;; QUESTION SECTION:
    ;example.com. IN A
    ;; ANSWER SECTION:
    example.com. 60 IN A <public_ip>
    ;; Query time: 42 ms
    ;; SERVER: 8.8.8.8# 53(8.8.8.8)
    ;; WHEN: Mon Apr 13 17:02:54 2026
    ;; MSG SIZE rcvd: 52 -- XFR size: 2 records

    Где <public_ip> – публичный IP-адрес виртуальной машины app_server.

Результат

Вы настроили разрешение доменных имен в разные IP-адреса в зависимости от того, откуда поступил DNS-запрос.