Настройка разрешения DNS-имен из приватной сети Yandex BareMetal
Сервер BareMetal, подключенный к облачной сети Virtual Private Cloud с помощью Yandex Cloud Interconnect, находится за пределами Virtual Private Cloud и не может обращаться к DNS-резолверу облачной сети напрямую.
Чтобы разрешать на сервере BareMetal доменные имена из внутренних DNS-зон Yandex Cloud, создайте в облачной сети входящее DNS-подключение и укажите его IP-адрес в качестве DNS-сервера на сервере BareMetal. Разворачивать для этого отдельную виртуальную машину с DNS-форвардером не требуется.
В качестве примера вы настроите разрешение FQDN хоста кластера Yandex Managed Service for PostgreSQL из приватной сети BareMetal.
Чтобы настроить разрешение DNS-имен:
- Подготовьте инфраструктуру.
- Создайте входящее DNS-подключение.
- Настройте DNS на сервере BareMetal.
- Проверьте разрешение DNS-имен.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте инфраструктуру
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры входят:
- плата за аренду сервера BareMetal (тарифы Yandex BareMetal);
- плата за ресурсы кластера Managed Service for PostgreSQL (тарифы Yandex Managed Service for PostgreSQL), если вы используете кластер для проверки разрешения DNS-имен.
Настройте сетевую связность
Если между приватной подсетью BareMetal и облачной сетью Virtual Private Cloud еще нет сетевой связности, настройте ее с помощью Cloud Interconnect.
Убедитесь, что в виртуальном маршрутизаторе анонсирован префикс подсети Virtual Private Cloud, в которой будет находиться IP-адрес входящего DNS-подключения. Сервер BareMetal должен иметь маршрут до этого префикса.
В примерах ниже используются:
- CIDR приватной подсети BareMetal —
172.16.2.0/24; - IP-адрес сервера BareMetal —
172.16.2.2; - CIDR подсети Virtual Private Cloud —
192.168.1.0/24; - IP-адрес входящего DNS-подключения —
192.168.1.200.
Создайте кластер Managed Service for PostgreSQL
Если у вас еще нет облачного ресурса с FQDN во внутренней DNS-зоне, для проверки создайте кластер Managed Service for PostgreSQL в облачной сети, связанной с приватной подсетью BareMetal.
Сохраните FQDN одного из хостов кластера. Он понадобится для проверки разрешения DNS-имен.
Создайте входящее DNS-подключение
Создайте входящее DNS-подключение в облачной сети, связанной с приватной подсетью BareMetal.
При создании подключения:
- Выберите облачную сеть, подключенную к виртуальному маршрутизатору.
- Зарезервируйте для подключения внутренний IP-адрес в подсети, префикс которой анонсирован виртуальным маршрутизатором. Например,
192.168.1.200. - Дождитесь, когда входящее DNS-подключение перейдет в статус
AVAILABLE. - Сохраните IP-адрес подключения. Он понадобится для настройки сервера BareMetal.
Примечание
В одной облачной сети можно создать только одно входящее DNS-подключение. Если в выбранной сети уже есть такое подключение, используйте его IP-адрес.
Настройте DNS на сервере BareMetal
В примере используется сервер с Ubuntu 24.04 и конфигурацией сети через Netplan
-
Подключитесь к KVM-консоли сервера BareMetal или подключитесь к серверу по SSH.
-
Узнайте имя файла с конфигурацией Netplan:
ls /etc/netplan/Результат:
50-cloud-init.yaml -
Откройте файл конфигурации:
sudo nano /etc/netplan/50-cloud-init.yaml -
В настройках приватного сетевого интерфейса отключите использование DNS-серверов, получаемых по DHCP, и добавьте IP-адрес входящего DNS-подключения:
network: version: 2 ethernets: etx1: match: macaddress: "90:e2:ba:a2:30:de" dhcp4: true dhcp4-overrides: use-dns: false set-name: "etx1" nameservers: addresses: - 192.168.1.200 search: - "~."Сохраните остальные настройки сетевых интерфейсов без изменений. В конфигурации укажите:
- вместо
etx1— имя приватного сетевого интерфейса сервера; - вместо
90:e2:ba:a2:30:de— MAC-адрес приватного сетевого интерфейса; - вместо
192.168.1.200— IP-адрес входящего DNS-подключения.
Значение
~.в параметреnameservers.searchнаправляет все DNS-запросы через входящее DNS-подключение. - вместо
-
Проверьте корректность конфигурации:
sudo netplan tryЕсли в конфигурации нет ошибок, подтвердите изменения.
-
Примените конфигурацию:
sudo netplan apply -
Убедитесь, что для приватного интерфейса используется IP-адрес входящего DNS-подключения:
resolvectl status etx1Результат должен содержать IP-адрес подключения:
Link 2 (etx1) Current DNS Server: 192.168.1.200 DNS Servers: 192.168.1.200 DNS Domain: ~.
Важно
Не изменяйте файл /etc/resolv.conf вручную: сервис systemd-resolved может перезаписать внесенные изменения.
Проверьте разрешение DNS-имен
-
Проверьте доступность входящего DNS-подключения, отправив на его IP-адрес запрос к FQDN облачного ресурса:
dig @192.168.1.200 <FQDN_облачного_ресурса>В секции
ANSWERдолжен появиться внутренний IP-адрес облачного ресурса. -
Проверьте разрешение того же FQDN с помощью системных настроек DNS:
resolvectl query <FQDN_облачного_ресурса> -
Если для проверки вы создали кластер Managed Service for PostgreSQL, подключитесь к нему по FQDN с сервера BareMetal.
Как удалить созданные ресурсы
Чтобы остановить использование ресурсов:
- Удалите IP-адрес входящего DNS-подключения из конфигурации Netplan на сервере BareMetal и примените изменения.
- Удалите входящее DNS-подключение.
- Удалите зарезервированный внутренний IP-адрес.
- Если для проверки вы создали кластер Managed Service for PostgreSQL, удалите его.