Установка пирингового подключения между виртуальными сетями с помощью PowerShellConnect virtual networks with virtual network peering using PowerShell

Примечание

Эта статья была изменена и теперь содержит сведения о новом модуле Az для Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Вы по-прежнему можете использовать модуль AzureRM, исправления ошибок для которого будут продолжать выпускаться как минимум до декабря 2020 г.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Дополнительные сведения о совместимости модуля Az с AzureRM см. в статье Introducing the new Azure PowerShell Az module (Знакомство с новым модулем Az для Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Инструкции по установке модуля Az см. в статье об установке Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Виртуальные сети можно подключить друг к другу с помощью пиринговой связи.You can connect virtual networks to each other with virtual network peering. После установки пиринговой связи ресурсы в обеих виртуальных сетях могут взаимодействовать друг с другом с такой же задержкой и пропускной способностью, как если бы эти ресурсы находились в одной виртуальной сети.Once virtual networks are peered, resources in both virtual networks are able to communicate with each other, with the same latency and bandwidth as if the resources were in the same virtual network. В этой статье раскрываются следующие темы:In this article, you learn how to:

  • создание двух виртуальных сетей;Create two virtual networks
  • соединение двух виртуальных сетей с помощью пиринговой связи;Connect two virtual networks with a virtual network peering
  • развертывание виртуальной машины в каждой из виртуальных сетей;Deploy a virtual machine (VM) into each virtual network
  • Взаимодействие между виртуальными машинамиCommunicate between VMs

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.If you don't have an Azure subscription, create a free account before you begin.

Использование Azure Cloud ShellUse Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Для работы со службами Azure в Cloud Shell можно использовать bash и PowerShell.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Чтобы запустить Azure Cloud Shell, выполните следующие действия:To launch Azure Cloud Shell:

ПараметрOption Пример и ссылкаExample/Link
Нажмите кнопку Попробовать в правом верхнем углу блока с кодом.Select Try It in the upper-right corner of a code block. При нажатии кнопки Попробовать код не копируется в Cloud Shell автоматически.Selecting Try It doesn't automatically copy the code to Cloud Shell. Открытие Azure Cloud Shell с помощью кнопки "Попробовать"
Перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell, чтобы открыть Cloud Shell в браузере.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Запуск Cloud Shell в новом окнеLaunch Cloud Shell in a new window
На портале Azure в правом верхнем углу в строке меню нажмите кнопку Cloud Shell.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Кнопка "Cloud Shell" на портале Azure

Чтобы выполнить код из этой статьи в Azure Cloud Shell, выполните следующие действия:To run the code in this article in Azure Cloud Shell:

  1. Запустите Cloud Shell.Launch Cloud Shell.

  2. В блоке кода нажмите кнопку Копировать, чтобы скопировать код.Select the Copy button on a code block to copy the code.

  3. Вставьте код в окно сеанса Cloud Shell, нажав клавиши Ctrl+Shift+V в Windows и Linux или Cmd+Shift+V в macOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.

  4. Нажмите клавишу ВВОД, чтобы выполнить код.Press Enter to run the code.

Чтобы установить и использовать PowerShell локально для работы с этой статьей, вам понадобится модуль Azure PowerShell 1.0.0 или более поздней версии.If you choose to install and use PowerShell locally, this article requires the Azure PowerShell module version 1.0.0 or later. Выполните командлет Get-Module -ListAvailable Az, чтобы узнать установленную версию.Run Get-Module -ListAvailable Az to find the installed version. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell.If you need to upgrade, see Install Azure PowerShell module. Если модуль PowerShell запущен локально, необходимо также выполнить командлет Connect-AzAccount, чтобы создать подключение к Azure.If you are running PowerShell locally, you also need to run Connect-AzAccount to create a connection with Azure.

Создание виртуальных сетейCreate virtual networks

Перед созданием виртуальной сети необходимо создать для нее группу ресурсов и другие компоненты, указанные в этой статье.Before creating a virtual network, you have to create a resource group for the virtual network, and all other resources created in this article. Создайте группу ресурсов с помощью командлета New-AzResourceGroup.Create a resource group with New-AzResourceGroup. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.The following example creates a resource group named myResourceGroup in the eastus location.

New-AzResourceGroup -ResourceGroupName myResourceGroup -Location EastUS

Создайте виртуальную сеть с помощью командлета New-AzVirtualNetwork.Create a virtual network with New-AzVirtualNetwork. В следующем примере создается виртуальная сеть с именем myVirtualNetwork1 и префиксом адреса 10.0.0.0/16.The following example creates a virtual network named myVirtualNetwork1 with the address prefix 10.0.0.0/16.

$virtualNetwork1 = New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroup `
  -Location EastUS `
  -Name myVirtualNetwork1 `
  -AddressPrefix 10.0.0.0/16

Создайте конфигурацию подсети с New AzVirtualNetworkSubnetConfig.Create a subnet configuration with New-AzVirtualNetworkSubnetConfig. В следующем примере создается конфигурация подсети с префиксом адреса 10.0.0.0/24:The following example creates a subnet configuration with a 10.0.0.0/24 address prefix:

$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
  -Name Subnet1 `
  -AddressPrefix 10.0.0.0/24 `
  -VirtualNetwork $virtualNetwork1

Запишите конфигурацию подсети в виртуальную сеть с AzVirtualNetwork набора, который создает подсеть:Write the subnet configuration to the virtual network with Set-AzVirtualNetwork, which creates the subnet:

$virtualNetwork1 | Set-AzVirtualNetwork

Создайте виртуальную сеть с префиксом адреса 10.1.0.0/16 и одной подсетью:Create a virtual network with a 10.1.0.0/16 address prefix and one subnet:

# 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

Установка пиринговой связи между виртуальными сетямиPeer virtual networks

Создание пиринга с AzVirtualNetworkPeering добавить.Create a peering with Add-AzVirtualNetworkPeering. В следующем примере создается пиринговая связь между сетями myVirtualNetwork1 и myVirtualNetwork2.The following example peers myVirtualNetwork1 to myVirtualNetwork2.

Add-AzVirtualNetworkPeering `
  -Name myVirtualNetwork1-myVirtualNetwork2 `
  -VirtualNetwork $virtualNetwork1 `
  -RemoteVirtualNetworkId $virtualNetwork2.Id

В выходных данных, возвращенных после выполнения предыдущей команды, для состояния пиринга будет отображаться значение Инициировано.In the output returned after the previous command executes, you see that the PeeringState is Initiated. Состояние Инициировано не изменится, пока не будет создан пиринг сети myVirtualNetwork2 с сетью myVirtualNetwork1.The peering remains in the Initiated state until you create the peering from myVirtualNetwork2 to myVirtualNetwork1. Установите пиринговую связь сети myVirtualNetwork2 с сетью myVirtualNetwork1.Create a peering from myVirtualNetwork2 to myVirtualNetwork1.

Add-AzVirtualNetworkPeering `
  -Name myVirtualNetwork2-myVirtualNetwork1 `
  -VirtualNetwork $virtualNetwork2 `
  -RemoteVirtualNetworkId $virtualNetwork1.Id

В выходных данных, возвращенных после выполнения предыдущей команды, для состояния пиринга будет отображаться значение Подключено.In the output returned after the previous command executes, you see that the PeeringState is Connected. Одновременно с этим Azure установит значение Подключено и для первого пиринга myVirtualNetwork1-myVirtualNetwork2.Azure also changed the peering state of the myVirtualNetwork1-myVirtualNetwork2 peering to Connected. Убедитесь, что состояние пиринга для myVirtualNetwork1-myVirtualNetwork2 установилось подключено с Get-AzVirtualNetworkPeering.Confirm that the peering state for the myVirtualNetwork1-myVirtualNetwork2 peering changed to Connected with Get-AzVirtualNetworkPeering.

Get-AzVirtualNetworkPeering `
  -ResourceGroupName myResourceGroup `
  -VirtualNetworkName myVirtualNetwork1 `
  | Select PeeringState

Ресурсы одной виртуальной сети не могут взаимодействовать с ресурсами другой виртуальной сети, пока состояние пиринга для обеих виртуальных сетей не будет иметь значение Подключено.Resources in one virtual network cannot communicate with resources in the other virtual network until the PeeringState for the peerings in both virtual networks is Connected.

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

Создайте виртуальную машину в каждой виртуальной сети, чтобы на следующем шаге организовать взаимодействие между такими машинами.Create a VM in each virtual network so that you can communicate between them in a later step.

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

Создайте виртуальную машину с помощью команды New-AzVM.Create a VM with New-AzVM. В приведенном ниже примере в виртуальной сети myVirtualNetwork1 создается виртуальная машина с именем myVm1.The following example creates a VM named myVm1 in the myVirtualNetwork1 virtual network. Параметр -AsJob позволяет создать виртуальную машину в фоновом режиме, чтобы можно было перейти к следующему шагу.The -AsJob option creates the VM in the background, so you can continue to the next step. Когда появится запрос, введите имя пользователя и пароль, которые вы будете использовать для входа на виртуальную машину.When prompted, enter the user name and password you want to log in to the VM with.

New-AzVm `
  -ResourceGroupName "myResourceGroup" `
  -Location "East US" `
  -VirtualNetworkName "myVirtualNetwork1" `
  -SubnetName "Subnet1" `
  -ImageName "Win2016Datacenter" `
  -Name "myVm1" `
  -AsJob

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

New-AzVm `
  -ResourceGroupName "myResourceGroup" `
  -Location "East US" `
  -VirtualNetworkName "myVirtualNetwork2" `
  -SubnetName "Subnet1" `
  -ImageName "Win2016Datacenter" `
  -Name "myVm2"

Создание виртуальной машины занимает несколько минут.The VM takes a few minutes to create. Не выполняйте следующие шаги, пока в Azure не будет создана виртуальная машина и не будут возвращены выходные данные в PowerShell.Do not continue with later steps until Azure creates the VM and returns output to PowerShell.

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

Вы можете подключиться к общедоступному IP-адресу виртуальной машины через Интернет.You can connect to a VM's public IP address from the internet. Чтобы получить общедоступный IP-адрес виртуальной машины, выполните командлет Get-AzPublicIpAddress.Use Get-AzPublicIpAddress to return the public IP address of a VM. Приведенный ниже пример возвращает общедоступный IP-адрес виртуальной машины myVm1:The following example returns the public IP address of the myVm1 VM:

Get-AzPublicIpAddress `
  -Name myVm1 `
  -ResourceGroupName myResourceGroup | Select IpAddress

На локальном компьютере выполните следующую команду для создания сеанса удаленного рабочего стола с виртуальной машиной myVm1.Use the following command to create a remote desktop session with the myVm1 VM from your local computer. Замените <publicIpAddress> IP-адресом, полученным от предыдущей команды.Replace <publicIpAddress> with the IP address returned from the previous command.

mstsc /v:<publicIpAddress>

Будет создан файл протокола удаленного рабочего стола (RDP-файл). Он будет скачан на ваш компьютер и открыт.A Remote Desktop Protocol (.rdp) file is created, downloaded to your computer, and opened. Введите имя пользователя и пароль, а затем нажмите кнопку ОК. Возможно, понадобится выбрать More choices (Дополнительные варианты) и Use a different account (Использовать другую учетную запись), чтобы указать учетные данные, введенные при создании виртуальной машины.Enter the user name and password (you may need to select More choices, then Use a different account, to specify the credentials you entered when you created the VM), and then click OK. При входе в систему может появиться предупреждение о сертификате.You may receive a certificate warning during the sign-in process. Чтобы продолжить процесс подключения, нажмите кнопку Да или Продолжить.Click Yes or Continue to proceed with the connection.

На виртуальной машине myVm1 с помощью PowerShell разрешите протокол ICMP в брандмауэре Windows, чтобы на следующем шаге нормально работала проверка связи с виртуальной машины myVm2:On the myVm1 VM, enable the Internet Control Message Protocol (ICMP) through the Windows firewall so you can ping this VM from myVm2 in a later step, using PowerShell:

New-NetFirewallRule –DisplayName “Allow ICMPv4-In” –Protocol ICMPv4

Хотя проверка связи используется в этой статье для взаимодействия между виртуальными машинами, мы не рекомендуем разрешать протокол ICMP в брандмауэре Windows в рабочей среде.Though ping is used to communicate between VMs in this article, allowing ICMP through the Windows Firewall for production deployments is not recommended.

Для подключения к виртуальной машине myVm2 введите следующую команду в командной строке на виртуальной машине myVm1:To connect to the myVm2 VM, enter the following command from a command prompt on the myVm1 VM:

mstsc /v:10.1.0.4

Так как вы включили проверку связи на виртуальной машине myVm1, теперь можно проверить связь с ней с помощью IP-адреса из командной строки на виртуальной машине myVm2:Since you enabled ping on myVm1, you can now ping it by IP address from a command prompt on the myVm2 VM:

ping 10.0.0.4

Вы получите четыре ответа.You receive four replies. Отключите RDP-сеансы с myVm1 и myVm2.Disconnect your RDP sessions to both myVm1 and myVm2.

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

Когда не нужно использовать Remove-AzResourcegroup для удаления группы ресурсов и все содержащиеся в ней ресурсы.When no longer needed, use Remove-AzResourcegroup to remove the resource group and all of the resources it contains.

Remove-AzResourceGroup -Name myResourceGroup -Force

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

Из этой статьи вы узнали, как с помощью пиринга соединить две виртуальные сети в одном регионе Azure.In this article, you learned how to connect two networks in the same Azure region, with virtual network peering. Пиринг можно использовать и для подключения виртуальных сетей из разных поддерживаемых регионов или разных подписок Azure, а также для создания звездообразной топологии сети.You can also peer virtual networks in different supported regions and in different Azure subscriptions, as well as create hub and spoke network designs with peering. Чтобы узнать больше о пиринге виртуальных сетей, ознакомьтесь с разделами Пиринг между виртуальными сетями и Создание, изменение и удаление пиринга в виртуальной сети.To learn more about virtual network peering, see Virtual network peering overview and Manage virtual network peerings.

Теперь вы можете подключить свой компьютер к виртуальной сети через VPN и взаимодействовать с ресурсами в виртуальной сети или в виртуальных сетях, соединенных пиринговой связью.You can connect your own computer to a virtual network through a VPN, and interact with resources in a virtual network, or in peered virtual networks. Примеры сценариев для многократного использования, с помощью которых можно выполнять многие задачи, описанные в статьях о виртуальных сетях, можно найти здесь.For reusable scripts to complete many of the tasks covered in the virtual network articles, see script samples.