Настройка подключения VPN-шлюза между виртуальными сетями с помощью PowerShell

Эта статья поможет вам подключить виртуальные сети, используя тип подключения VNet-to-VNet. Виртуальные сети могут относиться к одному или разным регионам и к одной или разным подпискам. При подключении виртуальных сетей из разных подписок не требуется, чтобы эти подписки были связаны с одним и тем же арендатором. Если у вас уже есть виртуальные сети, которые вы хотите подключить, и они находятся в одной и той же подписке, вы можете использовать шаги в портале Azure вместо этого, так как процесс менее сложный. Обратите внимание, что вы не можете подключать виртуальные сети из разных подписок через портал Azure.

В этом упражнении вы создадите необходимые виртуальные сети (виртуальные сети) и VPN-шлюзы. У нас есть инструкции по подключению виртуальных сетей в одной подписке, а также набор команд и инструкций для более сложного случая подключения виртуальных сетей в разных подписках. Командлет PowerShell для создания подключения — New-AzVirtualNetworkGatewayConnection. Значение параметра -ConnectionType — Vnet2Vnet.

Диаграмма VNet ко VNet.

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

Существует несколько способов подключения виртуальных сетей. В следующих разделах описаны различные способы подключения виртуальных сетей.

VNet-to-VNet

Настройка подключения VNet-to-VNet — это хороший способ легко соединить виртуальные сети. Подключение виртуальной сети к другой виртуальной сети с помощью типа подключения "виртуальная сеть — виртуальная сеть" (VNet2VNet) аналогично созданию подключения IPsec типа "сеть — сеть" к локальному расположению. В обоих типах подключений применяется VPN-шлюз для создания защищенного туннеля, использующего IPsec/IKE. При обмене данными оба типа подключений работают одинаково. Различие между этими типами заключается в способе настройки шлюза локальной сети. При создании подключения VNet к VNet адресное пространство шлюза локальной сети не показывается. Он автоматически создается и заполняется. Если вы обновите диапазон адресов для одной виртуальной сети, другая виртуальная сеть автоматически определит маршрут к обновленному диапазону адресов. Создание подключения между виртуальными сетями обычно выполняется быстрее и проще, чем создание подключения типа "сеть — сеть" между виртуальными сетями.

Соединение от сайта к сайту (IPsec)

Если вы работаете со сложной конфигурацией сети, вы можете подключить виртуальные сети, используя шаги Site-to-Site вместо шагов VNet-to-VNet. При использовании шагов "сеть — сеть" вы создаете и настраиваете шлюзы локальной сети вручную. Шлюз локальной сети для каждой виртуальной сети воспринимает другую виртуальную сеть как локальный сайт. Это позволит вам указать дополнительный диапазон адресов для шлюза локальной сети, чтобы маршрутизировать трафик. Если диапазон адресов для виртуальной сети изменится, вам потребуется обновить соответствующий шлюз локальной сети, чтобы отразить эти изменения. Он не обновляется автоматически.

Пиринговое соединение VNet

Вы можете рассмотреть возможность подключения ваших виртуальных сетей через пиринг VNet. При пиринге виртуальных сетей не используется VPN-шлюз и применяются другие ограничения. Кроме того, цены на пиринг виртуальных сетей рассчитываются не так, как цены на VPN-шлюз "виртуальная сеть — виртуальная сеть". Дополнительную информацию см. в статье Пиринговая связь между виртуальными сетями.

Зачем создавать подключение между виртуальными сетями?

Вам может понадобиться подключить виртуальные сети с помощью VNet-подключения по следующим причинам:

  • Межрегиональная географическая избыточность и географическое присутствие

    • Вы можете настроить собственную георепликацию или синхронизацию с безопасной связью без прохождения трафика через конечные точки с выходом в Интернет.
    • С помощью Azure Load Balancer и диспетчера трафика можно настроить высокодоступную рабочую нагрузку с геоизбыточностью в нескольких регионах Azure. Одним из важных примеров является настройка SQL Always On с группами доступности, распределенными между несколькими регионами Azure.
  • Региональные многоуровневые приложения с изоляцией или административной границей

    • В одном регионе можно настроить многоуровневые приложения с несколькими виртуальными сетями, которые связаны друг с другом из-за требований к изоляции или административных требований.

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

Какие шаги мне следует использовать для VNet-to-VNet подключения?

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

Для этого вы можете объединить конфигурации или выбрать ту, с которой предпочитаете работать. Во всех конфигурациях используется подключение "VNet-to-VNet". Сетевой трафик передается между виртуальными сетями, которые напрямую подключены друг к другу. В этом упражнении трафик из TestVNet4 не направляется в TestVNet5.

Как соединить виртуальные сети в одной подписке

Вы можете выполнить следующие действия с помощью Azure Cloud Shell. Если вы предпочитаете устанавливать последнюю версию модуля Azure PowerShell локально, см. статью Общие сведения об Azure PowerShell.

Поскольку для создания шлюза требуется 45 минут или более, Azure Cloud Shell может временно прекращать работу в течение этого упражнения. Вы можете перезапустить Cloud Shell, щелкнув в левом верхнем углу терминала. Обязательно повторно объявите любые переменные при перезапуске терминала.

Шаг 1. Планирование диапазонов IP-адресов

Далее мы создадим две виртуальные сети с соответствующими конфигурациями и подсетями шлюзов. Затем мы создадим VPN-подключение между двумя виртуальными сетями. В конфигурации сети важно задать диапазоны IP-адресов. Имейте в виду, что диапазоны вашей виртуальной сети и локальной сети ни в коем случае не должны перекрываться. В этих примерах мы не добавим DNS-сервер. Если вы хотите разрешение имен для ваших виртуальных сетей, см. Разрешение имен.

В примерах мы используем следующие значения:

Значения для TestVNet1:

  • Имя виртуальной сети: TestVNet1
  • Группа ресурсов: TestRG1.
  • Расположение: восточная часть США
  • TestVNet1: 10.1.0.0/16
  • Внешний интерфейс: 10.1.0.0/24
  • GatewaySubnet: 10.1.255.0/27
  • Имя шлюза: VNet1GW
  • Общедоступный IP-адрес: VNet1GWIP
  • Тип VPN: RouteBased
  • Подключение (1–4): VNet1toVNet4
  • Connection (1to5): VNet1toVNet5 (для VNets в разных подписках)
  • Тип подключения: VNet2VNet

Значения для TestVNet4:

  • Имя виртуальной сети: TestVNet4
  • TestVNet2: 10.41.0.0/16
  • FrontEnd: 10.41.0.0/24
  • GatewaySubnet: 10.41.255.0/27
  • Группа ресурсов: TestRG4
  • Расположение: Западная часть США
  • Имя шлюза: VNet4GW
  • Общедоступный IP-адрес: VNet4GWIP
  • Тип VPN: RouteBased
  • Подключение: VNet4toVNet1
  • Тип подключения: VNet2VNet

Шаг 2. Создание и настройка TestVNet1

Для выполнения следующих действий можно использовать Azure Cloud Shell или запустить PowerShell локально. Подробнее: Установка и настройка Azure PowerShell.

Примечание.

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

  1. Объявите переменные. В этом примере переменные объявляются с помощью значений для этого упражнения. В большинстве случаев эти значения вам нужно заменить собственными. Однако эти переменные можно использовать, если вы выполняете действия, чтобы ознакомиться с этим типом конфигурации. Измените переменные (при необходимости), а затем скопируйте и вставьте их в консоль PowerShell.

    $RG1 = "TestRG1"
    $Location1 = "East US"
    $VNetName1 = "TestVNet1"
    $FESubName1 = "FrontEnd"
    $VNetPrefix1 = "10.1.0.0/16"
    $FESubPrefix1 = "10.1.0.0/24"
    $GWSubPrefix1 = "10.1.255.0/27"
    $GWName1 = "VNet1GW"
    $GWIPName1 = "VNet1GWIP"
    $GWIPconfName1 = "gwipconf1"
    $Connection14 = "VNet1toVNet4"
    $Connection15 = "VNet1toVNet5"
    
  2. Создать группу ресурсов.

    New-AzResourceGroup -Name $RG1 -Location $Location1
    
  3. Создайте конфигурации подсети для TestVNet1. В этом примере создается виртуальная сеть с именем TestVNet1 и две подсети, одна из них называется GatewaySubnet и одна с именем FrontEnd. При подстановке значений важно всегда называть подсеть шлюза именно GatewaySubnet. Если вы дадите ему другое имя, создание шлюза потерпит неудачу. По этой причине она не назначается с помощью переменной в примере.

    В следующем примере используются переменные, заданные ранее. В этом примере подсеть шлюза использует /27. Хотя можно создать подсеть шлюза с помощью /28 для этой конфигурации, рекомендуется создать большую подсеть, содержащую больше адресов, выбрав по крайней мере /27. Это позволит предоставить достаточно адресов для размещения возможных дополнительных конфигураций, которые могут потребоваться в будущем.

    $fesub1 = New-AzVirtualNetworkSubnetConfig -Name $FESubName1 -AddressPrefix $FESubPrefix1
    $gwsub1 = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix $GWSubPrefix1
    
  4. Создайте TestVNet1.

    New-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1 `
    -Location $Location1 -AddressPrefix $VNetPrefix1 -Subnet $fesub1,$gwsub1
    
  5. VPN-шлюз должен иметь выделенный общедоступный IP-адрес. При создании подключения к шлюзу VPN это — IP-адрес, который вы указываете. Используйте следующий пример, чтобы запросить общедоступный IP-адрес.

    $gwpip1 = New-AzPublicIpAddress -Name $GWIPName1 -ResourceGroupName $RG1 `
    -Location $Location1 -AllocationMethod Static -Sku Standard
    
  6. Создайте конфигурацию шлюза. Конфигурация шлюза определяет используемые подсеть и общедоступный IP-адрес. Используйте следующий пример, чтобы создать конфигурацию шлюза.

    $vnet1 = Get-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1
    $subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet1
    $gwipconf1 = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName1 `
    -Subnet $subnet1 -PublicIpAddress $gwpip1
    
  7. Создайте шлюз для TestVNet1. На этом шаге вы создадите шлюз для виртуальной сети TestVNet1. Для подключений типа VNet-to-VNet необходимо использовать тип VPN RouteBased. Создание шлюза часто занимает 45 минут и более, в зависимости от выбранного SKU шлюза.

    New-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1 `
    -Location $Location1 -IpConfigurations $gwipconf1 -GatewayType Vpn `
    -VpnType RouteBased -GatewaySku VpnGw2AZ -VpnGatewayGeneration "Generation2"
    

После выполнения команд создание шлюза займет от 45 минут. Если вы используете Azure Cloud Shell, вы можете перезапустить сеанс Cloud Shell, щелкнув в верхнем левом углу терминала Cloud Shell, а затем настроить TestVNet4. Нет необходимости ждать завершения шлюза TestVNet1.

Шаг 3. Создание и настройка TestVNet4

Создайте TestVNet4. Выполните следующие действия, заменив значения собственными при необходимости.

  1. Подключите и объявите переменные. Не забудьте заменить значения теми, которые вы хотите использовать для конфигурации.

    $RG4 = "TestRG4"
    $Location4 = "West US"
    $VnetName4 = "TestVNet4"
    $FESubName4 = "FrontEnd"
    $VnetPrefix4 = "10.41.0.0/16"
    $FESubPrefix4 = "10.41.0.0/24"
    $GWSubPrefix4 = "10.41.255.0/27"
    $GWName4 = "VNet4GW"
    $GWIPName4 = "VNet4GWIP"
    $GWIPconfName4 = "gwipconf4"
    $Connection41 = "VNet4toVNet1"
    
  2. Создать группу ресурсов.

    New-AzResourceGroup -Name $RG4 -Location $Location4
    
  3. Создайте конфигурации подсети для TestVNet4.

    $fesub4 = New-AzVirtualNetworkSubnetConfig -Name $FESubName4 -AddressPrefix $FESubPrefix4
    $gwsub4 = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix $GWSubPrefix4
    
  4. Создайте TestVNet4.

    New-AzVirtualNetwork -Name $VnetName4 -ResourceGroupName $RG4 `
    -Location $Location4 -AddressPrefix $VnetPrefix4 -Subnet $fesub4,$gwsub4
    
  5. Запросите общедоступный IP-адрес.

    $gwpip4 = New-AzPublicIpAddress -Name $GWIPName4 -ResourceGroupName $RG4 `
    -Location $Location4 -AllocationMethod Static -Sku Standard 
    
  6. Создайте конфигурацию шлюза.

    $vnet4 = Get-AzVirtualNetwork -Name $VnetName4 -ResourceGroupName $RG4
    $subnet4 = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet4
    $gwipconf4 = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName4 -Subnet $subnet4 -PublicIpAddress $gwpip4
    
  7. Создание шлюза TestVNet4 Создание шлюза часто занимает 45 минут и более, в зависимости от выбранного SKU шлюза.

    New-AzVirtualNetworkGateway -Name $GWName4 -ResourceGroupName $RG4 `
    -Location $Location4 -IpConfigurations $gwipconf4 -GatewayType Vpn `
    -VpnType RouteBased -GatewaySku VpnGw2AZ -VpnGatewayGeneration "Generation2"
    

Шаг 4. Создание подключений

Подождите, пока создание обоих шлюзов будет завершено. Перезапустите сеанс Azure Cloud Shell, скопируйте и вставьте переменные с начала шага 2 и шага 3 в консоль, чтобы повторно объявить значения.

  1. Получите оба шлюза для виртуальных сетей.

    $vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1
    $vnet4gw = Get-AzVirtualNetworkGateway -Name $GWName4 -ResourceGroupName $RG4
    
  2. Создайте подключение между TestVNet1 и TestVNet4. На этом шаге вы создадите подключение между TestVNet1 и TestVNet4. Вы увидите ссылки на общий ключ в примерах. Можно использовать собственные значения для общего ключа. Важно, чтобы общий ключ в обоих подключениях был одинаковым. Создание подключения может занять некоторое время.

    New-AzVirtualNetworkGatewayConnection -Name $Connection14 -ResourceGroupName $RG1 `
    -VirtualNetworkGateway1 $vnet1gw -VirtualNetworkGateway2 $vnet4gw -Location $Location1 `
    -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3'
    
  3. Создайте подключение между TestVNet4 и TestVNet1. Этот шаг аналогичен предыдущему шагу, за исключением того, что вы создаете подключение из TestVNet4 к TestVNet1. Убедитесь, что общие ключи совпадают. Подключение установится через несколько минут.

    New-AzVirtualNetworkGatewayConnection -Name $Connection41 -ResourceGroupName $RG4 `
    -VirtualNetworkGateway1 $vnet4gw -VirtualNetworkGateway2 $vnet1gw -Location $Location4 `
    -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3'
    
  4. Проверьте подключение. См. раздел о проверке подключения.

Как подключить виртуальные сети, которые находятся в разных подписках

В этом сценарии мы создадим подключение между TestVNet1 и TestVNet5. TestVNet1 и TestVNet5 находятся в разных подписках. Подписки не должны быть связаны с тем же клиентом.

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

Из-за изменения контекста подписки в этом упражнении, вам может быть проще использовать PowerShell локально на вашем компьютере, а не используя Azure Cloud Shell, когда дойдете до шага 8.

Шаг 5. Создание и настройка TestVNet1

Чтобы создать и настроить сеть TestVNet1 и VPN-шлюз для нее, необходимо выполнить шаг 1 и шаг 2 из предыдущего раздела. Для этой конфигурации не требуется создать TestVNet4 из предыдущего раздела, хотя при его создании он не будет конфликтовать с этими шагами. Выполнив шаг 1 и 2, перейдите к шагу 6, чтобы создать сеть TestVNet5.

Шаг 6. Проверка диапазонов IP-адресов

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

Значения для TestVNet5:

  • Имя виртуальной сети: TestVNet5
  • Группа ресурсов: TestRG5
  • Расположение: Восточная Япония
  • TestVNet5: 10.51.0.0/16
  • FrontEnd: 10.51.0.0/24
  • GatewaySubnet: 10.51.255.0.0/27
  • Имя шлюза: VNet5GW
  • Общедоступный IP-адрес: VNet5GWIP
  • Тип VPN: RouteBased
  • Подключение: VNet5toVNet1
  • Тип подключения: VNet2VNet

Шаг 7. Создание и настройка TestVNet5

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

  1. Объявите переменные. Не забудьте заменить значения теми, которые вы хотите использовать для конфигурации.

    $Sub5 = "Replace_With_the_New_Subscription_Name"
    $RG5 = "TestRG5"
    $Location5 = "Japan East"
    $VnetName5 = "TestVNet5"
    $FESubName5 = "FrontEnd"
    $GWSubName5 = "GatewaySubnet"
    $VnetPrefix5 = "10.51.0.0/16"
    $FESubPrefix5 = "10.51.0.0/24"
    $GWSubPrefix5 = "10.51.255.0/27"
    $GWName5 = "VNet5GW"
    $GWIPName5 = "VNet5GWIP"
    $GWIPconfName5 = "gwipconf5"
    $Connection51 = "VNet5toVNet1"
    
  2. Подключитесь к подписке 5. Откройте консоль PowerShell и подключитесь к своей учетной записи. Для подключения используйте следующий пример.

    Connect-AzAccount
    

    Проверьте подписки для учетной записи.

    Get-AzSubscription
    

    укажите подписку, которую нужно использовать;

    Select-AzSubscription -SubscriptionName $Sub5
    
  3. Создание группы ресурсов

    New-AzResourceGroup -Name $RG5 -Location $Location5
    
  4. Создайте конфигурации подсети для TestVNet5.

    $fesub5 = New-AzVirtualNetworkSubnetConfig -Name $FESubName5 -AddressPrefix $FESubPrefix5
    $gwsub5 = New-AzVirtualNetworkSubnetConfig -Name $GWSubName5 -AddressPrefix $GWSubPrefix5
    
  5. Создайте TestVNet5.

    New-AzVirtualNetwork -Name $VnetName5 -ResourceGroupName $RG5 -Location $Location5 `
    -AddressPrefix $VnetPrefix5 -Subnet $fesub5,$gwsub5
    
  6. Запросите общедоступный IP-адрес.

    $gwpip5 = New-AzPublicIpAddress -Name $GWIPName5 -ResourceGroupName $RG5 `
    -Location $Location5 -AllocationMethod Static -Sku Standard
    
  7. Создайте конфигурацию шлюза.

    $vnet5 = Get-AzVirtualNetwork -Name $VnetName5 -ResourceGroupName $RG5
    $subnet5  = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet5
    $gwipconf5 = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName5 -Subnet $subnet5 -PublicIpAddress $gwpip5
    
  8. Создайте шлюз TestVNet5.

    New-AzVirtualNetworkGateway -Name $GWName5 -ResourceGroupName $RG5 -Location $Location5 `
    -IpConfigurations $gwipconf5 -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw2AZ -VpnGatewayGeneration "Generation2"
    

Шаг 8. Создание подключений

Так как шлюзы из нашего примера находятся в разных подписках, мы разделили этот шаг на два сеанса PowerShell, обозначенные как [подписка 1] и [подписка 5].

  1. [Подписка 1]. Получите шлюз виртуальной сети для подписки 1 Войдите в систему и подключитесь к подписке 1, а затем выполните указанную ниже команду.

    $vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1
    

    Скопируйте выходные данные следующих элементов и отправьте их администратору подписки 5 по электронной почте или другим способом.

    $vnet1gw.Name
    $vnet1gw.Id
    

    Эти два элемента будут иметь значения, похожие на выходные данные в нашем примере:

    PS D:\> $vnet1gw.Name
    VNet1GW
    PS D:\> $vnet1gw.Id
    /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroupsTestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW
    
  2. [Подписка 5]. Получите шлюз виртуальной сети для подписки 5. Войдите в систему и подключитесь к подписке 5, а затем выполните указанную ниже команду.

    $vnet5gw = Get-AzVirtualNetworkGateway -Name $GWName5 -ResourceGroupName $RG5
    

    Скопируйте выходные данные следующих элементов и отправьте их администратору подписки 1 по электронной почте или другим способом.

    $vnet5gw.Name
    $vnet5gw.Id
    

    Эти два элемента будут иметь значения, похожие на выходные данные в нашем примере:

    PS C:\> $vnet5gw.Name
    VNet5GW
    PS C:\> $vnet5gw.Id
    /subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/TestRG5/providers/Microsoft.Network/virtualNetworkGateways/VNet5GW
    
  3. [Подписка 1]. Создайте подключение между TestVNet1 и TestVNet5. На этом шаге вы создадите подключение между TestVNet1 и TestVNet5. Разница в том, что $vnet 5gw нельзя получить напрямую, так как она находится в другой подписке. Необходимо создать новый объект PowerShell со значениями, переданными из Subscription 1 на предыдущих шагах. Используйте следующий пример. Замените имя, идентификатор и общий ключ своими значениями. Важно, чтобы общий ключ в обоих подключениях был одинаковым. Создание подключения может занять некоторое время.

    Подключитесь к подписке 1, а затем выполните следующую команду:

    $vnet5gw = New-Object -TypeName Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkGateway
    $vnet5gw.Name = "VNet5GW"
    $vnet5gw.Id   = "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/TestRG5/providers/Microsoft.Network/virtualNetworkGateways/VNet5GW"
    $Connection15 = "VNet1toVNet5"
    New-AzVirtualNetworkGatewayConnection -Name $Connection15 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnet1gw -VirtualNetworkGateway2 $vnet5gw -Location $Location1 -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3'
    
  4. [Подписка 5]. Создайте подключение между TestVNet5 и TestVNet1. Этот шаг аналогичен предыдущему шагу, за исключением того, что вы создаете подключение из TestVNet5 к TestVNet1. Процесс создания объекта PowerShell на основе значений, полученных из подписки 1, применяется здесь также. На этом этапе убедитесь, что общие ключи совпадают.

    Подключитесь к подписке 5, а затем выполните следующую команду:

    $vnet1gw = New-Object -TypeName Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkGateway
    $vnet1gw.Name = "VNet1GW"
    $vnet1gw.Id = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW "
    $Connection51 = "VNet5toVNet1"
    New-AzVirtualNetworkGatewayConnection -Name $Connection51 -ResourceGroupName $RG5 -VirtualNetworkGateway1 $vnet5gw -VirtualNetworkGateway2 $vnet1gw -Location $Location5 -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3'
    

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

Этот сценарий использует предыдущие шаги сценария, но с несколькими ключевыми различиями. В этом сценарии TestVNet5 находится в подписке 1 клиента 1. TestVNet1 находится в Подписке2, Клиенте2.

В этом сценарии при создании шлюза TestVNet1 необходимо подключиться к Tenant2, Subscription2 с помощью следующих команд. При необходимости настройте или объявите все переменные.

Connect-AzAccount -TenantID $Tenant2
Select-AzSubscription -SubscriptionId $subscription2
<Other PS commandlets to create TestVNet1 gateway are same as above>
$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1

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

Connect-AzAccount -TenantID $Tenant1
Select-AzSubscription -SubscriptionId $subscription1
$vnet5gw = Get-AzVirtualNetworkGateway -Name $GWName5 -ResourceGroupName $RG1

При создании Vnet2Vnet VirtualNetworkGatewayConnection, используя VirtualNetworkGateway1 в качестве $vnet1gw, необходимо сначала подключиться к Tenant2 и Subscription2, а остальные команды остаются такими же, как в предыдущем разделе.

Connect-AzAccount -TenantID $Tenant2
Select-AzSubscription -SubscriptionId $subscription2
$vnet5gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1
New-AzVirtualNetworkGatewayConnection -Name $Connection51 -ResourceGroupName $RG5 -VirtualNetworkGateway1 $vnet5gw -VirtualNetworkGateway2 $vnet1gw -Location $Location5 -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3'

Проверка подключения

Внимание

Группы сетевой безопасности в подсети шлюза не поддерживаются. Связывание группы безопасности сети с этой подсетью может привести к остановке работы шлюза виртуальной сети (VPN и шлюзов ExpressRoute). Дополнительные сведения о группах безопасности сети см. в разделе "Что такое группа безопасности сети"?

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

  1. Используйте командлет из следующего примера, изменив значения в соответствии с вашими требованиями. При появлении запроса выберите "A", чтобы выполнить команду All (Все). В примере параметр --name — это имя подключения, которое требуется проверить.

    Get-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1
    
  2. После завершения работы командлета просмотрите значения. В следующем примере показано, что подключение установлено (состояние "Подключено"), а также указан объем полученных и отправленных данных в байтах.

    "connectionStatus": "Connected",
    "ingressBytesTransferred": 33509044,
    "egressBytesTransferred": 4142431
    

FAQ по VNet (виртуальной сети)

Дополнительные сведения о подключениях VNet к VNet см. в разделе VPN-шлюз: вопросы и ответы.

Следующие шаги