Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Cloud DNS
  • Начало работы
    • Все практические руководства
    • Настройка локального кеширующего DNS-резолвера
    • Миграция DNS-зон из Яндекс 360
    • Интеграция с корпоративным сервисом DNS
    • Интеграция Managed Service for Kubernetes с корпоративной зоной DNS
    • Настройка Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей
    • Создание веб-хука резолвера ACME для ответов на DNS01-проверки
    • Публикация обновлений для игр
    • Подключение к Object Storage из Virtual Private Cloud
    • Подключение к Container Registry из Virtual Private Cloud
    • Переключение сетевого соединения при пересоздании кластера Yandex Data Processing
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Пример интеграции
  • Перед началом работы
  • Необходимые платные ресурсы
  • Настройте DNS в облаке
  • Установите DNS-форвардеры
  • Настройте сетевой балансировщик Network Load Balancer
  • Настройте сервис DHCP
  • Настройте корпоративные серверы DNS
  • Проверьте работу сервиса
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Интеграция с корпоративным сервисом DNS

Интеграция Cloud DNS и корпоративного сервиса DNS

Статья создана
Yandex Cloud
Улучшена
Yuriy S.
Обновлена 6 февраля 2025 г.
  • Пример интеграции
  • Перед началом работы
    • Необходимые платные ресурсы
  • Настройте DNS в облаке
    • Установите DNS-форвардеры
    • Настройте сетевой балансировщик Network Load Balancer
    • Настройте сервис DHCP
  • Настройте корпоративные серверы DNS
  • Проверьте работу сервиса
  • Как удалить созданные ресурсы

Если у вас есть собственные корпоративные сети, связанные с внутренними сетями в вашем облаке Yandex Cloud с помощью сервиса Yandex Cloud Interconnect, то можно интегрировать корпоративный DNS с Cloud DNS. Это позволит обращаться к ресурсам и сервисам по имени независимо от их расположения: в корпоративной или облачной сетях.

Делегировать управление DNS-записями во внутренних зонах Yandex Cloud вашим DNS-серверам в корпоративной сети не получится, так как NS-записи для внутренней DNS-зоны игнорируются. Чтобы распознавание имен сервисов и ресурсов в облачных сетях выполнялось при использовании внутренних зон, настройте отдельные DNS-форвардеры в облачных подсетях. DNS-форвардеры — серверы DNS, которые по-разному перенаправляют запросы в зависимости от имени, указанного в запросе. Рекомендуем использовать CoreDNS или Unbound.

Важно

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

Чтобы настроить распознавание имен корпоративных сервисов и ресурсов в облачных сетях Yandex Cloud:

  1. Ознакомьтесь с описанием примера интеграции.
  2. Настройте DNS в облаке.
  3. Настройте корпоративные серверы DNS.
  4. Проверьте работу сервиса.

Если созданные ресурсы вам больше не нужны, удалите их.

Пример интеграции

  1. Корпоративная сеть состоит из двух подсетей: 172.16.1.0/24 и 172.16.2.0/24.

  2. В этих подсетях размещено по одному DNS-серверу:

    • 172.16.1.5: ns1.corp.example.net
    • 172.16.2.5: ns2.corp.example.net

    Эти серверы обслуживают DNS-зону corp.example.net.

  3. Облачная сеть Yandex Cloud также состоит из двух подсетей:

    • 172.16.3.0/24: subnet3, зона доступности ru-central1-d.
    • 172.16.4.0/24: subnet4, зона доступности ru-central1-b.

    В этих подсетях размещены DNS-серверы Yandex Cloud: 172.16.3.2 и 172.16.4.2.

    Эти серверы обслуживают внутренние DNS-зоны в облачной сети.

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

Далее будут настроены два DNS-форвардера в облачной сети:

  • 172.16.3.5: forwarder1.internal
  • 172.16.4.5: forwarder2.internal

Они будут перенаправлять DNS-запросы следующим образом:

  • Запросы к зоне corp.example.net — через корпоративные DNS-серверы 172.16.1.5 и 172.16.2.5.
  • Все прочие запросы (к зоне .) — через внутренние DNS-серверы Yandex Cloud, соответствующим подсетям: 172.16.3.2 и 172.16.4.2.

Для обеспечения отказоустойчивости работы DNS-форвардеров, они будут размещены за внутренним сетевым балансировщиком Yandex Network Load Balancer. Все запросы к DNS-форвардерам (как из облачной сети, так и из корпоративной сети) будут выполняться через этот балансировщик.

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

  1. Для установки DNS-форвардеров в каждой из облачных подсетей subnet3 и subnet4 создайте виртуальную машину из публичного образа Ubuntu 20.04 с параметрами:

    • Имя:
      • forwarder1 — для ВМ в подсети subnet3;
      • forwarder2 — для ВМ в подсети subnet4.
    • В блоке Сетевые настройки:
      • Публичный IP-адрес: Без адреса.
      • Внутренний IPv4-адрес: выберите Вручную и укажите:
        • 172.16.3.5 — для ВМ forwarder1;
        • 172.16.4.5 — для ВМ forwarder2.
  2. Для подключения из интернета и проверки сервиса в подсети subnet4 создайте еще одну ВМ из публичного образа Ubuntu 20.04 с параметрами:

    • Имя: test1.
    • В блоке Сетевые настройки:
      • Публичный IP-адрес: Автоматически.
      • Внутренний IPv4-адрес: Автоматически.
  3. Для установки ПО из интернета в подсетях subnet3 и subnet4 настройте NAT-шлюз.

Необходимые платные ресурсы

В стоимость поддержки инфраструктуры входят:

  • плата за постоянно запущенную виртуальную машину (см. тарифы Yandex Compute Cloud);
  • плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud);
  • плата за использование сетевого балансировщика (см. тарифы Yandex Network Load Balancer).

Настройте DNS в облаке

  1. Установите DNS-форвардеры.
  2. Настройте сетевой балансировщик.
  3. Настройте сервис DHCP.

Установите DNS-форвардеры

CoreDNS
Unbound
  1. Подключитесь к ВМ для установки DNS-форвардера через промежуточную ВМ test1.

  2. Скачайте актуальную версию CoreDNS со страницы производителя и установите ее:

    cd /var/tmp && wget <URL_пакета> -O - | tar -zxvf
    sudo mv coredns /usr/local/sbin
    
  3. Создайте файл конфигурации CoreDNS:

    • forwarder1:

      sudo mkdir /etc/coredns
      sudo tee >> /etc/coredns/Corefile <<EOF
      corp.example.net {
        forward . 172.16.1.5 172.16.2.5
      }
      . {
        forward . 172.16.3.2
        health
      }
      EOF
      
    • forwarder2:

      sudo mkdir /etc/coredns
      sudo tee >> /etc/coredns/Corefile <<EOF
      corp.example.net {
        forward . 172.16.1.5 172.16.2.5
      }
      . {
        forward . 172.16.4.2
        health
      }
      EOF
      
  4. Настройте автоматический запуск CoreDNS:

    sudo tee >> /etc/systemd/system/coredns.service <<EOF
    [Unit]
    Description=CoreDNS
    After=network.target
    
    [Service]
    User=root
    ExecStart=/usr/local/sbin/coredns -conf /etc/coredns/Corefile
    StandardOutput=append:/var/log/coredns.log
    StandardError=append:/var/log/coredns.log
    RestartSec=5
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    EOF
    sudo systemctl enable --now coredns
    
  5. Отключите системную службу распознавания имен DNS, чтобы ее функции выполнял локальный DNS-форвардер. В Ubuntu 20.04 это можно сделать командами:

    sudo systemctl disable --now systemd-resolved
    rm /etc/resolv.conf
    echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
    
  1. Подключитесь к ВМ DNS-форвардера через промежуточную ВМ test1.

  2. Установите пакет unbound:

    sudo apt update && sudo apt install --yes unbound
    
  3. Настройте и перезапустите DNS-форвардер:

    unbound.conf для forwarder1
    sudo tee -a /etc/unbound/unbound.conf <<EOF
    server:
      module-config: "iterator"
      interface: 0.0.0.0
      access-control: 127.0.0.0/8   allow
      access-control: 172.16.0.0/21 allow
    
    forward-zone:
      name: "corp.example.net"
      forward-addr: 172.16.1.5
      forward-addr: 172.16.2.5
    
    forward-zone:
      name: "."
      forward-addr: 172.16.3.2
    EOF
    
    unbound.conf для forwarder2
    sudo tee -a /etc/unbound/unbound.conf <<EOF
    server:
      module-config: "iterator"
      interface: 0.0.0.0
      access-control: 127.0.0.0/8   allow
      access-control: 172.16.0.0/21 allow
    
    forward-zone:
      name: "corp.example.net"
      forward-addr: 172.16.1.5
      forward-addr: 172.16.2.5
    
    forward-zone:
      name: "."
      forward-addr: 172.16.4.2
    EOF
    
  4. Перезапустите Unbound:

    sudo systemctl restart unbound
    
  5. Отключите системную службу распознавания имен DNS, чтобы ее функции выполнял локальный DNS-форвардер. В Ubuntu 20.04 это можно сделать командами:

    sudo systemctl disable --now systemd-resolved
    rm /etc/resolv.conf
    echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
    

Настройте сетевой балансировщик Network Load Balancer

Создайте внутренний сетевой балансировщик с параметрами:

Примечание

Обработка UDP-трафика для сетевого балансировщика по умолчанию выключена. Чтобы включить обработку UDP-трафика на сетевом балансировщике, обратитесь в техническую поддержку. Подробнее можно прочитать здесь.

  • Тип: Внутренний.

  • В блоке Обработчики:

    • Подсеть: выберите subnet3 из списка.
    • Протокол: UDP.
    • Порт: 53.
    • Целевой порт: 53.
  • В блоке Целевые группы:

    • Создайте группу, состоящую из хостов forwarder1 и forwarder2.

    • В блоке Проверка состояния укажите параметры:

      CoreDNS
      Unbound
      • Тип: HTTP.
      • Путь: /health.
      • Порт: 8080.
      • Тип: TCP.
      • Порт: 53.

При создании балансировщика ему будет автоматически назначен IP-адрес из подсети subnet3.

Примечание

Внутренний сетевой балансировщик не будет отвечать на DNS-запросы от форвардеров, из которых состоит его целевая группа: forwarder1 и forwarder2. Это связано с особенностями реализации, подробнее см. в разделе Типы сетевых балансировщиков.

Настройте сервис DHCP

Чтобы хосты в облачной сети автоматически использовали корпоративный сервис DNS, в настройках DHCP для подсетей subnet3 и subnet4 укажите:

  1. Серверы доменных имен: IP-адрес, который был назначен балансировщику.
  2. (Опционально) Доменное имя: corp.example.net.

Чтобы обновить сетевые настройки на хостах forwarder1, forwarder2 и test1, выполните команду:

sudo netplan apply

После обновления сетевых настроек хосты в облачной сети будут использовать балансировщик вместо сервера DNS Yandex Cloud.

Настройте корпоративные серверы DNS

Настройте корпоративные серверы так, чтобы DNS-запросы к внутренним зонам Yandex Cloud направлялись на IP-адрес, который был назначен балансировщику.

Проверьте работу сервиса

  1. Проверьте, что на облачных хостах forwarder1, forwarder2 и test1 выполняется распознавание имен во внутренней зоне corp.example.net:

    host ns1.corp.example.net
    ns1.corp.example.net has address 172.16.1.5
    
  2. Проверьте, что на облачных хостах forwarder1, forwarder2 и test1 выполняется распознавание имен в публичных зонах, например:

    host cisco.com
    cisco.com has address 72.163.4.185
    ...
    
  3. Проверьте, что на корпоративных DNS-серверах ns1 и ns2 выполняется распознавание внутренних имен Yandex Cloud, например:

    host ns.internal
    ns.internal has address 10.130.0.2
    
  4. Чтобы убедиться, что сервисы запускаются автоматически, перезапустите ВМ forwarder1, forwarder2 и test1 и повторите проверки.

Как удалить созданные ресурсы

Чтобы перестать платить за ресурсы:

  • удалите ВМ;
  • удалите статические публичные IP-адреса, если вы зарезервировали их специально для своих ВМ;
  • удалите целевые группы;
  • удалите обработчики;
  • удалите сетевой балансировщик;
  • удалите подсети;
  • удалите таблицу маршрутизации;
  • удалите NAT-шлюз;
  • удалите сети.

Была ли статья полезна?

Предыдущая
Миграция DNS-зон из Яндекс 360
Следующая
Интеграция Managed Service for Kubernetes с корпоративной зоной DNS
Проект Яндекса
© 2025 ООО «Яндекс.Облако»