Установка пирингового подключения между виртуальными сетями с помощью PowerShell
Виртуальные сети можно подключить друг к другу с помощью пиринговой связи. После установки пиринговой связи ресурсы в обеих виртуальных сетях могут взаимодействовать друг с другом с такой же задержкой и пропускной способностью, как если бы эти ресурсы находились в одной виртуальной сети. Вы узнаете, как выполнять следующие задачи:
- создание двух виртуальных сетей;
- соединение двух виртуальных сетей с помощью пиринговой связи;
- развертывание виртуальной машины в каждой из виртуальных сетей;
- Взаимодействие между виртуальными машинами
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Azure Cloud Shell
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Вариант | Пример и ссылка |
---|---|
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Чтобы установить и использовать PowerShell локально для работы с этой статьей, вам понадобится модуль Azure PowerShell 1.0.0 или более поздней версии. Выполните командлет Get-Module -ListAvailable Az
, чтобы узнать установленную версию. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. Если модуль PowerShell запущен локально, необходимо также выполнить командлет Connect-AzAccount
, чтобы создать подключение к Azure.
Создание виртуальных сетей
Перед созданием виртуальной сети необходимо создать для нее группу ресурсов и другие компоненты, указанные в этой статье. Создайте группу ресурсов с помощью командлета New-AzResourceGroup. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.
New-AzResourceGroup -ResourceGroupName myResourceGroup -Location EastUS
Создайте виртуальную сеть с помощью командлета New-AzVirtualNetwork. В следующем примере создается виртуальная сеть с именем myVirtualNetwork1 и префиксом адреса 10.0.0.0/16.
$virtualNetwork1 = New-AzVirtualNetwork `
-ResourceGroupName myResourceGroup `
-Location EastUS `
-Name myVirtualNetwork1 `
-AddressPrefix 10.0.0.0/16
Создайте конфигурацию подсети с помощью Add-AzVirtualNetworkSubnetConfig. В следующем примере создается конфигурация подсети с префиксом адреса 10.0.0.0/24:
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
-Name Subnet1 `
-AddressPrefix 10.0.0.0/24 `
-VirtualNetwork $virtualNetwork1
Запишите конфигурацию подсети в виртуальную сеть с помощью командлета Set-AzVirtualNetwork, который создает подсеть.
$virtualNetwork1 | Set-AzVirtualNetwork
Создайте виртуальную сеть с префиксом адреса 10.1.0.0/16 и одной подсетью:
# Create the virtual network.
$virtualNetwork2 = New-AzVirtualNetwork `
-ResourceGroupName myResourceGroup `
-Location EastUS `
-Name myVirtualNetwork2 `
-AddressPrefix 10.1.0.0/16
# Create the subnet configuration.
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
-Name Subnet1 `
-AddressPrefix 10.1.0.0/24 `
-VirtualNetwork $virtualNetwork2
# Write the subnet configuration to the virtual network.
$virtualNetwork2 | Set-AzVirtualNetwork
Одноранговые виртуальные сети
Создайте пиринг с помощью командлета Add-AzVirtualNetworkPeering. В следующем примере создается пиринговая связь между сетями myVirtualNetwork1 и myVirtualNetwork2.
Add-AzVirtualNetworkPeering `
-Name myVirtualNetwork1-myVirtualNetwork2 `
-VirtualNetwork $virtualNetwork1 `
-RemoteVirtualNetworkId $virtualNetwork2.Id
В выходных данных, возвращенных после выполнения предыдущей команды, для состояния пиринга будет отображаться значение Инициировано. Состояние Инициировано не изменится, пока не будет создан пиринг сети myVirtualNetwork2 с сетью myVirtualNetwork1. Установите пиринговую связь сети myVirtualNetwork2 с сетью myVirtualNetwork1.
Add-AzVirtualNetworkPeering `
-Name myVirtualNetwork2-myVirtualNetwork1 `
-VirtualNetwork $virtualNetwork2 `
-RemoteVirtualNetworkId $virtualNetwork1.Id
В выходных данных, возвращенных после выполнения предыдущей команды, для состояния пиринга будет отображаться значение Подключено. Одновременно с этим Azure установит значение Подключено и для первого пиринга myVirtualNetwork1-myVirtualNetwork2. Убедитесь, что состояние пиринга для myVirtualNetwork1 myVirtualNetwork2 изменено на Подключено, с помощью командлета Get-AzVirtualNetworkPeering.
Get-AzVirtualNetworkPeering `
-ResourceGroupName myResourceGroup `
-VirtualNetworkName myVirtualNetwork1 `
| Select PeeringState
Ресурсы одной виртуальной сети не могут взаимодействовать с ресурсами другой виртуальной сети, пока состояние пиринга для обеих виртуальных сетей не будет иметь значение Подключено.
Создание виртуальных машин
Создайте виртуальную машину в каждой виртуальной сети, чтобы на следующем шаге организовать взаимодействие между такими машинами.
Создание первой виртуальной машины
Создайте виртуальную машину с помощью команды New-AzVM. В приведенном ниже примере в виртуальной сети myVirtualNetwork1 создается виртуальная машина с именем myVm1. Чтобы можно было перейти к следующему шагу, параметр -AsJob
позволяет создать виртуальную машину в фоновом режиме. Когда появится запрос, введите имя пользователя и пароль, которые вы будете использовать для входа на виртуальную машину.
New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Location "East US" `
-VirtualNetworkName "myVirtualNetwork1" `
-SubnetName "Subnet1" `
-ImageName "Win2016Datacenter" `
-Name "myVm1" `
-AsJob
Создание второй виртуальной машины
New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Location "East US" `
-VirtualNetworkName "myVirtualNetwork2" `
-SubnetName "Subnet1" `
-ImageName "Win2016Datacenter" `
-Name "myVm2"
Создание виртуальной машины занимает несколько минут. Не выполняйте следующие шаги, пока в Azure не будет создана виртуальная машина и не будут возвращены выходные данные в PowerShell.
Примечание.
Azure предоставляет IP-адрес исходящего доступа по умолчанию для виртуальных машин, которые либо не назначены общедоступным IP-адресом, либо находятся в серверном пуле внутренней подсистемы балансировки нагрузки Azure. Механизм IP-адреса исходящего трафика по умолчанию предоставляет исходящий IP-адрес, который нельзя настроить.
IP-адрес исходящего доступа по умолчанию отключен при возникновении одного из следующих событий:
- Общедоступный IP-адрес назначается виртуальной машине.
- Виртуальная машина размещается в серверном пуле стандартной подсистемы балансировки нагрузки с правилами исходящего трафика или без нее.
- Ресурс шлюза NAT Azure назначается подсети виртуальной машины.
Виртуальные машины, созданные с помощью масштабируемых наборов виртуальных машин в гибком режиме оркестрации, не имеют исходящего доступа по умолчанию.
Дополнительные сведения об исходящих подключениях в Azure см. в статье об исходящем доступе по умолчанию в Azure и использовании преобразования исходящих сетевых адресов (SNAT) для исходящих подключений.
Взаимодействие между виртуальными машинами
Вы можете подключиться к общедоступному IP-адресу виртуальной машины через Интернет. Чтобы получить общедоступный IP-адрес виртуальной машины, выполните командлет Get-AzPublicIpAddress. Приведенный ниже пример возвращает общедоступный IP-адрес виртуальной машины myVm1:
Get-AzPublicIpAddress `
-Name myVm1 `
-ResourceGroupName myResourceGroup | Select IpAddress
На локальном компьютере выполните следующую команду для создания сеанса удаленного рабочего стола с виртуальной машиной myVm1. Замените <publicIpAddress>
IP-адресом, полученным от предыдущей команды.
mstsc /v:<publicIpAddress>
Будет создан файл протокола удаленного рабочего стола (RDP-файл). Он будет скачан на ваш компьютер и открыт. Введите имя пользователя и пароль, а затем нажмите кнопку ОК. Возможно, понадобится выбрать More choices (Дополнительные варианты) и Use a different account (Использовать другую учетную запись), чтобы указать учетные данные, введенные при создании виртуальной машины. При входе в систему может появиться предупреждение о сертификате. Чтобы продолжить процесс подключения, нажмите кнопку Да или Продолжить.
На виртуальной машине myVm1 с помощью PowerShell разрешите протокол ICMP в брандмауэре Windows, чтобы на следующем шаге нормально работала проверка связи с виртуальной машины myVm2:
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
Хотя проверка связи используется в этой статье для взаимодействия между виртуальными машинами, мы не рекомендуем разрешать протокол ICMP в брандмауэре Windows в рабочей среде.
Для подключения к виртуальной машине myVm2 введите следующую команду в командной строке на виртуальной машине myVm1:
mstsc /v:10.1.0.4
Так как вы включили проверку связи на виртуальной машине myVm1, теперь можно проверить связь с ней с помощью IP-адреса из командной строки на виртуальной машине myVm2:
ping 10.0.0.4
Вы получите четыре ответа. Отключите RDP-сеансы с myVm1 и myVm2.
Очистка ресурсов
Вы можете удалить ненужную группу ресурсов и все содержащиеся в ней ресурсы с помощью командлета Remove-AzResourceGroup.
Remove-AzResourceGroup -Name myResourceGroup -Force
Следующие шаги
Из этой статьи вы узнали, как с помощью пиринга соединить две виртуальные сети в одном регионе Azure. Пиринг можно использовать и для подключения виртуальных сетей из разных поддерживаемых регионов или разных подписок Azure, а также для создания звездообразной топологии сети. Чтобы узнать больше о пиринге виртуальных сетей, ознакомьтесь с разделами Пиринг между виртуальными сетями и Создание, изменение и удаление пиринга в виртуальной сети.
Теперь вы можете подключить свой компьютер к виртуальной сети через VPN и взаимодействовать с ресурсами в виртуальной сети или в виртуальных сетях, соединенных пиринговой связью. Примеры сценариев для многократного использования, с помощью которых можно выполнять многие задачи, описанные в статьях о виртуальных сетях, можно найти здесь.