Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: ✔️ VMs do Linux ✔️ Conjuntos de dimensionamento flexíveis
Este artigo fornece detalhes sobre como criar uma VM com várias NICs com a CLI do Azure.
Criar recursos de suporte
Instale a CLI do Azure mais recente do Azure e faça logon em uma conta do Azure usando az login.
Nos exemplos a seguir, substitua os nomes de parâmetro de exemplo com seus próprios valores. Os nomes de parâmetro de exemplo incluem myResourceGroup, mystorageaccount e myVM.
Primeiro, crie um grupo de recursos com az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup no local eastus. Nesses exemplos, declaramos variáveis de ambiente conforme elas são usadas e adicionamos um sufixo aleatório a nomes de recursos exclusivos.
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"
}
Crie a rede virtual com az network vnet create. O exemplo a seguir cria uma rede virtual chamada myVnet e uma sub-rede chamada 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
Crie uma sub-rede para o tráfego de back-end com az network vnet subnet create. O exemplo a seguir cria uma sub-rede chamada 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
Crie um grupo de segurança de rede com az network nsg create. O exemplo a seguir cria um grupo de segurança de rede denominado myNetworkSecurityGroup:
export NSG_NAME="myNetworkSecurityGroup"
az network nsg create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NSG_NAME
Criar e configurar várias NICs
Crie duas NICs com az network nic create. O exemplo a seguir cria duas NICs, chamadas myNic1 e myNic2, conectadas ao grupo de segurança de rede, com uma NIC conectando-se a cada sub-rede:
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
Criar uma VM e conectar as NICs
Ao criar a VM, especifique as NICs criadas com --nics. Você também precisa tomar cuidado ao selecionar o tamanho da VM. Há limites para o número total de NICs que podem ser adicionados a uma VM. Leia mais sobre Tamanhos de VM Linux.
Crie uma VM com az vm create. O exemplo a seguir cria uma VM chamada 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
Adicione tabelas de roteamento ao SO convidado concluindo as etapas em Configure o SO convidado para várias NICs.
Adicionar uma NIC a uma VM
As etapas anteriores criaram uma VM com várias NICs. Também é possível adicionar NICs a uma VM existente com a CLI do Azure. Diferentes tamanhos de VM dão suporte a um número variável de NICs, sendo assim, dimensione sua VM adequadamente. Se necessário, é possível redimensionar uma VM.
Crie outra NIC com az network nic create. O exemplo a seguir cria uma NIC chamada myNic3 conectada à sub-rede de back-end e ao Grupo de Segurança de Rede criado nas etapas anteriores:
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
Para adicionar uma NIC a uma VM existente, primeiro desaloque a VM com az vm deallocate. O exemplo a seguir desaloca a VM chamada myVM:
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Adicione a NIC com az vm nic add. O exemplo a seguir adiciona myNic3 à myVM:
az vm nic add \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
Inicie a VM com az vm start:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Adicione tabelas de roteamento ao SO convidado concluindo as etapas em Configure o SO convidado para várias NICs.
Remover uma NIC de uma VM
Para remover uma NIC de uma VM existente, primeiro desaloque a VM com az vm deallocate. O exemplo a seguir desaloca a VM chamada myVM:
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Remova a NIC com az vm nic remove. O exemplo a seguir remove myNic3 de myVM:
az vm nic remove \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
Inicie a VM com az vm start:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Criar várias NICs usando modelos do Resource Manager
Os modelos do Azure Resource Manager usam arquivos JSON declarativos para definir o seu ambiente. Você pode ler uma visão geral do Azure Resource Manager. Os modelos do Gerenciador de Recursos oferecem uma maneira de criar várias instâncias de um recurso durante a implantação, como a criação de várias NICs. Você usa copiar para especificar o número de instâncias a serem criadas:
"copy": {
"name": "multiplenics"
"count": "[parameters('count')]"
}
Leia mais sobre a criação de várias instâncias usando copiar.
Você também pode usar um copyIndex() para acrescentar um número a um nome de recurso, o que permite que você crie myNic1, myNic2 etc. O seguinte mostra um exemplo de anexação do valor do índice:
"name": "[concat('myNic', copyIndex())]",
Você pode ler um exemplo completo em Criando várias NICs usando modelos do Gerenciador de Recursos.
Adicione tabelas de roteamento ao SO convidado concluindo as etapas em Configure o SO convidado para várias NICs.
Configurar o SO convidado para várias NICs
As etapas anteriores criaram uma rede virtual e uma sub-rede, conectaram adaptadores de rede e, em seguida, criaram uma VM. Um endereço IP público e regras de grupo de segurança de rede que permitem tráfego SSH não foram criados. Para configurar o SO convidado para vários adaptadores de rede, é necessário permitir conexões remotas e executar comandos localmente na VM.
Para permitir tráfego SSH, crie uma regra de grupo de segurança de rede com az network nsg rule create, conforme a seguir:
az network nsg rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--nsg-name $NSG_NAME \
--name allow_ssh \
--priority 101 \
--destination-port-ranges 22
Crie um endereço IP público com az network public-ip create e atribua-o ao primeiro adaptador de rede com 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
Para exibir o endereço IP público da VM, use az vm show da seguinte maneira:
az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv
x.x.x.x
Exemplo de SSH para o endereço IP público da VM. O nome de usuário padrão fornecido em uma etapa anterior era azureuser. Forneça seu próprio nome de usuário e endereço IP público:
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
Para enviar para ou de um adaptador de rede secundário, é necessário adicionar manualmente rotas persistentes ao sistema operacional para cada adaptador de rede secundário. Neste artigo, eth1 é o adaptador de rede secundário. As instruções para adicionar rotas persistentes ao sistema operacional variam de acordo com a distribuição. Consulte a documentação da sua distribuição para obter mais instruções.
Ao adicionar a rota ao sistema operacional, o endereço do gateway será o primeiro endereço da sub-rede na qual o adaptador de rede está. Por exemplo, se a sub-rede tiver recebido o intervalo 10.0.2.0/24, o gateway especificado para a rota será 10.0.2.1 ou se a sub-rede tiver recebido o intervalo 10.0.2.128/25, o gateway especificado para a rota será 10.0.2.129. Você pode definir uma rede específica para o destino da rota ou especificar um destino de 0.0.0.0, se quiser que todo o tráfego para a interface passe pelo gateway especificado. O gateway de cada sub-rede é gerenciado pela rede virtual.
Após adicionar a rota para um adaptador de rede secundário, verifique se a rota está na tabela de rotas com route -n. A saída de exemplo a seguir é para a tabela de rotas que tem as dois adaptadores de rede adicionadas à VM neste artigo:
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
Confirme se a rota que você adicionou persistiu entre os reinícios, verificando a tabela de rotas novamente após reiniciar. Para testar a conectividade, você pode inserir o seguinte comando, por exemplo, em que eth1 é o nome de um adaptador de rede secundário: ping bing.com -c 4 -I eth1
Próximas etapas
Examine Tamanhos de VM Linux ao tentar criar uma VM com várias NICs. Preste atenção ao número máximo de NICs a que cada VM dá suporte.
Para proteger ainda mais as VMs, use acesso just-in-time à VM. Esse recurso abre regras de grupo de segurança de rede para tráfego SSH quando necessário e por um período de tempo definido. Para saber mais, confira Gerenciar o acesso à máquina virtual usando o just in time.