Пиринговое подключение VNet в Azure через PowerShell

Краткие ссылки
Подключение виртуальных машин через пиранговые виртуальные сети
Демонстрация соединения пиринговых виртуальных сетей
Заключение
Что такое пиринг виртуальных сетей (одно предложение)
Пиринговое подключение виртуальных сетей (VNet Peering) — это механизм Azure, который объединяет две или более виртуальных сетей так, что ресурсы в них видят друг друга как находящиеся в одной сети, а трафик идет по частной сети Microsoft.
Важно: пиринг не маршрутизирует трафик через публичный интернет; он использует внутреннюю инфраструктуру Azure.
Почему использовать VNet Peering — ключевые преимущества
- Низкая задержка и высокая пропускная способность между ресурсами в разных VNet.
- Возможность передачи данных между подписками, тенантами и регионами (с помощью глобального пиринга).
- Отсутствие простоев при конфигурации пиринга.
Факт-бокс: пиринг подходит, когда нужно обеспечить приватную, быструю и простую связность между разделёнными сетями при сохранении изоляции управления и политик.
Требования и определения (одно предложение каждое)
- VNet: программно определяемая сеть в Azure со своими адресными префиксами и подсетями.
- Пиринговое соединение: двунаправленный логический маршрут между двумя VNet.
- Az-модуль: официальный модуль PowerShell для управления ресурсами Azure.
Подключение виртуальных машин через пиринговые виртуальные сети
В этом разделе показан рабочий пример: создаём две группы ресурсов, две виртуальные сети, две ВМ и настраиваем пиринг между сетями. Команды выполняются в PowerShell с модулем Az.
Сначала импортируйте модуль и аутентифицируйтесь:
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
Проверить создание VNet можно командлетом 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
Настройка пиринга (важно — двунаправленный пиринг)
Пиринговое соединение нужно создать в обе стороны. Это даёт гибкость в маршрутизации, но часто его забывают настроить с обеих сторон.
Получаем объекты VNet и создаём пиринг:
$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.

Демонстрация соединения пиринговых виртуальных сетей
Теперь проверим связность между ВМ. Перед проверкой убедитесь, что сетевой профиль адаптера в ОС установлен как «Частная сеть», а в брандмауэре включено правило File and Printer Sharing (Echo Request - ICMPv4-In). Без этих настроек ping, даже при корректном пиринге, скорее всего не пройдёт.

На скриншотах видно успешную передачу ICMP-пакетов в обе стороны:


Когда пиринг не подходит
- Если вам нужна централизованная маршрутизация через виртуальную машину (NVA), то стоит использовать UDR (User-Defined Routes) и VPN/ExpressRoute, а не только пиринг.
- Если требуется сегментация трафика на уровне L7 с фильтрацией — комбинируйте пиринг с сервисами безопасности или Azure Firewall.
- Пиринговые соединения не заменяют VPN для подключения локальной сети к Azure.
Альтернативные подходы
- VPN Gateway: для безопасного шифрования между VNet и внешними сетями.
- Azure Virtual WAN: для централизованной сетевой архитектуры и управления несколькими подключениями.
- ExpressRoute: для частного подключения с выделенной пропускной способностью и SLA.
Контрольный чек-лист для ролей
Администратор сети:
- Проверил адресные диапазоны на отсутствие пересечений.
- Настроил двунаправленный пиринг.
- Проверил UDR и NSG — не блокируют ли они нужный трафик.
DevOps-инженер:
- Интегрировал команды в IaC-скрипты (ARM/Bicep/Terraform/PowerShell).
- Проверил автоматизированное создание публичных IP и правил брандмауэра.
Владелец приложения:
- Подтвердил, что политики безопасности совместимы с пирингом.
- Оценил необходимость глобального пиринга между регионами.
Мини-методология: быстрый план внедрения (шаги)
- Спроектировать адресное пространство с учётом будущего роста.
- Создать группы ресурсов и VNet в тестовой подписке.
- Развернуть ВМ/ресурсы и включить необходимые правила брандмауэра.
- Настроить пиринг в обе стороны и проверить
Get-AzVirtualNetworkPeering. - Выполнить тесты (ping, приложение) и перенести конфигурацию в прод через IaC.
Критерии приёмки
- Пиринговые соединения созданы и видимы в выводе
Get-AzVirtualNetworkPeering. - ВМ из разных VNet успешно обмениваются трафиком (ping/приложение).
- NSG и UDR не препятствуют нужному трафику.
- Документация и IaC-скрипты обновлены.
Безопасность и конфигурация брандмауэра
- NSG по умолчанию защищает подсети; убедитесь, что правила разрешают внутренний трафик между адресными префиксами пиринга.
- Рассмотрите Azure Firewall или NVA, если нужен централизованный инспектор трафика.
Короткий глоссарий (1 строка каждый)
- VNet: виртуальная сеть Azure.
- Peering: логическое соединение между двумя VNet.
- NSG: Network Security Group — фильтрует сетевой трафик на уровне подсети или интерфейса.
- UDR: пользовательские маршруты (User-Defined Routes).
Заключение
Пиринговые подключения VNet в Azure позволяют просто и быстро объединять изолированные виртуальные сети, сохраняя приватность и высокую пропускную способность. PowerShell и модуль Az упрощают автоматизацию процесса и интеграцию в CI/CD-пайплайны. Следуйте чек-листам, проверьте брандмауэр и помните о двунаправленном пиринге.
Важно: планируйте адресное пространство заранее и включайте проверку NSG/UDR в сценарии приёмки.
Если хотите, могу сгенерировать пример Bicep/ARM/Terraform конфигурации на основе этого сценария или добавить блок автоматических тестов для пайплайна.
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить