Настроить DNS в приватной сети выделенного сервера
Вы можете настроить DNS в приватных сетях выделенных серверов. Это позволит обращаться к серверам в приватной сети по доменным именам вместо IP-адресов.
Для настройки используется сервис Приватный DNS. Сервис работает на базе сетей облачной платформы, связь с сетями выделенных серверов осуществляется через глобальный роутер.
Настройка приватного DNS выполняется через API, для аутентификации запросов используется IAM-токен для проекта. Полный список API-методов для работы с сервисом смотрите в Private DNS API.
- Настройте приватный DNS в сети облачной платформы.
- Свяжите сеть выделенных серверов и сеть облачной платформы через глобальный роутер.
- Укажите IP-адреса DNS-серверов на выделенных серверах.
1. Настроить приватный DNS в сети облачной платформы
-
Если у вас еще нет приватной сети в облачной платформе, создайте приватную сеть. Сеть должна находиться в одном проекте с выделенными серверами, для которых вы хотите использовать приватный DNS.
-
Добавьте сервисного пользователя с ролью
member. -
Для добавленного сервисного пользователя получите IAM-токен для проекта.
-
Откройте CLI.
-
Создайте приватную зону с записями, для этого выполните 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>— значения записи.
-
-
Подключите приватную сеть к 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-резолвера из облачной сети.
Ubuntu
Debian
CentOS
Windows
-
Подключитесь к серверу по SSH или через KVM-консоль.
-
Откройте конфигурационный файл утилиты
netplanтекстовым редакторомvi:vi /etc/netplan/<netcfg>.yamlУкажите
<netcfg>— название конфигурационного файла утилитыnetplan, например50-cloud-init.yamlили01-netcfg.yaml. -
Укажите 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-адреса. -
Нажмите ESC.
-
Выйдите из текстового редактора
viс сохранением изменений::wq -
Примените конфигурацию:
netplan apply -
Опционально: перезагрузите сервер.
-
Подключитесь к серверу по SSH или через KVM-консоль.
-
Откройте конфигурационный файл сетевых интерфейсов текстовым редактором
vi:vi /etc/network/interfaces.d/50-cloud-init -
Укажите DNS-серверы для сетевого интерфейса приватной сети, которую вы связали с сетью облачной платформы. Для этого в блоке нужного интерфейса добавьте строку
dns-nameserversс IP-адресами DNS-резолвера. Например:auto eth0
iface eth0 inet static
address 192.168.0.3
dns-nameservers <dns_server_ip_address_1> <dns_server_ip_address_2>Укажите
<dns_server_ip_address_1>и<dns_server_ip_address_2>— IP-адреса DNS-резолвера. Адреса можно посмотреть в панели управления: в верхнем меню нажмите Продукты → Облачные серверы → Сеть → вкладка Приватные сети → откройте страницу сети → вкладка Порты → в карточке порта с пометкой DNS-резолвер посмотрите IP-адреса. -
Нажмите ESC.
-
Выйдите из текстового редактора
viс сохранением изменений::wq -
Перезапустите сеть:
service networking restart -
Опционально: перезагрузите сервер.
-
Подключитесь к серверу по SSH или через KVM-консоль.
-
Получите имя сетевого интерфейса приватной сети, для которого нужно указать DNS-серверы, для этого выведите информацию о сетевых интерфейсах:
ip address -
Создайте или откройте конфигурационный файл сетевого интерфейса приватной сети текстовым редактором
vi:vi /etc/sysconfig/network-scripts/ifcfg-<eth_name>Укажите
<eth_name>— имя сетевого интерфейса приватной сети, которое вы получили на шаге 2. -
Укажите DNS-серверы для сетевого интерфейса приватной сети, которую вы связали с сетью облачной платформы. Для этого в блоке нужного интерфейса добавьте строки с IP-адресами DNS-резолвера. Например:
NAME="eth0"
ONBOOT=yes
BOOTPROTO=none
IPADDR="192.168.0.3"
DNS1=<dns_server_ip_address_1>
DNS2=<dns_server_ip_address_2>Укажите
<dns_server_ip_address_1>и<dns_server_ip_address_2>— IP-адреса DNS-резолвера. Адреса можно посмотреть в панели управления: в верхнем меню нажмите Продукты → Облачные серверы → Сеть → вкладка Приватные сети → откройте страницу сети → вкладка Порты → в карточке порта с пометкой DNS-резолвер посмотрите IP-адреса. -
Нажмите ESC.
-
Выйдите из текстового редактора
viс сохранением изменений::wq -
Перезапустите сеть:
systemctl restart network -
Опционально: перезагрузите сервер.
-
Подключитесь к серверу по RDP или через KVM-консоль.
-
Откройте Windows Settings.
-
Откройте Network & Internet.
-
Откройте Network and Sharing Center.
-
Откройте сетевой интерфейс приватной сети.
-
Нажмите Properties.
-
В списке выберите Internet Protocol version 4 (TCP/IPv4).
-
Нажмите Properties.
-
Выберите Use the following DNS server addresses.
-
В полях Preferred DNS server и Alternate DNS server введите IP-адреса DNS-резолвера. Адреса можно посмотреть в панели управления: в верхнем меню нажмите Продукты → Облачные серверы → Сеть → вкладка Приватные сети → откройте страницу сети → вкладка Порты → в карточке порта с пометкой DNS-резолвер посмотрите IP-адреса.
-
Нажмите OK.
-
Опционально: перезагрузите сервер.