Настроить DNS в приватной подсети
В приватной подсети BareMetal можно настроить DNS-серверы и доменное имя, которые будут передаваться на серверы по DHCP. Можно использовать входящие DNS-подключения Cloud DNS, собственные DNS-серверы или оба варианта.
Перед началом работы
-
Убедитесь, что в приватной подсети включен DHCP и приватные сетевые интерфейсы серверов получают IP-адреса по DHCP. При необходимости создайте подсеть с включенным DHCP.
-
Подготовьте DNS-серверы:
- Для использования Cloud DNS настройте сетевую связность между VRF приватной подсети и облачной сетью Virtual Private Cloud. Создайте входящее DNS-подключение в этой облачной сети или используйте существующее. Убедитесь, что префикс подсети с IP-адресом DNS-подключения анонсирован виртуальным маршрутизатором.
- Для использования собственного DNS-сервера подготовьте его IPv4-адрес и обеспечьте доступность этого адреса из приватной подсети BareMetal.
Важно
Новые DNS-настройки будут переданы всем серверам в подсети, которые используют DHCP. Переданный список DNS-серверов заменит предыдущие DNS-настройки приватного интерфейса. Убедитесь, что выбранные DNS-серверы разрешают все необходимые имена. Подробнее в разделе Ограничения.
Настройте DNS
-
В консоли управления
выберите каталог, в котором находится приватная подсеть. -
Перейдите
в сервис BareMetal. -
На панели слева выберите
Приватные подсети. -
Откройте нужную приватную подсеть для редактирования.
-
Убедитесь, что включена опция Назначение IP-адресов по DHCP.
-
Настройте DNS:
- Включите опцию DNS-сервер.
- В поле Сервер доменных имен выберите входящее DNS-подключение из списка или введите IPv4-адрес собственного DNS-сервера и добавьте его в список.
- (Опционально) Чтобы указать еще один DNS-сервер, нажмите Добавить сервер и выберите входящее DNS-подключение или введите IPv4-адрес. Всего можно указать до трех DNS-серверов.
- (Опционально) В поле Доменное имя укажите поисковый домен без точки в начале и в конце, например
example.internal. При разрешении коротких имен операционная система будет добавлять к ним этот домен:app→app.example.internal. Убедитесь, что все указанные DNS-серверы умеют разрешать имена в этом домене.
-
Нажмите Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Для настройки DNS используйте CLI версии 1.37.0 или выше.
-
Посмотрите описание команды CLI для изменения приватной подсети:
yc baremetal private-subnet update --help -
Получите идентификатор приватной подсети:
yc baremetal private-subnet list -
Посмотрите текущие настройки подсети:
yc baremetal private-subnet get <идентификатор_подсети>Сохраните значения
vrf_id,cidr,gateway_ip,dhcp_options.start_ipиdhcp_options.end_ipиз блокаvrf_options. Их нужно передать без изменений при настройке DNS. -
Если вы используете входящее DNS-подключение Cloud DNS, получите его идентификатор:
yc dns inbound-endpoint list -
Задайте DNS-настройки подсети:
yc baremetal private-subnet update <идентификатор_подсети> \ --update-mask vrf_options_spec \ --vrf-options-spec '{ vrf-id=<идентификатор_VRF>, cidr=<CIDR>, gateway-ip=<IP-адрес_шлюза>, dhcp-options={ start-ip=<начало_диапазона_IP-адресов>, end-ip=<конец_диапазона_IP-адресов>, dns-options={ servers=[ {server={dns-inbound-endpoint-id=<идентификатор_DNS-подключения>}} ], domain-name=example.internal } } }'Где:
-
<идентификатор_подсети>— идентификатор изменяемой приватной подсети. Обязательный параметр. -
--update-mask vrf_options_spec— обновляет только настройки маршрутизации и DHCP. Имя, описание и метки подсети не изменяются. -
--vrf-options-spec— настройки маршрутизации и DHCP. Вvrf-id,cidr,gateway-ip,start-ipиend-ipукажите сохраненные значения текущих настроек подсети. -
dns-options.servers— список DNS-серверов. Для каждого элементаserverукажите один из параметров:dns-inbound-endpoint-id— идентификатор входящего DNS-подключения.ip-address— IPv4-адрес собственного DNS-сервера. Например,{server={ip-address=192.168.10.2}}.
Всего можно указать до трех элементов, разделяя их запятыми. При изменении списка передайте все DNS-серверы, которые должны остаться в настройках.
-
dns-options.domain-name— поисковый домен. Необязательный параметр. Вместоexample.internalукажите свой домен или удалите параметр, если поисковый домен не нужен.
-
Настройки будут переданы на серверы при обновлении аренды DHCP, в течение пяти минут. Они применяются только на интерфейсах, для которых в ОС включено получение соответствующих параметров по DHCP.
Проверьте применение настроек
В примерах используется Ubuntu с systemd-resolved. Для других ОС воспользуйтесь средствами проверки сетевых настроек вашей операционной системы.
-
Подключитесь к KVM-консоли сервера или подключитесь к нему по SSH.
-
Узнайте имя приватного сетевого интерфейса:
ip -4 address -
Проверьте DNS-настройки интерфейса:
resolvectl status <имя_приватного_интерфейса>В поле
DNS Serversдолжны быть IP-адреса выбранных DNS-серверов. Если вы задали доменное имя и ОС применила его, оно появится в полеDNS Domain. -
Проверьте разрешение полного доменного имени ресурса:
resolvectl query <FQDN_ресурса>Если настроен поисковый домен и для ресурса существует DNS-запись в этом домене, проверьте также разрешение короткого имени:
resolvectl query <короткое_имя_ресурса>
Если ОС не применяет параметры DHCP
Если через пять минут новые параметры не появились, убедитесь, что для приватного интерфейса включен DHCP и ОС принимает DNS-серверы и доменное имя из DHCP-опций. Например, в Ubuntu с Netplansystemd-networkd в описании приватного интерфейса могут потребоваться следующие параметры:
dhcp4: true
dhcp4-overrides:
use-dns: true
use-domains: true
Параметр use-dns разрешает использовать DNS-серверы из DHCP-опции 6, а use-domains — применять поисковый домен. Для физического интерфейса параметры задаются в секции ethernets, для группы агрегирования MC-LAG — в секции bonds. Сохраните остальные параметры интерфейса.
Если конфигурацию сети формирует cloud-init или другая система управления, внесите изменения в постоянную конфигурацию этой системы: правки сгенерированного файла могут быть перезаписаны при перезагрузке сервера.
После изменения конфигурации Netplan проверьте ее:
sudo netplan try
Если конфигурация корректна, подтвердите изменения и повторите проверку с помощью resolvectl.
Если DNS-сервер не отвечает
Проверьте запрос непосредственно к настроенному DNS-серверу:
dig @<IP-адрес_DNS-сервера> <FQDN_ресурса>
Если ответ не приходит, проверьте сетевую связность, маршруты и правила фильтрации трафика. Для входящего DNS-подключения также проверьте, что оно находится в нужной облачной сети, а префикс его подсети анонсирован виртуальным маршрутизатором. Если приходит ответ NXDOMAIN, проверьте наличие записи и доступность нужной DNS-зоны для выбранного DNS-сервера.
Отключите выдачу DNS-настроек
Откройте приватную подсеть для редактирования, выключите опцию DNS-сервер и сохраните изменения. Отключать DHCP для этого не требуется.
Повторите команду изменения подсети, удалив из значения --vrf-options-spec блок dns-options. Сохраните остальные параметры, в том числе dhcp-options с текущими значениями start-ip и end-ip, чтобы DHCP продолжал выдавать IP-адреса.
Если вы собираетесь удалить входящее DNS-подключение, сначала исключите его из DNS-настроек всех приватных подсетей, которые его используют. Если в подсети остаются другие DNS-серверы, удалите только запись ненужного подключения из списка и сохраните изменения.