Поиск по сайту:

Как подключить виртуальные сети Azure с помощью пиринга виртуальных сетей


Пиринг виртуальной сети Azure (VNet) позволяет подключить две или более виртуальных сетей в Azure. С точки зрения подключения две одноранговые сети выглядят как одна. Пиринговый трафик направляется через частную сеть Microsoft, а не через общедоступный Интернет. Виртуальная сеть Azure — это программно-определяемая сеть с настраиваемым адресным пространством и сегментированными подсетями.

Azure предлагает два типа пиринга.

  • Пиринг виртуальных сетей позволяет подключать виртуальные сети в одном регионе Azure.
  • Глобальный пиринг виртуальных сетей соединяет трафик между регионами Azure.

Зачем нам использовать пиринг виртуальных сетей для соединения двух разных виртуальных сетей? У одноранговых сетей есть несколько преимуществ.

  • Используйте соединение с малой задержкой и высокой пропускной способностью между ресурсами в разных виртуальных сетях.
  • Перенос данных между подписками Azure, арендаторами и регионами.
  • Нет простоев при настройке одноранговых виртуальных сетей.

В этой статье мы собираемся продемонстрировать создание одноранговой сети с помощью команд Azure Powershell. Для выполнения этих команд вам понадобится модуль Azure PowerShell.

Подключение виртуальных машин через одноранговые виртуальные сети

В этом руководстве мы собираемся создать две новые группы ресурсов, виртуальные сети и виртуальные машины. После того, как все будет настроено, мы проверим виртуальные сети между двумя виртуальными машинами Azure и продемонстрируем, что они действительно могут взаимодействовать. Во-первых, нам нужно импортировать модуль Az и пройти аутентификацию в Azure с помощью командлета Connect-AzAccount.

Import-Module -Name 'Az'
Connect-AzAccount

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

New-AzResourceGroup -Name 'TestLocation1' -Location "Central US"
New-AzResourceGroup -Name 'TestLocation2' -Location "Central US"

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

$Params = @{
  "Name"              = 'TestVirtualNetwork1'
  "ResourceGroupName" = 'TestLocation1'
  "Location"          = 'Central US'
  "AddressPrefix"     = '10.0.0.0/16'
  "Subnet"            = (New-AzVirtualNetworkSubnetConfig -Name 'VMSubnet' -AddressPrefix '10.0.1.0/24')
}

New-AzVirtualNetwork @Params
$Params = @{
  "Name"              = 'TestVirtualNetwork2'
  "ResourceGroupName" = 'TestLocation2'
  "Location"          = 'Central US'
  "AddressPrefix"     = '10.1.0.0/16'
  "Subnet"            = (New-AzVirtualNetworkSubnetConfig -Name 'VMSubnet' -AddressPrefix '10.1.1.0/24')
}

New-AzVirtualNetwork @Params

Мы можем убедиться, что виртуальные сети успешно созданы, с помощью командлета Get-AzVirtualNetwork.

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

$Params = @{
  'Name'                = 'LCWin2019-01'
  'ResourceGroupName'   = 'TestLocation1'
  'Location'            = 'centralus'
  'VirtualNetworkName'  = 'TestVirtualNetwork1'
  'SubnetName'          = 'VMSubnet'
  'AddressPrefix'       = '10.0.1.0/24'
  'PublicIpAddressName' = 'TestVM01PublicIP'
  'OpenPorts'           = 3389
  'Image'               = 'MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest'
  'Size'                = 'Standard_D2_v3'
  'Credential'          = $VMCredential
}

$VM1 = New-AzVM @Params

$Params = @{
  'Name'                = 'LCWin2019-02'
  'ResourceGroupName'   = 'TestLocation2'
  'Location'            = 'centralus'
  'VirtualNetworkName'  = 'TestVirtualNetwork2'
  'SubnetName'          = 'VMSubnet'
  'AddressPrefix'       = '10.1.1.0/24'
  'PublicIpAddressName' = 'TestVM02PublicIP'
  'OpenPorts'           = 3389
  'Image'               = 'MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest'
  'Size'                = 'Standard_D2_v3'
  'Credential'          = $VMCredential
}

$VM2 = New-AzVM @Params

Наконец, мы соединим две виртуальные сети с помощью Add-AzVirtualNetworkPeering. После получения конфигураций виртуальной сети мы передадим эту информацию для создания однорангового соединения.

Вы можете заметить, что нам нужно смотреть с двух сторон. Это дает вам гибкость в том, как вы хотите структурировать поток данных, но также легко упустить это при настройке пиринга!

$VNet1 = Get-AzVirtualNetwork -Name 'TestVirtualNetwork1' -ResourceGroupName 'TestLocation1'
$VNet2 = Get-AzVirtualNetwork -Name 'TestVirtualNetwork2' -ResourceGroupName 'TestLocation2'

$Params = @{
	'Name'                   = 'TestVirtualNetwork1peerTestVirtualNetwork2'
	'VirtualNetwork'         =  $VNet1
	'RemoteVirtualNetworkId' =  $VNet2.Id
}

Add-AzVirtualNetworkPeering @Params

$Params = @{
	'Name'                   = 'TestVirtualNetwork2peerTestVirtualNetwork1'
	'VirtualNetwork'         =  $VNet2
	'RemoteVirtualNetworkId' =  $VNet1.Id
}

Add-AzVirtualNetworkPeering @Params

Используя Get-AzVirtualNetworkPeering, мы видим, что наши одноранговые сети теперь доступны для использования.

Демонстрация однорангового виртуального сетевого подключения

Теперь, когда все правильно подключено, мы можем показать, что виртуальные машины могут успешно пинговать друг друга. Во-первых, убедитесь, что ваши сетевые адаптеры находятся в частной сети и разрешено правило брандмауэра «Общий доступ к файлам и принтерам» (эхо-запрос — ICMPv4-In). В противном случае, даже в одноранговой сети, ваши пинг-тесты, скорее всего, не пройдут.

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

Заключение

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