Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы
В этой статье описано, как создать виртуальную машину с несколькими сетевыми адаптерами с помощью Azure CLI.
Создание вспомогательных ресурсов
Установите последнюю версию Azure CLI и войдите в учетную запись Azure с помощью az login.
В следующих примерах замените имена параметров собственными значениями. Примеры имен параметров включают myResourceGroup, mystorageaccount и myVM.
Сначала создайте группу ресурсов с помощью команды az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus. В этих примерах мы объявляем переменные среды по мере их использования и добавляем случайный суффикс в уникальные имена ресурсов.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
export REGION="WestUS2"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx",
"location": "WestUS2",
"managedBy": null,
"name": "myResourceGroupxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Создайте виртуальную сеть с помощью az network vnet create. В следующем примере создается виртуальная сеть с именем myVnet и подсетьс именем mySubnetFrontEnd:
export VNET_NAME="myVnet"
export FRONTEND_SUBNET="mySubnetFrontEnd"
az network vnet create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $VNET_NAME \
--address-prefix 10.0.0.0/16 \
--subnet-name $FRONTEND_SUBNET \
--subnet-prefix 10.0.1.0/24
Создайте подсеть для внутреннего трафика с помощью az network vnet subnet create. В следующем примере создается подсеть с именем mySubnetBackEnd:
export BACKEND_SUBNET="mySubnetBackEnd"
az network vnet subnet create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vnet-name $VNET_NAME \
--name $BACKEND_SUBNET \
--address-prefix 10.0.2.0/24
Создайте группу безопасности сети с помощью команды az network nsg create. В следующем примере создается группа безопасности сети с именем myNetworkSecurityGroup:
export NSG_NAME="myNetworkSecurityGroup"
az network nsg create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NSG_NAME
Создание и настройка нескольких сетевых адаптеров
Создайте два сетевых адаптера с az network nic create. В следующем примере создаются два сетевых адаптера с именем myNic1 иmyNic2, подключенные к группе безопасности сети, с одним сетевым адаптером, подключающимся к каждой подсети:
export NIC1="myNic1"
export NIC2="myNic2"
az network nic create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NIC1 \
--vnet-name $VNET_NAME \
--subnet $FRONTEND_SUBNET \
--network-security-group $NSG_NAME
az network nic create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NIC2 \
--vnet-name $VNET_NAME \
--subnet $BACKEND_SUBNET \
--network-security-group $NSG_NAME
Создание виртуальной машины и подключение сетевых адаптеров
При создании виртуальной машины укажите сетевые адаптеры, созданные с помощью параметра --nics. Вам тоже нужно внимательно отнестись к выбору размера виртуальной машины. Существуют ограничения для общего количества сетевых адаптеров, которые можно добавить на виртуальную машину. Дополнительные сведения о размерах виртуальных машин Linux.
Создайте виртуальную машину с помощью команды az vm create. В следующем примере создается виртуальная машина с именем myVM:
export VM_NAME="myVM"
az vm create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $VM_NAME \
--image Ubuntu2204 \
--size Standard_DS3_v2 \
--admin-username azureuser \
--generate-ssh-keys \
--nics $NIC1 $NIC2
Добавьте таблицы маршрутизации в гостевую ОС, выполнив действия, описанные в разделе "Настройка гостевой ОС для нескольких сетевых адаптеров".
Добавление сетевого адаптера на виртуальную машину
Предыдущие шаги создали виртуальную машину с несколькими сетевыми адаптерами. Вы также можете добавить сетевые адаптеры к существующей виртуальной машине с помощью Azure CLI. Разные размеры виртуальных машин поддерживают различное количество NICs (сетевых интерфейсных карт), поэтому правильно выбирайте размер виртуальной машины. При необходимости можно изменить размер виртуальной машины.
Создайте другой сетевой интерфейс с помощью az network nic create. В следующем примере создается сетевая карта с именем myNic3 , подключенная к внутренней подсети и группе безопасности сети, созданной на предыдущих шагах:
export NIC3="myNic3"
az network nic create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NIC3 \
--vnet-name $VNET_NAME \
--subnet $BACKEND_SUBNET \
--network-security-group $NSG_NAME
Чтобы добавить сетевой адаптер к существующей виртуальной машине, сначала освободите виртуальную машину с помощью az vm deallocate. В следующем примере освобождаются ресурсы виртуальной машины с именем myVM:
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Добавьте сетевой адаптер с az vm nic add. В следующем примере myNic3 добавляется в myVM:
az vm nic add \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
Запустите виртуальную машину с помощью az vm start:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Добавьте таблицы маршрутизации в гостевую ОС, выполнив действия, описанные в разделе "Настройка гостевой ОС для нескольких сетевых адаптеров".
Удаление сетевого адаптера из виртуальной машины
Чтобы удалить сетевой адаптер из существующей виртуальной машины, сначала деактивируйте виртуальную машину с помощью az vm deallocate. В следующем примере выполняется освобождение виртуальной машины с именем myVM:
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Удалите сетевой адаптер командой az vm nic remove. Следующий пример удаляет myNic3 из myVM:
az vm nic remove \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
Запустите виртуальную машину с помощью az vm start:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Создание нескольких сетевых адаптеров с помощью шаблонов Resource Manager
Шаблоны Azure Resource Manager используют декларативные JSON-файлы для определения среды. Вы можете ознакомиться с обзором Azure Resource Manager. Шаблоны Resource Manager предоставляют способ создания нескольких экземпляров ресурса во время развертывания, таких как создание нескольких сетевых адаптеров. Вы используете копирование, чтобы указать количество создаваемых экземпляров:
"copy": {
"name": "multiplenics"
"count": "[parameters('count')]"
}
Дополнительные сведения о создании нескольких экземпляров с помощью копирования.
Вы также можете использовать copyIndex() для добавления числа в имя ресурса, что позволяет создавать myNic1, myNic2 и т. д. Ниже показан пример добавления значения индекса:
"name": "[concat('myNic', copyIndex())]",
Можно ознакомиться с полным примером создания нескольких сетевых адаптеров с использованием шаблонов Resource Manager.
Добавьте таблицы маршрутизации в гостевую ОС, выполнив действия, описанные в разделе "Настройка гостевой ОС для нескольких сетевых адаптеров".
Настройка гостевой ОС для нескольких сетевых адаптеров
Предыдущие шаги включали создание виртуальной сети и подсети, присоединение сетевых интерфейсов (NIC), а затем создание виртуальной машины. Общедоступный IP-адрес и правила группы безопасности сети, позволяющие трафик SSH, не были созданы. Чтобы настроить гостевую ОС для нескольких сетевых адаптеров, необходимо разрешить удаленные подключения и выполнять команды локально на виртуальной машине.
Чтобы разрешить трафик SSH, создайте правило группы безопасности сети следующим образом с помощью az network nsg rule create:
az network nsg rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--nsg-name $NSG_NAME \
--name allow_ssh \
--priority 101 \
--destination-port-ranges 22
Создайте общедоступный IP-адрес с помощью az network public-ip create и назначьте его первому сетевому адаптеру с помощью az network nic ip-config update:
export PUBLIC_IP_NAME="myPublicIP"
az network public-ip create --resource-group $MY_RESOURCE_GROUP_NAME --name $PUBLIC_IP_NAME
az network nic ip-config update \
--resource-group $MY_RESOURCE_GROUP_NAME \
--nic-name $NIC1 \
--name ipconfig1 \
--public-ip $PUBLIC_IP_NAME
Чтобы просмотреть общедоступный IP-адрес виртуальной машины, используйте az vm show следующим образом:
az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv
x.x.x.x
Подключитесь по SSH к общедоступному IP-адресу виртуальной машины. Имя пользователя по умолчанию, предоставленное на предыдущем шаге, было azureuser. Укажите собственное имя пользователя и общедоступный IP-адрес:
export IP_ADDRESS=$(az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
Для передачи данных через или вне дополнительного сетевого интерфейса, необходимо вручную добавлять постоянные маршруты в операционную систему для каждого из этих интерфейсов. В этой статье eth1 является вторичным интерфейсом. Инструкции по добавлению постоянных маршрутов в операционную систему зависят от дистрибутива. Инструкции см. в документации по дистрибутиву.
При добавлении маршрута в операционную систему адрес шлюза является первым адресом подсети сетевого интерфейса. Например, если подсеть назначена диапазон 10.0.2.0/24, шлюз, указанный для маршрута, равен 10.0.2.1 или если подсеть назначена диапазон 10.0.2.128/25, шлюз, указанный для маршрута, равен 10.0.2.129. Можно определить определенную сеть для назначения маршрута или указать назначение 0.0.0.0.0, если требуется, чтобы весь трафик для интерфейса проходил через указанный шлюз. Шлюз для каждой подсети управляется виртуальной сетью.
После добавления маршрута для дополнительного интерфейса убедитесь, что маршрут находится в таблице маршрутов.route -n
Следующий пример выходных данных предназначен для таблицы маршрутов, которая содержит два сетевых интерфейса, добавленных в виртуальную машину в этой статье:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.1.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 10.0.2.1 0.0.0.0 UG 0 0 0 eth1
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
168.63.129.16 10.0.1.1 255.255.255.255 UGH 0 0 0 eth0
169.254.169.254 10.0.1.1 255.255.255.255 UGH 0 0 0 eth0
Убедитесь, что добавленный маршрут сохраняется во время перезагрузки, проверив таблицу маршрутов еще раз после перезагрузки. Чтобы проверить подключение, можно ввести следующую команду, например, где eth1 — это имя дополнительного сетевого интерфейса: ping bing.com -c 4 -I eth1
Дальнейшие шаги
Просмотрите размеры виртуальных машин Linux при попытке создания виртуальной машины с несколькими сетевыми адаптерами. Обратите внимание на максимальное количество сетевых адаптеров, поддерживаемых каждым размером виртуальной машины.
Чтобы дополнительно защитить ваши виртуальные машины, используйте доступ к виртуальным машинам по требованию. Эта функция открывает правила группы безопасности сети для трафика SSH при необходимости и в течение определенного периода времени. Для получения дополнительной информации см. Управление доступом к виртуальной машине по требованию.