Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure provides name resolution for virtual machines (VMs) and role instances. Если разрешение имен превышает возможности, предоставляемые системой доменных имен Azure по умолчанию (DNS), вы можете предоставить собственные DNS-серверы. Использование собственных DNS-серверов дает возможность настроить решение DNS в соответствии с конкретными потребностями. Например, может потребоваться доступ к локальным ресурсам через контроллер домена Active Directory.
Когда пользовательские DNS-серверы размещаются в качестве виртуальных машин Azure, вы можете пересылать запросы имени узла для той же виртуальной сети в Azure, чтобы разрешить имена узлов. Если вы не хотите использовать этот параметр, вы можете зарегистрировать имена узлов виртуальной машины на DNS-сервере с помощью динамического DNS-сервера (DDNS). Azure не может (не имеет учетных данных) регистрировать записи непосредственно на DNS-серверах, поэтому часто требуется прибегать к альтернативным вариантам. В этой статье описываются некоторые распространенные сценарии с альтернативными вариантами.
Клиенты Windows
Клиенты Windows, не присоединенные к домену, пытаются выполнить незащищенные обновления DDNS при загрузке или при изменении IP-адреса. DNS-именем является имя узла и основной DNS-суффикс. Azure оставляет основной DNS-суффикс пустым, но вы можете определить его на виртуальной машине с помощью пользовательского интерфейса или PowerShell.
Входящие в домен клиенты Windows регистрируют свои IP-адреса на контроллере домена, используя защищенную службу DDNS. Процесс присоединения к домену задает основной DNS-суффикс на стороне клиента, создавая и поддерживая отношение доверия.
Клиенты Linux
Клиенты Linux обычно не регистрируются на DNS-сервере при запуске. Предполагается, что сервер динамической конфигурации узла (DHCP) выполняет его. У DHCP-серверов Azure нет учетных данных для регистрации записей на DNS-сервере. Для отправки обновлений DDNS можно использовать инструмент nsupdate
, который входит в пакет Bind. Так как протокол DDNS стандартизирован, вы можете использовать nsupdate
даже если вы не используете Bind на DNS-сервере.
Для создания и поддержания записи имени хоста на DNS-сервере, вы можете использовать хуки, предоставляемые DHCP-клиентом. Во время цикла DHCP клиент выполняет скрипты в /etc/dhcp/dhclient-exit-hooks.d/
. Вы можете использовать хуки для регистрации нового IP-адреса, используя nsupdate
. Например:
#!/bin/sh
requireddomain=contoso.com
# only execute on the primary nic
if [ "$interface" != "eth0" ]
then
return
fi
# When you have a new IP, perform nsupdate
if [ "$reason" = BOUND ] || [ "$reason" = RENEW ] ||
[ "$reason" = REBIND ] || [ "$reason" = REBOOT ]
then
host=`hostname`
nsupdatecmds=/var/tmp/nsupdatecmds
echo "update delete $host.$requireddomain a" > $nsupdatecmds
echo "update add $host.$requireddomain 3600 a $new_ip_address" >> $nsupdatecmds
echo "send" >> $nsupdatecmds
nsupdate $nsupdatecmds
fi
Для выполнения безопасных обновлений DDNS можно также использовать команду nsupdate
. Например, при использовании DNS-сервера Bind создается пара открытого и закрытого ключей (http://linux.yyz.us/nsupdate/
). DNS-сервер настроен (http://linux.yyz.us/dns/ddns-server.html
) с открытой частью ключа, чтобы проверить подпись в запросе. Чтобы предоставить пару ключей nsupdate
, используйте параметр -k
, чтобы запрос на обновление DDNS был подписан.
When you use a Windows DNS server, you can use Kerberos authentication with the -g
parameter in nsupdate
, but it isn't available in the Windows version of nsupdate
. Чтобы использовать Kerberos, воспользуйтесь kinit
для загрузки учетных данных. For example, you can load credentials from a keytab file), and then nsupdate -g
picks up the credentials from the cache.
При необходимости в виртуальные машины можно добавить суффикс поиска DNS. Суффикс DNS указан в /etc/resolv.conf
файле. Большинство дистрибутивов Linux управляет содержимым этого файла автоматически, поэтому его обычно нельзя изменить. Суффикс можно переопределить с помощью команды DHCP-клиента supersede
. Чтобы переопределить суффикс, добавьте в файл следующую строку /etc/dhcp/dhclient.conf
:
supersede domain-name <required-dns-suffix>;