Краткое руководство. Создание виртуальной сети с помощью PowerShell

Виртуальная сеть позволяет ресурсам Azure, таким как виртуальные машины, обмениваться данными в частном порядке и взаимодействовать через Интернет.

Из этого краткого руководства вы узнаете, как создать виртуальную сеть. Создав виртуальную сеть, разверните в ней две виртуальные машины. Затем вы подключитесь к виртуальным машинам из Интернета и установите частную связь через виртуальную сеть.

Предварительные требования

  • Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно.
  • Локальная установка Azure PowerShell или Azure Cloud Shell

Чтобы установить и использовать PowerShell локально, для работы с этой статьей вам понадобится модуль Azure PowerShell 5.4.1 или более поздней версии. Выполните командлет Get-Module -ListAvailable Az, чтобы узнать установленную версию. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. При использовании PowerShell на локальном компьютере также нужно запустить Connect-AzAccount, чтобы создать подключение к Azure.

Создание группы ресурсов и виртуальной сети

Для настройки группы ресурсов и виртуальной сети необходимо выполнить несколько шагов.

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

Перед созданием виртуальной сети необходимо создать группу ресурсов, которая будет содержать эту виртуальную сеть. Создайте группу ресурсов с помощью командлета New-AzResourceGroup. В этом примере создается группа ресурсов с именем CreateVNetQS-rg в расположении EastUS:

$rg = @{
    Name = 'CreateVNetQS-rg'
    Location = 'EastUS'
}
New-AzResourceGroup @rg

Создание виртуальной сети

Создайте виртуальную сеть с помощью командлета New-AzVirtualNetwork. В этом примере создается виртуальная сеть по умолчанию myVNet в расположении EastUS:

$vnet = @{
    Name = 'myVNet'
    ResourceGroupName = 'CreateVNetQS-rg'
    Location = 'EastUS'
    AddressPrefix = '10.0.0.0/16'    
}
$virtualNetwork = New-AzVirtualNetwork @vnet

Добавление подсети

Azure развертывает ресурсы в подсети виртуальной сети, поэтому необходимо создать подсеть. Создайте конфигурации подсети с именем default с помощью командлета Add-AzVirtualNetworkSubnetConfig:

$subnet = @{
    Name = 'default'
    VirtualNetwork = $virtualNetwork
    AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet

Связка подсети с виртуальной сетью

Вы можете записать конфигурацию подсети в виртуальную сеть с помощью командлета Set-AzVirtualNetwork. Эта команда создает подсеть:

$virtualNetwork | Set-AzVirtualNetwork

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

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

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

Создайте первую виртуальную машину с помощью командлета New-AzVM. При запуске приведенной ниже команды запрашиваются учетные данные. Введите имя пользователя и пароль виртуальной машины:

$vm1 = @{
    ResourceGroupName = 'CreateVNetQS-rg'
    Location = 'EastUS'
    Name = 'myVM1'
    VirtualNetworkName = 'myVNet'
    SubnetName = 'default'
}
New-AzVM @vm1 -AsJob

Параметр -AsJob создает виртуальную машину в фоновом режиме. Перейдите к следующему шагу.

Когда Azure начнет создание виртуальной машины в фоновом режиме, вы получите результат, аналогичный следующему:

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      Long Running... AzureLongRun... Running       True            localhost            New-AzVM

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

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

$vm2 = @{
    ResourceGroupName = 'CreateVNetQS-rg'
    Location = 'EastUS'
    Name = 'myVM2'
    VirtualNetworkName = 'myVNet'
    SubnetName = 'default'
}
New-AzVM @vm2

Вам нужно будет создать другого пользователя и пароль. Создание виртуальной машины в Azure занимает несколько минут.

Важно!

Не переходите к следующему шагу, пока Azure не закончит создание виртуальной машины. Процесс создания закончится, когда выходные данные будут возвращены в PowerShell.

Примечание

Azure предоставляет IP-адрес исходящего трафика по умолчанию для виртуальных машин, которым не назначен общедоступный IP-адрес или которые находятся в серверном пуле внутренней подсистемы балансировки нагрузки Azure ценовой категории "Базовый". Механизм IP-адреса исходящего трафика по умолчанию предоставляет исходящий IP-адрес, который нельзя настроить.

Дополнительные сведения см. в статье Исходящий доступ по умолчанию в Azure.

IP-адрес исходящего трафика по умолчанию отключается, когда виртуальной машине назначается общедоступный IP-адрес или когда виртуальная машина помещается в серверный пул подсистем балансировки нагрузки ценовой категории "Стандартный" с правилами для исходящего трафика или без них. Если подсети виртуальной машины назначен ресурс шлюза для преобразования сетевых адресов (NAT) в виртуальной сети Azure, IP-адрес исходящего трафика по умолчанию отключается.

На виртуальных машинах, созданных с помощью масштабируемых наборов виртуальных машин в режиме гибкой оркестрации, исходящий доступ по умолчанию не предоставляется.

Дополнительные сведения об исходящих подключениях в Azure см. в статье Преобразование исходных сетевых адресов (SNAT) для исходящих подключений.

Подключение к виртуальной машине из Интернета

Чтобы получить его, выполните командлет Get-AzPublicIpAddress.

Приведенный ниже пример возвращает общедоступный IP-адрес виртуальной машины myVM1:

$ip = @{
    Name = 'myVM1'
    ResourceGroupName = 'CreateVNetQS-rg'
}
Get-AzPublicIpAddress @ip | select IpAddress

Откройте командную строку на локальном компьютере. Выполните команду mstsc. Замените <publicIpAddress> общедоступным IP-адресом, полученным на последнем шаге:

Примечание

Если вы выполняли эти команды в командной строке PowerShell на локальном компьютере и используете модуль Az PowerShell 1.0 или более поздней версии, можете продолжить работу в этом интерфейсе.

mstsc /v:<publicIpAddress>
  1. При появлении запроса выберите Подключиться.

  2. Введите имя пользователя и пароль, указанные при создании виртуальной машины.

    Примечание

    Возможно, потребуется выбрать More choices>Use a different account (Дополнительные варианты > Использовать другую учетную запись), чтобы указать учетные данные, введенные при создании виртуальной машины.

  3. Щелкните ОК.

  4. Вы можете получить предупреждение о сертификате. В таком случае выберите Да или Продолжить.

Взаимодействие между виртуальными машинами

  1. На удаленном рабочем столе myVM1 откройте PowerShell.

  2. Введите ping myVM2.

    Вы получите ответное сообщение, похожее на это:

    PS C:\Users\myVM1> ping myVM2
    
    Pinging myVM2.ovvzzdcazhbu5iczfvonhg2zrb.bx.internal.cloudapp.net
    Request timed out.
    Request timed out.
    Request timed out.
    Request timed out.
    
    Ping statistics for 10.0.0.5:
        Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
    

    Проверка связи завершилась ошибкой, так как в ней используется протокол ICMP. По умолчанию ICMP запрещен брандмауэром Windows.

  3. Чтобы разрешить виртуальной машине myVM2 проверять связь с myVM1 на дальнейшем этапе, введите следующую команду:

    New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
    

    Эта команда разрешает входящий трафик ICMP через брандмауэр Windows.

  4. Закройте подключение к удаленному рабочему столу myVM1.

  5. Повторите шаги, приведенные в разделе Подключение к виртуальной машине из Интернета. На этот раз подключитесь к myVM2.

  6. В командной строке на виртуальной машине myVM2 введите ping myVM1.

    Вы получите ответное сообщение, похожее на это:

    C:\windows\system32>ping myVM1
    
    Pinging myVM1.e5p2dibbrqtejhq04lqrusvd4g.bx.internal.cloudapp.net [10.0.0.4] with 32 bytes of data:
    Reply from 10.0.0.4: bytes=32 time=2ms TTL=128
    Reply from 10.0.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.0.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.0.0.4: bytes=32 time<1ms TTL=128
    
    Ping statistics for 10.0.0.4:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = 2ms, Average = 0ms
    

    Вы получите ответы от myVM1, так как на предыдущем шаге разрешили использовать ICMP через брандмауэр Windows на виртуальной машине myVM1.

  7. Закройте подключение к удаленному рабочему столу myVM2.

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

После завершения работы с виртуальной сетью и виртуальными машинами удалите группу ресурсов и все содержащиеся в ней ресурсы с помощью командлета Remove-AzResourceGroup:

Remove-AzResourceGroup -Name 'CreateVNetQS-rg' -Force

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

В этом кратком руководстве:

  • Вы создали виртуальную сеть по умолчанию и две виртуальные машины.
  • Затем вы подключились к одной виртуальной машине из Интернета и установили частную связь между двумя виртуальными машинами.

Частный обмен данными между виртуальными машинами не ограничен в виртуальной сети.

Перейдите к следующей статье, чтобы узнать больше о настройке различных типов сетевого взаимодействия с виртуальными машинами: