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

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

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

Модель развертывания Azure Подписка Azure.
Обе Resource Manager Одинаковые
Обе Resource Manager Различные
Одна виртуальная сеть Resource Manager, одна классическая виртуальная сеть Одинаковые

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

При создании пиринга между виртуальными сетями, существующими в разных подписках, подписки могут быть связаны с тем же клиентом Microsoft Entra. Если у вас еще нет клиента Microsoft Entra, можно быстро создать его.

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

Создание пиринга с помощью портала Azure

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

  1. Войдите на портал Azure как пользователь A. У учетной записи, используемой для входа, должны быть необходимые разрешения для создания пиринга виртуальных сетей. Список разрешений см. в разделе Создание, изменение и удаление пиринга в виртуальной сети.

  2. Щелкните + Создать, выберите Сети и щелкните Виртуальная сеть.

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

    • Имя: myVnetA.
    • Адресное пространство: 10.0.0.0/16.
    • Имя подсети: по умолчанию.
    • Диапазон адресов подсети: 10.0.0.0/24.
    • Подписка: выберите подписку A.
    • Группа ресурсов: установите флажок Создать и введите myResourceGroupA.
    • Расположение: Восточная часть США.
  4. В поле Поиск ресурсов, находящемся в верхней части портала, введите myVnetA. Когда сеть myVnetA появится в результатах поиска, щелкните ее. Отобразится колонка для виртуальной сети myVnetA.

  5. В вертикальном списке параметров в левой части отобразившейся колонки myVnetA щелкните Управление доступом (IAM).

  6. В открывшейся колонке myVnetA — управление доступом (IAM) щелкните +Добавить назначение роли.

  7. В отобразившейся колонке Добавление назначение роли в поле Роль выберите Участник сетей.

  8. В поле Выбор выберите пользователя B или введите его адрес электронной почты для поиска. Список пользователей, отображаемый в том же клиенте Microsoft Entra, что и виртуальная сеть, для которую вы настраиваете пиринг. Щелкните пользователя B, когда он появится в списке.

  9. Щелкните Сохранить.

  10. Выйдите с портала как пользователь A, а затем войдите как пользователь B.

  11. Щелкните + Создать, введите Виртуальная сеть в поле Поиск по Marketplace, а затем щелкните Виртуальная сеть в результатах поиска.

  12. В открывшейся колонке Виртуальная сеть в поле Выбор модели развертывания выберите Классический и нажмите кнопку Создать.

  13. В отобразившейся колонке "Создание виртуальной сети (классической)" введите приведенные ниже значения.

    • Имя: myVnetB.
    • Адресное пространство: 10.1.0.0/16.
    • Имя подсети: по умолчанию.
    • Диапазон адресов подсети:10.1.0.0/24.
    • Подписка: выберите подписку B.
    • Группа ресурсов: установите флажок Создать и введите myResourceGroupB.
    • Расположение: Восточная часть США.
  14. В поле Поиск ресурсов, находящемся в верхней части портала, введите myVnetB. Когда сеть myVnetB появится в результатах поиска, щелкните ее. Отобразится колонка для виртуальной сети myVnetB.

  15. В вертикальном списке параметров в левой части отобразившейся колонки myVnetB щелкните Свойства. Скопируйте Идентификатор ресурса, он понадобится нам позже. ИД ресурса будет выглядеть примерно так: /subscriptions/<Subscription ID>/resourceGroups/myResourceGroupB/providers/Microsoft.ClassicNetwork/virtualNetworks/myVnetB.

  16. Выполните шаги 5–9 для myVnetB, указав пользователя A на шаге 8.

  17. Выйдите с портала как пользователь B, а затем войдите как пользователь A.

  18. В поле Поиск ресурсов, находящемся в верхней части портала, введите myVnetA. Когда сеть myVnetA появится в результатах поиска, щелкните ее. Отобразится колонка для виртуальной сети myVnetA.

  19. Щелкните myVnetA.

  20. В вертикальном списке параметров в левой части отобразившейся колонки myVnetA щелкните Пиринги.

  21. В открывшейся колонке myVnetA — пиринги щелкните + Добавить.

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

    • Имя: myVnetAToMyVnetB.
    • Модель развертывания виртуальной сети: выберите Классический.
    • Я знаю идентификатор ресурса: установите этот флажок.
    • Идентификатор ресурса: введите идентификатор ресурса myVnetB, скопированный на шаге 15.
    • Разрешить доступ к виртуальным сетям: убедитесь, что выбрано значение Включено. Другие параметры в этом руководстве не используются. Чтобы узнать о всех параметрах пиринга, прочитайте раздел Создание, изменение и удаление пиринга в виртуальной сети.
  23. После нажатия кнопки ОК на предыдущем шаге колонка Добавить пиринг закроется, и вы снова увидите колонку myVnetA — пиринги. Через несколько секунд созданный пиринг отобразится в этой колонке. В столбце Состояние пиринга для созданного пиринга myVnetAToMyVnetB указано состояние Подключено. Пиринг установлен. Нет необходимости создавать пиринг между классической виртуальной сетью и виртуальной сетью Resource Manager.

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

  24. Необязательно. Хотя в этом руководстве не рассматривается создание виртуальных машин, можно создать по виртуальной машине в каждой виртуальной сети и подключить их между собой, чтобы проверить связь.

  25. Необязательно. Чтобы удалить ресурсы, созданные в этом руководстве, выполните инструкции в разделе Удаление ресурсов этой статьи.

Создание пиринга с помощью Azure CLI

В этом руководстве используются разные учетные записи для каждой подписки. Если вы используете учетную запись, имеющую разрешения для обеих подписок, то можете использовать эту учетную запись для всех действий. Пропустите выход из Azure и удалите строки сценария, назначающие роли пользователей. Замените UserA@azure.com и UserB@azure.com во всех следующих сценариях именами пользователей, которые вы используете для пользователей A и B. Выполните следующие действия с помощью классического интерфейса командной строки Azure и Azure CLI. Действия из Azure Cloud Shell можно выполнить, только выбрав кнопку Попробовать в любом из следующих действий или установив классический интерфейс командной строки и CLI и выполнив команды на локальном компьютере.

  1. При использовании Cloud Shell перейдите к шагу 2, так как Cloud Shell выполняет автоматический вход Azure. Запустите сеанс командной строки и войдите в Azure с помощью команды azure login.

  2. Запустите классический интерфейс командной строки в режиме управления службами, введя команду azure config mode asm.

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

    azure network vnet create --vnet myVnetB --address-space 10.1.0.0 --cidr 16 --location "East US"
    
  4. Остальные действия необходимо выполнить с помощью оболочки bash и Azure CLI (а не классического интерфейса командной строки).

  5. Скопируйте следующий сценарий в текстовый редактор на своем компьютере. Замените <SubscriptionB-Id> идентификатором своей подписки. Если вам неизвестен идентификатор подписки, введите команду az account show. Значение параметра id в выходных данных и будет идентификатором вашей подписки. Скопируйте измененный сценарий, вставьте его в сеанс Azure CLI и нажмите клавишу Enter.

    az role assignment create \
      --assignee UserA@azure.com \
      --role "Classic Network Contributor" \
      --scope /subscriptions/<SubscriptionB-Id>/resourceGroups/Default-Networking/providers/Microsoft.ClassicNetwork/virtualNetworks/myVnetB
    

    На шаге 4 платформа Azure создала классическую виртуальную сеть в группе ресурсов Default-Networking.

  6. Выйдите из Azure как пользователь B, затем войдите в Azure CLI как пользователь A.

  7. Создайте группу ресурсов и виртуальную сеть Resource Manager. Скопируйте следующий сценарий, вставьте его в окно сеанса интерфейса командной строки и нажмите клавишу Enter.

    #!/bin/bash
    
    # Variables for common values used throughout the script.
    rgName="myResourceGroupA"
    location="eastus"
    
    # Create a resource group.
    az group create \
      --name $rgName \
      --location $location
    
    # Create virtual network A (Resource Manager).
    az network vnet create \
      --name myVnetA \
      --resource-group $rgName \
      --location $location \
      --address-prefix 10.0.0.0/16
    
    # Get the id for myVnetA.
    vNetAId=$(az network vnet show \
      --resource-group $rgName \
      --name myVnetA \
      --query id --out tsv)
    
    # Assign UserB permissions to myVnetA.
    az role assignment create \
      --assignee UserB@azure.com \
      --role "Network Contributor" \
      --scope $vNetAId
    
  8. Создайте пиринг между двумя виртуальными сетями, созданными с помощью разных моделей развертывания. Скопируйте следующий сценарий в текстовый редактор на своем компьютере. Замените <SubscriptionB-id> идентификатором своей подписки. Если вам неизвестен идентификатор, выполните команду az account show, чтобы узнать его. Значение параметра id в выходных данных и будет идентификатором вашей подписки. На шаге 4 платформа Azure создала вашу классическую виртуальную сеть в группе ресурсов Default-Networking. Вставьте измененный сценарий в окно сеанса интерфейса командной строки и нажмите клавишу Enter.

    # Peer VNet1 to VNet2.
    az network vnet peering create \
      --name myVnetAToMyVnetB \
      --resource-group $rgName \
      --vnet-name myVnetA \
      --remote-vnet  /subscriptions/<SubscriptionB-id>/resourceGroups/Default-Networking/providers/Microsoft.ClassicNetwork/virtualNetworks/myVnetB \
      --allow-vnet-access
    
  9. После выполнения сценария просмотрите сведения о пиринге виртуальной сети Resource Manager. Скопируйте следующий сценарий и вставьте его в сеанс интерфейса командной строки.

    az network vnet peering list \
      --resource-group $rgName \
      --vnet-name myVnetA \
      --output table
    

    В выходных данных в столбце PeeringState (Состояние пиринга) указано состояние Connected (Подключен).

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

  10. Необязательно. Хотя в этом руководстве не рассматривается создание виртуальных машин, можно создать по виртуальной машине в каждой виртуальной сети и подключить их между собой, чтобы проверить связь.

  11. Необязательно. Чтобы удалить ресурсы, созданные в рамках этого руководства, выполните инструкции, описанные в разделе по удалению ресурсов.

Создание пиринга с помощью PowerShell

В этом руководстве используются разные учетные записи для каждой подписки. Если вы используете учетную запись, имеющую разрешения для обеих подписок, то можете использовать эту учетную запись для всех действий. Пропустите выход из Azure и удалите строки сценария, назначающие роли пользователей. Замените UserA@azure.com и UserB@azure.com во всех следующих сценариях именами пользователей, которые вы используете для пользователей A и B.

  1. Установите последние версии модулей PowerShell Azure и Az. Если вы еще не работали с Azure PowerShell, ознакомьтесь со статьей Overview of Azure PowerShell (Общие сведения об Azure PowerShell).

  2. Запустите сеанс PowerShell.

  3. В PowerShell войдите в подписку пользователя B от имени этого пользователя, введя команду Add-AzureAccount. У учетной записи, используемой для входа, должны быть необходимые разрешения для создания пиринга виртуальных сетей. Список разрешений см. в разделе Создание, изменение и удаление пиринга в виртуальной сети.

  4. Чтобы создать классическую виртуальную сеть с помощью PowerShell, необходимо создать новый или изменить существующий файл конфигурации сети. Узнайте, как экспортировать, обновлять и импортировать файлы конфигурации сети. Файл должен содержать приведенный ниже элемент VirtualNetworkSite для виртуальной сети, используемой в этом руководстве.

    <VirtualNetworkSite name="myVnetB" Location="East US">
      <AddressSpace>
        <AddressPrefix>10.1.0.0/16</AddressPrefix>
      </AddressSpace>
      <Subnets>
        <Subnet name="default">
          <AddressPrefix>10.1.0.0/24</AddressPrefix>
        </Subnet>
      </Subnets>
    </VirtualNetworkSite>
    

    Предупреждение

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

  5. Войдите в подписку пользователя B от имени этого пользователя для выполнения команд Resource Manager, введя команду Connect-AzAccount.

  6. Назначьте разрешения пользователя A виртуальной сети myVnetB. Скопируйте приведенный ниже сценарий в текстовый редактор на своем компьютере и замените <SubscriptionB-id> идентификатором подписки B. Если вам неизвестен этот идентификатор подписки, введите команду Get-AzSubscription, чтобы просмотреть его. Значение Id (Идентификатор) в полученных выходных данных является идентификатором вашей подписки. На шаге 4 платформа Azure создала вашу классическую виртуальную сеть в группе ресурсов Default-Networking. Чтобы выполнить сценарий, скопируйте измененный сценарий, вставьте его в окно сеанса PowerShell и нажмите клавишу Enter.

    New-AzRoleAssignment `
      -SignInName UserA@azure.com `
      -RoleDefinitionName "Classic Network Contributor" `
      -Scope /subscriptions/<SubscriptionB-id>/resourceGroups/Default-Networking/providers/Microsoft.ClassicNetwork/virtualNetworks/myVnetB
    
  7. Выйдите из Azure как пользователь B и войдите в подписку пользователя A от имени пользователя A, введя команду Connect-AzAccount. У учетной записи, используемой для входа, должны быть необходимые разрешения для создания пиринга виртуальных сетей. Список разрешений см. в разделе Создание, изменение и удаление пиринга в виртуальной сети.

  8. Создайте виртуальную сеть Resource Manager, скопировав следующий сценарий, вставив его PowerShell и нажав клавишу Enter.

    # Variables for common values
      $rgName='MyResourceGroupA'
      $location='eastus'
    
    # Create a resource group.
    New-AzResourceGroup `
      -Name $rgName `
      -Location $location
    
    # Create virtual network A.
    $vnetA = New-AzVirtualNetwork `
      -ResourceGroupName $rgName `
      -Name 'myVnetA' `
      -AddressPrefix '10.0.0.0/16' `
      -Location $location
    
  9. Назначьте разрешения пользователя B виртуальной сети myVnetA. Скопируйте приведенный ниже сценарий в текстовый редактор на своем компьютере и замените <SubscriptionA-Id> идентификатором подписки A. Если вам неизвестен этот идентификатор подписки, введите команду Get-AzSubscription, чтобы просмотреть его. Значение Id (Идентификатор) в полученных выходных данных является идентификатором вашей подписки. Вставьте измененную версию сценарий в окно сеанса PowerShell и нажмите клавишу Enter, чтобы выполнить его.

    New-AzRoleAssignment `
      -SignInName UserB@azure.com `
      -RoleDefinitionName "Network Contributor" `
      -Scope /subscriptions/<SubscriptionA-Id>/resourceGroups/myResourceGroupA/providers/Microsoft.Network/VirtualNetworks/myVnetA
    
  10. Скопируйте приведенный ниже сценарий в текстовый редактор на своем компьютере и замените <SubscriptionB-id> идентификатором подписки B. Чтобы создать пиринг между myVnetA и myVNetB, скопируйте измененный сценарий, вставьте его в PowerShell и нажмите клавишу Enter.

    Add-AzVirtualNetworkPeering `
      -Name 'myVnetAToMyVnetB' `
      -VirtualNetwork $vnetA `
      -RemoteVirtualNetworkId /subscriptions/<SubscriptionB-id>/resourceGroups/Default-Networking/providers/Microsoft.ClassicNetwork/virtualNetworks/myVnetB
    
  11. Просмотрите состояние пиринга myVnetA, скопировав следующий сценарий в PowerShell и нажав клавишу Enter.

    Get-AzVirtualNetworkPeering `
      -ResourceGroupName $rgName `
      -VirtualNetworkName myVnetA `
      | Format-Table VirtualNetworkName, PeeringState
    

    Отображается состояние Connected (Подключено). Оно принимает значение Connected (Подключено) после настройки пиринга из myVnetB к myVnetA.

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

  12. Необязательно. Хотя в этом руководстве не рассматривается создание виртуальных машин, можно создать по виртуальной машине в каждой виртуальной сети и подключить их между собой, чтобы проверить связь.

  13. Необязательно. Чтобы удалить ресурсы, созданные в рамках этого руководства, выполните инструкции, описанные в разделе по удалению ресурсов.

Удаление ресурсов

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

Портал Azure

  1. В поле поиска на портале введите myResourceGroupA. В результатах поиска щелкните myResourceGroupA.
  2. В колонке myResourceGroupA щелкните значок Удалить.
  3. Чтобы подтвердить удаление, введите myResourceGroupA в поле Введите имя группы ресурсов, а затем щелкните Удалить.
  4. В поле Поиск ресурсов, находящемся в верхней части портала, введите myVnetB. Когда сеть myVnetB появится в результатах поиска, щелкните ее. Отобразится колонка для виртуальной сети myVnetB.
  5. В колонке myVnetB щелкните Удалить.
  6. В окне Удалить виртуальную сеть нажмите кнопку Да, чтобы подтвердить удаление.

Azure CLI

  1. Войдите в Azure с помощью Azure CLI, чтобы удалить виртуальную сеть Resource Manager с помощью приведенной ниже команды.

    az group delete --name myResourceGroupA --yes
    
  2. Войдите в Azure с помощью классического интерфейса командной строки, чтобы удалить классическую виртуальную сеть, выполнив приведенные ниже команды.

    azure config mode asm
    
    azure network vnet delete --vnet myVnetB --quiet
    

PowerShell

  1. В командной строке PowerShell введите приведенную ниже команду, чтобы удалить виртуальную сеть Resource Manager.

    Remove-AzResourceGroup -Name myResourceGroupA -Force
    
  2. Чтобы удалить классическую виртуальную сеть с помощью PowerShell, необходимо изменить существующий файл конфигурации сети. Узнайте, как экспортировать, обновлять и импортировать файлы конфигурации сети. Удалите приведенный ниже элемент VirtualNetworkSite для виртуальной сети, используемой в этом руководстве.

    <VirtualNetworkSite name="myVnetB" Location="East US">
      <AddressSpace>
        <AddressPrefix>10.1.0.0/16</AddressPrefix>
      </AddressSpace>
      <Subnets>
        <Subnet name="default">
          <AddressPrefix>10.1.0.0/24</AddressPrefix>
        </Subnet>
      </Subnets>
    </VirtualNetworkSite>
    

    Предупреждение

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

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