Поделиться через


Краткое руководство: создание частной зоны DNS Azure с помощью Azure CLI

В этом кратком руководстве описаны шаги по созданию первой частной зоны DNS и записи с помощью Azure CLI.

Зона DNS используется для размещения записей DNS для определенного домена. Чтобы разместить свой домен в Azure DNS, необходимо создать зону DNS для этого доменного имени. Каждая запись DNS для вашего домена создается внутри этой зоны DNS. Чтобы опубликовать частную зону DNS в вашей виртуальной сети, укажите список виртуальных сетей, которым разрешено разрешать записи в зоне. Они называются связанными виртуальными сетями. При включении автоматической регистрации Azure DNS также обновляет записи зоны при создании виртуальной машины, изменении IP-адреса или удалении.

Сводная схема настройки быстрого запуска.

Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.

Предпосылки

  • Вы можете также воспользоваться Azure PowerShell для выполнения этого краткого руководства.

Создание группы ресурсов

Сначала нужно создать группу ресурсов, которая будет включать зону DNS.

az group create --name MyAzureResourceGroup --location "East US"

Создание частной зоны DNS

В следующем примере создается виртуальная сеть с именем myAzureVNet. Затем создается зона DNS с именем private.contoso.com в группе ресурсов MyAzureResourceGroup, которая связывает зону DNS с виртуальной сетью MyAzureVnet и включает автоматическую регистрацию.

az network vnet create \
  --name myAzureVNet \
  --resource-group MyAzureResourceGroup \
  --location eastus \
  --address-prefix 10.2.0.0/16 \
  --subnet-name backendSubnet \
  --subnet-prefixes 10.2.0.0/24

az network vnet subnet create \
  --vnet-name myAzureVNet \
  --resource-group MyAzureResourceGroup \
  --name AzureBastionSubnet \
  --address-prefix 10.2.1.0/26

az network private-dns zone create \
  --resource-group MyAzureResourceGroup \
  --name private.contoso.com

az network private-dns link vnet create \
  --resource-group MyAzureResourceGroup \
  --name MyDNSLink \
  --zone-name private.contoso.com \
  --virtual-network myAzureVNet \
  --registration-enabled true

Если вы хотите создать зону только для разрешения доменных имен (без автоматической регистрации имени узла), можно использовать параметр --registration-enabled false.

Список частных зон DNS

Чтобы перечислить зоны DNS, используйте az network private-dns zone list. Чтобы получить справку, см. az network dns zone list --help.

Указание группы ресурсов содержит только те зоны в группе ресурсов:

az network private-dns zone list \
  --resource-group MyAzureResourceGroup

Если не указывать группу ресурсов, отображаются все зоны в подписке.

az network private-dns zone list 

Развертывание Бастиона Azure

Бастион Azure использует браузер для подключения к виртуальным машинам в виртуальной сети через безопасную оболочку (SSH) или протокол удаленного рабочего стола (RDP) с помощью частных IP-адресов. Виртуальные машины не нуждаются в общедоступных IP-адресах, клиентском программном обеспечении или специальной конфигурации. Дополнительные сведения о Бастионе Azure см. в статье Бастион Azure.

Замечание

Почасовая тарификация начинается с момента развертывания Бастиона, независимо от объема исходящего трафика. Дополнительные сведения см. в разделе "Цены и номера SKU". Если вы развертываете Бастион в рамках руководства или теста, рекомендуется удалить этот ресурс после завершения работы с ним.

Создайте общедоступный IP-адрес для узла Бастиона Azure с помощью az network public-ip create.

az network public-ip create \
  --resource-group MyAzureResourceGroup \
  --name public-ip-bastion \
  --location eastus \
  --allocation-method Static \
  --sku Standard

Создайте узел Azure Bastion с помощью az network bastion create. Бастион Azure используется для безопасного подключения к виртуальным машинам, не предоставляя их общедоступному Интернету.

az network bastion create \
  --resource-group MyAzureResourceGroup \
  --name bastion \
  --vnet-name myAzureVNet \
  --public-ip-address public-ip-bastion \
  --location eastus \
  --sku Basic \
  --no-wait

Создание тестовых виртуальных машин

Теперь создайте две виртуальные машины, чтобы иметь возможность проверить частную зону DNS.

az vm create \
  --name myVM01 \
  --admin-username AzureAdmin \
  --resource-group MyAzureResourceGroup \
  --location eastus \
  --subnet backendSubnet \
  --vnet-name myAzureVnet \
  --image win2016datacenter \
  --public-ip-address ""
az vm create \
  --name myVM02 \
  --admin-username AzureAdmin \
  --resource-group MyAzureResourceGroup \
  --location eastus \
  --subnet backendSubnet \
  --vnet-name myAzureVnet \
  --image win2016datacenter \
  --public-ip-address ""

Создание виртуальной машины займет несколько минут.

Создание дополнительной записи DNS

Чтобы создать запись DNS, используйте az network private-dns record-set [record type] add-record команду. Дополнительные сведения о добавлении записей A см. в разделе az network private-dns record-set A add-record --help.

В следующем примере создается запись с относительным именем db в зоне DNS private.contoso.com в группе ресурсов MyAzureResourceGroup. Полное доменное имя набора записей — db.private.contoso.com. Тип записи — "A", с IP-адресом "10.2.0.4".

az network private-dns record-set a add-record \
  --resource-group MyAzureResourceGroup \
  --zone-name private.contoso.com \
  --record-set-name db \
  --ipv4-address 10.2.0.4

Просмотр записей DNS

Чтобы просмотреть список записей DNS в зоне, используйте следующую команду:

az network private-dns record-set list \
  --resource-group MyAzureResourceGroup \
  --zone-name private.contoso.com

Проверка частной зоны

Теперь вы можете проверить разрешение имени для частной зоны private.contoso.com.

Настройка виртуальных машин для получения входящего ICMP-трафика

Можно использовать команду ping для проверки разрешения имён. Для этого настройте брандмауэр для обеих виртуальных машин, чтобы получать входящие пакеты ICMP.

  1. На портале Azure найдите и выберите Виртуальные машины.

  2. Выберите myVM01.

  3. В разделе Обзор выберите Подключить>Подключение через Bastion.

  4. Введите имя пользователя и пароль, созданные при развертывании виртуальной машины, а затем нажмите кнопку "Подключить".

  5. Откройте окно Windows PowerShell и выполните следующую команду:

    New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
    
  6. Закройте подключение Бастиона к myVM01 и повторите предыдущие шаги, чтобы подключиться к myVM02.

Проверка связи с виртуальными машинами по имени

  1. В подключении через myVM02 Bastion откройте командную строку Windows PowerShell и пингуйте myVM01, используя автоматически зарегистрированное имя хоста:

    ping myVM01.private.contoso.com
    

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

    PS C:\> ping myvm01.private.contoso.com
    
    Pinging myvm01.private.contoso.com [10.2.0.4] with 32 bytes of data:
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time=1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    
    Ping statistics for 10.2.0.4:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = 1ms, Average = 0ms
    PS C:\>
    
  2. Теперь выполните команду ping для имени db, созданного ранее.

    ping db.private.contoso.com
    

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

    PS C:\> ping db.private.contoso.com
    
    Pinging db.private.contoso.com [10.2.0.4] with 32 bytes of data:
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.2.0.4: bytes=32 time<1ms TTL=128
    
    Ping statistics for 10.2.0.4:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = 0ms, Average = 0ms
    PS C:\>
    

Очистка ресурсов

При отсутствии необходимости удалите группу ресурсов MyAzureResourceGroup , чтобы удалить ресурсы, созданные в этом кратком руководстве.

az group delete --name MyAzureResourceGroup

Дальнейшие действия