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

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

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

  • создание двух виртуальных сетей;

  • соединение двух виртуальных сетей с помощью пиринговой связи;

  • развертывание виртуальной машины в каждой из виртуальных сетей;

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

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

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

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

  • Для работы с этой статьей требуется Azure CLI версии 2.0.28 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

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

Перед созданием виртуальной сети необходимо создать для нее группу ресурсов и другие компоненты, указанные в этой статье. Создайте группу ресурсов с помощью команды az group create. В следующем примере создается группа ресурсов с именем test-rg в расположении eastus .

az group create \
    --name test-rg \
    --location eastus

Создайте виртуальную сеть с помощью команды az network vnet create. В следующем примере создается виртуальная сеть с именем vnet-1 с префиксом адреса 10.0.0.0.0/16.

az network vnet create \
  --name vnet-1 \
  --resource-group test-rg \
  --address-prefixes 10.0.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.0.0.0/24

Создайте виртуальную сеть с именем vnet-2 с префиксом адреса 10.1.0.0/16:

az network vnet create \
  --name vnet-2 \
  --resource-group test-rg \
  --address-prefixes 10.1.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.1.0.0/24

Одноранговые виртуальные сети

Пиринги устанавливаются между идентификаторами виртуальных сетей. Получите идентификатор каждой виртуальной сети с az network vnet show и сохраните идентификатор в переменной.

# Get the id for vnet-1.
vNet1Id=$(az network vnet show \
  --resource-group test-rg \
  --name vnet-1 \
  --query id --out tsv)

# Get the id for vnet-2.
vNet2Id=$(az network vnet show \
  --resource-group test-rg \
  --name vnet-2 \
  --query id \
  --out tsv)

Создайте пиринг из виртуальной сети-1 в vnet-2 с помощью az network vnet peering create. --allow-vnet-access Если параметр не указан, устанавливается пиринг, но связь не может проходить через нее.

az network vnet peering create \
  --name vnet-1-to-vnet-2 \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --remote-vnet $vNet2Id \
  --allow-vnet-access

В выходных данных указанной выше команды можно заметить, что параметр peeringState имеет значение Initiated. Пиринг остается в состоянии инициированного , пока не создадите пиринг из виртуальной сети-2 в виртуальную сеть-1. Создайте пиринг из виртуальной сети-2 в виртуальную сеть-1.

az network vnet peering create \
  --name vnet-2-to-vnet-1 \
  --resource-group test-rg \
  --vnet-name vnet-2 \
  --remote-vnet $vNet1Id \
  --allow-vnet-access

В выходных данных этой команды параметр peeringState принимает значение Подключено. Azure также изменил состояние пиринга виртуальной сети-1-vnet-2 на Подключение. Убедитесь, что состояние пиринга для пиринга виртуальной сети 1-vnet-2 изменилось на Подключение спомощью az network vnet peering show.

az network vnet peering show \
  --name vnet-1-to-vnet-2 \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --query peeringState

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

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

Создайте виртуальную машину в каждой виртуальной сети, чтобы на следующем шаге организовать взаимодействие между такими машинами.

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

Создайте виртуальную машину с помощью команды az vm create. В следующем примере создается виртуальная машина с именем vm-1 в виртуальной сети-1 . Команда также создает ключи SSH, если они не существуют в расположении ключей по умолчанию. Чтобы использовать определенный набор ключей, используйте параметр --ssh-key-value. Чтобы можно было перейти к следующему шагу, параметр --no-wait позволяет создать виртуальную машину в фоновом режиме.

az vm create \
  --resource-group test-rg \
  --name vm-1 \
  --image Ubuntu2204 \
  --vnet-name vnet-1 \
  --subnet subnet-1 \
  --generate-ssh-keys \
  --no-wait

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

Создайте виртуальную машину в виртуальной сети vnet-2 .

az vm create \
  --resource-group test-rg \
  --name vm-2 \
  --image Ubuntu2204 \
  --vnet-name vnet-2 \
  --subnet subnet-1 \
  --generate-ssh-keys

Создание виртуальной машины занимает несколько минут. После создания виртуальной машины в Azure CLI отображаются примерно такие данные:

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-2",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.1.0.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "test-rg"
}

Запишите значение publicIpAddress. На следующем шаге этот адрес потребуется для доступа к виртуальной машине из Интернета.

Примечание.

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

IP-адрес исходящего доступа по умолчанию отключен при возникновении одного из следующих событий:

  • Общедоступный IP-адрес назначается виртуальной машине.
  • Виртуальная машина размещается в серверном пуле стандартной подсистемы балансировки нагрузки с правилами исходящего трафика или без нее.
  • Ресурс шлюза NAT Azure назначается подсети виртуальной машины.

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

Дополнительные сведения об исходящих подключениях в Azure см. в статье об исходящем доступе по умолчанию в Azure и использовании преобразования исходящих сетевых адресов (SNAT) для исходящих подключений.

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

Используйте следующую команду, чтобы создать сеанс SSH с виртуальной машиной vm-2 . Замените <publicIpAddress> общедоступным IP-адресом, который присвоен виртуальной машине. В предыдущем примере общедоступный IP-адрес — 13.90.242.231.

ssh <publicIpAddress>

Связь с виртуальной машиной в виртуальной сети-1.

ping 10.0.0.4 -c 4

Вы получите четыре ответа.

Закройте сеанс SSH на виртуальной машине vm-2 .

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

Вы можете удалить ненужную группу ресурсов и все содержащиеся в ней ресурсы, выполнив команду az group delete.

az group delete \
    --name test-rg \
    --yes

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

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

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