Partilhar via


Atribuir múltiplos endereços IP a máquinas virtuais usando a CLI do Azure

Uma Máquina Virtual Azure (VM) tem uma ou mais interfaces de rede (NIC) ligadas. Qualquer NIC pode ter um ou mais endereços IP públicos e privados estáticos ou dinâmicos atribuídos à mesma.

A atribuição de vários endereços IP a uma VM permite os seguintes recursos:

  • Hospedagem de vários sites ou serviços com diferentes endereços IP e certificados TLS/SSL em um único servidor.

  • Sirva como um dispositivo virtual de rede, como um firewall ou balanceador de carga.

  • A capacidade de adicionar qualquer um dos endereços IP privados de qualquer uma das NICs a um pool back-end do Balanceador de Carga do Azure. No passado, apenas o endereço IP primário da NIC primária podia ser adicionado a um pool de back-end. Para obter mais informações sobre o balanceamento de carga de várias configurações IP, consulte Balanceamento de carga de várias configurações IP.

Cada NIC anexada a uma VM tem uma ou mais configurações de IP associadas a ela. A cada configuração é atribuído um endereço IP privado estático ou dinâmico. Cada configuração também pode ter um recurso de endereço IP público associado a ela. Para saber mais sobre endereços IP em Azure, veja IP em Azure.

Note

Todas as configurações de IP em uma única NIC devem ser associadas à mesma sub-rede. Se vários IPs em sub-redes diferentes forem desejados, várias NICs em uma VM poderão ser usadas. Para saber mais sobre múltiplas NICs numa VM em Azure, veja Criar VM com Múltiplas NICs.

Há um limite para quantos endereços IP privados podem ser atribuídos a uma NIC. Há também um limite para o número de endereços IP públicos que podem ser usados numa subscrição do Azure. Veja Azure limites para mais detalhes.

Este artigo explica como adicionar múltiplos endereços IP a uma máquina virtual usando a CLI do Azure.

Prerequisites

  • Este tutorial requer a versão 2.0.28 ou posterior da CLI do Azure. Se estiver a usar Azure Cloud Shell, a versão mais recente já está instalada.

Note

Embora as etapas neste artigo atribuam todas as configurações de IP a uma única NIC, você também pode atribuir várias configurações de IP a qualquer NIC em uma VM multi-NIC. Para saber como criar uma VM com várias NICs, consulte Criar uma VM com várias NICs.

Diagrama de recursos de configuração de rede criados no artigo Instruções.

Figura: Diagrama de recursos de configuração de rede criados neste artigo de instruções.

Criar um grupo de recursos

Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos.

Crie um grupo de recursos com az group create chamado myResourceGroup na localização eastus2.

  az group create \
    --name myResourceGroup \
    --location eastus2

Criar uma rede virtual

Nesta seção, você cria uma rede virtual para a máquina virtual.

Use az network vnet create para criar uma rede virtual.

  az network vnet create \
    --resource-group myResourceGroup \
    --location eastus2 \
    --name myVNet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.1.0.0/24

Criar endereços IP públicos

Use az network public-ip create para criar dois endereços IP públicos.

  az network public-ip create \
    --resource-group myResourceGroup \
    --name myPublicIP-1 \
    --sku Standard \
    --version IPv4 \
    --zone 1 2 3

  az network public-ip create \
    --resource-group myResourceGroup \
    --name myPublicIP-2 \
    --sku Standard \
    --version IPv4 \
    --zone 1 2 3

Criar um grupo de segurança de rede

Nesta seção, você cria um grupo de segurança de rede para a máquina virtual e a rede virtual.

Use az network nsg create para criar o grupo de segurança de rede.

  az network nsg create \
    --resource-group myResourceGroup \
    --name myNSG

Note

As regras padrão do grupo de segurança de rede bloqueiam todo o acesso de entrada da internet, incluindo SSH. Para te ligares à máquina virtual, usa o Azure Bastion. Para mais informações, veja Quickstart: Implementar Azure Bastion com definições predefinidas.

Criar uma interface de rede

Você usa az network nic create para criar a interface de rede para a máquina virtual. Os endereços IP públicos e o NSG criado anteriormente estão associados à NIC. A interface de rede está ligada à rede virtual que criou anteriormente.

  az network nic create \
    --resource-group myResourceGroup \
    --name myNIC1 \
    --private-ip-address-version IPv4 \
    --vnet-name myVNet \
    --subnet myBackEndSubnet \
    --network-security-group myNSG \
    --public-ip-address myPublicIP-1

Criar configuração de IP privado e público secundário

Use az network nic ip-config create para criar a configuração de IP privado e público secundário para a NIC. Substitua 10.1.0.5 pelo seu endereço IP privado secundário.

  az network nic ip-config create \
    --resource-group myResourceGroup \
    --name ipconfig2 \
    --nic-name myNIC1 \
    --private-ip-address 10.1.0.5 \
    --private-ip-address-version IPv4 \
    --vnet-name myVNet \
    --subnet myBackendSubnet \
    --public-ip-address myPublicIP-2

Criar configuração de IP privado terciário

Use az network nic ip-config create para criar a configuração de IP privado terciário para a NIC. Substitua 10.1.0.6 pelo seu endereço IP privado secundário.

  az network nic ip-config create \
    --resource-group myResourceGroup \
    --name ipconfig3 \
    --nic-name myNIC1 \
    --private-ip-address 10.1.0.6 \
    --private-ip-address-version IPv4 \
    --vnet-name myVNet \
    --subnet myBackendSubnet

Note

Ao adicionar um endereço IP estático, você deve especificar um endereço válido não utilizado na sub-rede à qual a NIC está conectada.

Criar uma máquina virtual

Use az vm create para criar a máquina virtual.

  az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --nics myNIC1 \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --authentication-type ssh \
    --generate-ssh-keys

Adicionar endereços IP a um sistema operacional VM

Conecte-se e entre em uma VM criada com vários endereços IP privados. Você deve adicionar manualmente todos os endereços IP privados, incluindo o primário, que você adicionou à VM. Conclua as etapas a seguir para seu sistema operacional VM.

Windows Server

Expandir
  1. Abra um prompt de comando ou PowerShell.

  2. Entre ipconfig /all na linha de comando. Você vê o endereço IP privado primário que foi atribuído através do DHCP.

  3. Entre ncpa.cpl na linha de comando para abrir a configuração de Conexões de Rede .

  4. Abra as Propriedades do adaptador de rede atribuído aos novos endereços IP.

  5. Clique duas vezes em Protocolo IP versão 4 (TCP/IPv4).

  6. Selecione Usar o seguinte endereço IP:. Insira os seguintes valores.

    Setting Value
    Endereço IP: Insira o endereço IP privado principal .
    Máscara de sub-rede: Insira uma máscara de sub-rede com base no seu endereço IP.
    Por exemplo, se a sub-rede for uma sub-rede /24 , a máscara de sub-rede será 255.255.255.0.
    Gateway padrão: O primeiro endereço IP na sub-rede.
    Se a sua sub-rede for 10.0.0.0/24, o endereço IP do gateway será 10.0.0.1.
  7. Selecione Usar os seguintes endereços de servidor DNS:. Insira os seguintes valores.

    Setting Value
    Servidor DNS preferido: Insira seu servidor DNS primário.
    Introduza o endereço IP de 168.63.129.16 para usar o DNS Azure predefinido.
  8. Selecione o botão Avançado .

  9. Selecione Adicionar.

  10. Introduza o endereço privado IP que adicionou à interface de rede Azure. Insira a máscara de sub-rede correspondente. Selecione Adicionar.

  11. Repita os passos anteriores para adicionar quaisquer endereços IP privados adicionados à interface de rede do Azure.

Important

Nunca deve atribuir manualmente o endereço IP público atribuído a uma máquina virtual Azure dentro do sistema operativo da máquina virtual. Quando definir manualmente o endereço IP dentro do sistema operativo, certifique-se de que é o mesmo endereço do endereço IP privado atribuído à interface de rede do Azure. A falha ao atribuir o endereço corretamente pode causar perda de conectividade com a máquina virtual. Para obter mais informações, consulte Alterar configurações de endereço IP.

Para obter mais informações sobre endereços IP privados, consulte Endereço IP privado.

  1. Selecione OK para fechar as configurações de endereço IP secundário.

  2. Selecione OK para fechar as configurações do adaptador. Sua conexão RDP é restabelecida.

  3. Abra um prompt de comando ou PowerShell.

  4. Entre ipconfig /all na linha de comando.

  5. Verifique se os endereços IP privados primários e secundários estão presentes na configuração.

    PS C:\Users\azureuser> ipconfig /all
    
    Windows IP Configuration
    
       Host Name . . . . . . . . . . . . : myVM
       Primary Dns Suffix  . . . . . . . :
       Node Type . . . . . . . . . . . . : Hybrid
       IP Routing Enabled. . . . . . . . : No
       WINS Proxy Enabled. . . . . . . . : No
    
    Ethernet adapter Ethernet:
    
       Connection-specific DNS Suffix  . :
       Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter
       Physical Address. . . . . . . . . : 00-0D-3A-E6-CE-A3
       DHCP Enabled. . . . . . . . . . . : No
       Autoconfiguration Enabled . . . . : Yes
       Link-local IPv6 Address . . . . . : fe80::a8d1:11d5:3ab2:6a51%5(Preferred)
       IPv4 Address. . . . . . . . . . . : 10.1.0.4(Preferred)
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       IPv4 Address. . . . . . . . . . . : 10.1.0.5(Preferred)
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       IPv4 Address. . . . . . . . . . . : 10.1.0.6(Preferred)
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       Default Gateway . . . . . . . . . : 10.1.0.1
       DHCPv6 IAID . . . . . . . . . . . : 100666682
       DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2A-A8-26-B1-00-0D-3A-E6-CE-A3
       DNS Servers . . . . . . . . . . . : 168.63.129.16
       NetBIOS over Tcpip. . . . . . . . : Enabled
    
  6. Certifique-se de que o endereço IP privado principal usado no Windows é o mesmo que o endereço IP principal da interface de rede da VM do Azure. Para mais informações, veja Sem acesso à Internet a partir de Azure Windows VM que tenha múltiplos endereços IP.

Validação (Windows Server)

Para validar a conectividade com a Internet a partir da configuração de IP secundária através do IP público, use o seguinte comando. Substitua o 10.1.0.5 pelo endereço IP privado secundário que adicionou à interface de rede da VM do Azure.

ping -S 10.1.0.5 outlook.com

Note

Para configurações de IP secundárias, você pode executar ping na Internet se a configuração tiver um endereço IP público associado a ela. Para configurações de IP primárias, não é necessário um endereço IP público para executar ping na Internet.

SUSE Linux Enterprise e openSUSE

Expandir As distribuições baseadas em SUSE usam o cloud-netconfig plug-in do cloud-netconfig-azure pacote para gerenciar a configuração de IP. Não são necessárias etapas manuais por parte do administrador. O primeiro endereço IP de um conjunto de interface na plataforma é atribuído via DHCP. O plugin cloud-netconfig sonda então continuamente a API do Azure Instance Metadata Service (uma vez por minuto) à procura de mais endereços IP atribuídos à interface e adiciona/remove automaticamente esses endereços IP secundários.

Este plugin deve ser instalado e ativado em novas imagens por padrão. As etapas de configuração para cargas de trabalho antigas podem ser encontradas aqui: https://www.suse.com/c/multi-nic-cloud-netconfig-ec2-azure/.

Ubuntu 14/16

Expandir

Recomendamos consultar a documentação mais recente para a sua distribuição Linux.

  1. Abra uma janela do terminal.

  2. Certifique-se de que você é o usuário root. Se não estiver, digite o seguinte comando:

    sudo -i
    
  3. Atualize o arquivo de configuração da interface de rede (assumindo 'eth0').

    • Mantenha o item de linha existente para dhcp. O endereço IP primário permanece configurado como era anteriormente.

    • Adicione uma configuração para outro endereço IP estático com os seguintes comandos:

      cd /etc/network/interfaces.d/
      ls
      

      Você deve ver um arquivo .cfg.

  4. Abra o ficheiro. Você deve ver as seguintes linhas no final do arquivo:

    auto eth0
    iface eth0 inet dhcp
    
  5. Adicione as seguintes linhas após as linhas que existem no arquivo. Substitua 10.1.0.5 pelo seu endereço IP privado e máscara de sub-rede.

    iface eth0 inet static
    address 10.1.0.5
    netmask 255.255.255.0
    

    Para adicionar outros endereços IP privados, edite o arquivo e adicione os novos endereços IP privados nas linhas subsequentes:

    iface eth0 inet static
    address 10.1.0.5
    netmask 255.255.255.0
    iface eth0 inet static
    address 10.1.0.6
    netmask 255.255.255.0
    
  6. Salve o arquivo usando o seguinte comando:

    :wq
    
  7. Redefina a interface de rede com o seguinte comando:

    ifdown eth0 && ifup eth0
    

    Important

    Execute ifdown e ifup na mesma linha se estiver usando uma conexão remota.

  8. Verifique se o endereço IP foi adicionado à interface de rede com o seguinte comando:

    ip addr list eth0
    

    Deverá ver o endereço IP que adicionou como parte da lista. Example:

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff
    inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fe04:4516/64 scope link
       valid_lft forever preferred_lft forever
    

Validação (Ubuntu 14/16)

Para garantir que você possa se conectar à Internet a partir de sua configuração de IP secundária por meio do IP público associado a ela, use o seguinte comando:

ping -I 10.1.0.5 outlook.com

Note

Para configurações de IP secundárias, você só pode executar ping na Internet se a configuração tiver um endereço IP público associado a ela. Para configurações de IP primárias, não é necessário um endereço IP público para executar ping na Internet.

Para VMs Linux, ao tentar validar a conectividade de saída de uma NIC secundária, talvez seja necessário adicionar rotas apropriadas. Consulte a documentação apropriada para sua distribuição Linux. O seguinte método para atingir esse objetivo:

echo 150 custom >> /etc/iproute2/rt_tables 

ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
  • Certifique-se de substituir:

    • 10.1.0.5 com o endereço IP privado que tem um endereço IP público associado a ele

    • 10.1.0.1 para o gateway padrão

    • eth2 para o nome da sua NIC secundária

Ubuntu 18.04+

Expandir

A partir de 18.04, netplan é usado no Ubuntu para gerenciamento de rede. Recomendamos consultar a documentação mais recente para a sua distribuição Linux.

  1. Abra uma janela do terminal.

  2. Certifique-se de que você é o usuário root. Se não estiver, digite o seguinte comando:

    sudo -i
    
  3. Crie um arquivo para a segunda interface e abra-o em um editor de texto:

    vi /etc/netplan/60-static.yaml
    
  4. Adicione as seguintes linhas ao arquivo, substituindo 10.1.0.5/24 por seu IP e máscara de sub-rede:

    network:
        version: 2
        ethernets:
            eth0:
                addresses:
                    - 10.1.0.5/24
    

    Para adicionar endereços IP privados, edite o arquivo e adicione os novos endereços IP privados nas linhas subsequentes:

    network:
        version: 2
        ethernets:
            eth0:
                addresses:
                    - 10.1.0.5/24
                    - 10.1.0.6/24
    
  5. Salve o arquivo usando o seguinte comando:

    :wq
    
  6. Teste as alterações com netplan try para confirmar a sintaxe:

    netplan try
    

    Note

    netplan try aplicará as alterações temporariamente e reverterá as alterações após 120 segundos. Se houver uma perda de conectividade, aguarde 2 minutos e reconecte-se. Nessa altura, as alterações terão sido revertidas.

  7. Supondo que não haja problemas com netplan try, aplique as alterações de configuração.

    netplan apply
    
  8. Verifique se o endereço IP foi adicionado à interface de rede com o seguinte comando:

    ip addr list eth0
    

    Deverá ver o endereço IP que adicionou como parte da lista. Example:

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff
    inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fe04:4516/64 scope link
       valid_lft forever preferred_lft forever
    

Validação (Ubuntu 18.04+)

Para garantir que você possa se conectar à Internet a partir de sua configuração de IP secundária por meio do IP público associado a ela, use o seguinte comando:

ping -I 10.1.0.5 outlook.com

Note

Para configurações de IP secundárias, você só pode executar ping na Internet se a configuração tiver um endereço IP público associado a ela. Para configurações de IP primárias, não é necessário um endereço IP público para executar ping na Internet.

Para VMs Linux, ao tentar validar a conectividade de saída de uma NIC secundária, talvez seja necessário adicionar rotas apropriadas. Siga a documentação apropriada para sua distribuição Linux. O método a seguir é uma maneira de atingir esse objetivo:

echo 150 custom >> /etc/iproute2/rt_tables 

ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
  • Certifique-se de substituir:

    • 10.1.0.5 com o endereço IP privado que tem um endereço IP público associado a ele

    • 10.1.0.1 para o gateway padrão

    • eth2 para o nome da sua NIC secundária

Red Hat Enterprise Linux e outros

Expandir

Note

Para configurar os endereços IP extras no RHEL10.x, basta reiniciar o NetworkManger com: systemctl restart NetworkManger.service ou reiniciar o sistema. Não são necessárias outras etapas.

RHEL 8.6 e acima, RHEL 9

A partir do RHEL 8.6 e superiores e RHEL 9, o pacote "networkmanager-cloud-setup" pode lidar com múltiplas configurações de IP e a sua configuração de rotas associada.

  1. Desativei o cloud-init para gerir a configuração secundária de IP nos respetivos ficheiros /etc/cloud/cloud.cfg.d/99-apply-network-config.cfg ou /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg. Isto permitirá que o NetworkManager e o nm-cloud-setup geram toda a configuração da rede
[root@rhel8 ~]# cat /etc/cloud/cloud.cfg.d/99-apply-network-config.cfg
datasource:
  Azure:
     apply_network_config: False
  1. Instale o pacote "NetworkManager-cloud-setup" se ainda não estiver instalado
]# yum install NetworkManager-cloud-setup
Red Hat Enterprise Linux 8 for x86_64 - BaseOS from RHUI (RPMs)                                                                                                39 MB/s |  66 MB     00:01
Red Hat Enterprise Linux 8 for x86_64 - Supplementary (RPMs) from RHUI                                                                                        2.3 MB/s | 340 kB     00:00
Red Hat Enterprise Linux 8 for x86_64 - AppStream from RHUI (RPMs)                                                                                             41 MB/s |  60 MB     00:01
Red Hat CodeReady Linux Builder for RHEL 8 x86_64 (RPMs) from RHUI                                                                                             33 MB/s | 8.9 MB     00:00
Red Hat Ansible Engine 2 for RHEL 8 x86_64 (RPMs) from RHUI                                                                                                    14 MB/s | 2.5 MB     00:00
Dependencies resolved.
==============================================================================================================================================================================================
 Package                                           Architecture                  Version                                   Repository                                                    Size
==============================================================================================================================================================================================
Installing:
 NetworkManager-cloud-setup                        x86_64                        1:1.40.16-13.el8_9                        rhel-8-for-x86_64-appstream-rhui-rpms                        198 k
Upgrading:
 NetworkManager                                    x86_64                        1:1.40.16-13.el8_9                        rhel-8-for-x86_64-baseos-rhui-rpms                           2.3 M
 NetworkManager-libnm                              x86_64                        1:1.40.16-13.el8_9                        rhel-8-for-x86_64-baseos-rhui-rpms                           1.9 M
 NetworkManager-team                               x86_64                        1:1.40.16-13.el8_9                        rhel-8-for-x86_64-baseos-rhui-rpms                           161 k
 NetworkManager-tui                                x86_64                        1:1.40.16-13.el8_9                        rhel-8-for-x86_64-baseos-rhui-rpms                           356 k

Transaction Summary
==============================================================================================================================================================================================
Install  1 Package
Upgrade  4 Packages

Total download size: 4.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): NetworkManager-cloud-setup-1.40.16-13.el8_9.x86_64.rpm                                                                                                 2.0 MB/s | 198 kB     00:00
(2/5): NetworkManager-1.40.16-13.el8_9.x86_64.rpm                                                                                                              18 MB/s | 2.3 MB     00:00
(3/5): NetworkManager-team-1.40.16-13.el8_9.x86_64.rpm                                                                                                        4.1 MB/s | 161 kB     00:00
(4/5): NetworkManager-libnm-1.40.16-13.el8_9.x86_64.rpm                                                                                                        12 MB/s | 1.9 MB     00:00
(5/5): NetworkManager-tui-1.40.16-13.el8_9.x86_64.rpm                                                                                                         8.8 MB/s | 356 kB     00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                          28 MB/s | 4.9 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                      1/1
  Running scriptlet: NetworkManager-libnm-1:1.40.16-13.el8_9.x86_64                                                                                                                       1/1
  Upgrading        : NetworkManager-libnm-1:1.40.16-13.el8_9.x86_64                                                                                                                       1/9
  Running scriptlet: NetworkManager-libnm-1:1.40.16-13.el8_9.x86_64                                                                                                                       1/9
  Running scriptlet: NetworkManager-1:1.40.16-13.el8_9.x86_64                                                                                                                             2/9
  Upgrading        : NetworkManager-1:1.40.16-13.el8_9.x86_64                                                                                                                             2/9
  Running scriptlet: NetworkManager-1:1.40.16-13.el8_9.x86_64                                                                                                                             2/9
  Installing       : NetworkManager-cloud-setup-1:1.40.16-13.el8_9.x86_64                                                                                                                 3/9
  Running scriptlet: NetworkManager-cloud-setup-1:1.40.16-13.el8_9.x86_64                                                                                                                 3/9
  Upgrading        : NetworkManager-team-1:1.40.16-13.el8_9.x86_64                                                                                                                        4/9
  Upgrading        : NetworkManager-tui-1:1.40.16-13.el8_9.x86_64                                                                                                                         5/9
  Cleanup          : NetworkManager-tui-1:1.40.0-1.el8.x86_64                                                                                                                             6/9
  Cleanup          : NetworkManager-team-1:1.40.0-1.el8.x86_64                                                                                                                            7/9
  Running scriptlet: NetworkManager-1:1.40.0-1.el8.x86_64                                                                                                                                 8/9
  Cleanup          : NetworkManager-1:1.40.0-1.el8.x86_64                                                                                                                                 8/9
  Running scriptlet: NetworkManager-1:1.40.0-1.el8.x86_64                                                                                                                                 8/9
  Cleanup          : NetworkManager-libnm-1:1.40.0-1.el8.x86_64                                                                                                                           9/9
  Running scriptlet: NetworkManager-libnm-1:1.40.0-1.el8.x86_64                                                                                                                           9/9
  Verifying        : NetworkManager-cloud-setup-1:1.40.16-13.el8_9.x86_64                                                                                                                 1/9
  Verifying        : NetworkManager-1:1.40.16-13.el8_9.x86_64                                                                                                                             2/9
  Verifying        : NetworkManager-1:1.40.0-1.el8.x86_64                                                                                                                                 3/9
  Verifying        : NetworkManager-libnm-1:1.40.16-13.el8_9.x86_64                                                                                                                       4/9
  Verifying        : NetworkManager-libnm-1:1.40.0-1.el8.x86_64                                                                                                                           5/9
  Verifying        : NetworkManager-team-1:1.40.16-13.el8_9.x86_64                                                                                                                        6/9
  Verifying        : NetworkManager-team-1:1.40.0-1.el8.x86_64                                                                                                                            7/9
  Verifying        : NetworkManager-tui-1:1.40.16-13.el8_9.x86_64                                                                                                                         8/9
  Verifying        : NetworkManager-tui-1:1.40.0-1.el8.x86_64                                                                                                                             9/9
Installed products updated.

Upgraded:
  NetworkManager-1:1.40.16-13.el8_9.x86_64   NetworkManager-libnm-1:1.40.16-13.el8_9.x86_64   NetworkManager-team-1:1.40.16-13.el8_9.x86_64   NetworkManager-tui-1:1.40.16-13.el8_9.x86_64
Installed:
  NetworkManager-cloud-setup-1:1.40.16-13.el8_9.x86_64

Complete!
  1. Para permitir que o "nm-cloud-setup" gere a configuração secundária de IP, crie ficheiros nm-cloud-setup.service e nm-cloud-setup.timer (ajuste os parâmetros OnBootSec e OnUnitActiveSec conforme as suas necessidades)
[root@rhel8 ~]# cat /etc/systemd/system/nm-cloud-setup.service
[Unit]
Description=Automatically configure NetworkManager in cloud
Documentation=man:nm-cloud-setup(8)
Before=network-online.target
After=NetworkManager.service

[Service]
Environment=NM_CLOUD_SETUP_AZURE=yes
Type=oneshot
ExecStart=/usr/libexec/nm-cloud-setup

[Install]
WantedBy=NetworkManager.service
[root@rhel8 ~]# cat /etc/systemd/system/nm-cloud-setup.timer
[Unit]
Description=Periodically run nm-cloud-setup

[Timer]
OnBootSec=1min
OnUnitActiveSec=1min

[Install]
WantedBy=timers.target

  1. Os serviços de ativação são o daemon de recarga
systemctl enable --now nm-cloud-setup.service
systemctl start nm-cloud-setup.service
systemctl enable --now nm-cloud-setup.timer
systemctl daemon-reload
  1. Reiniciar a VM e verificar. A VM deverá agora identificar com sucesso os respetivos IPs primários e secundários.

RHEL 8.5 e abaixo

  1. Abra uma janela do terminal.

  2. Certifique-se de que você é o usuário root. Se não estiver, digite o seguinte comando:

    sudo -i
    
  3. Digite sua senha e siga as instruções conforme solicitado. Quando você for o usuário root, vá para a pasta de scripts de rede com o seguinte comando:

    cd /etc/sysconfig/network-scripts
    
  4. Liste os arquivos ifcfg relacionados usando o seguinte comando:

    ls ifcfg-*
    

    Você deve ver ifcfg-eth0 como um dos arquivos.

  5. Crie um novo arquivo de configuração para cada IP adicionado ao sistema.

    touch ifcfg-eth0:0
    
  6. Abra o arquivo ifcfg-eth0:0 com o seguinte comando:

    vi ifcfg-eth0:0
    
  7. Adicione conteúdo ao arquivo, eth0:0 neste caso, com o seguinte comando. Substitua 10.1.0.5 pelo seu novo endereço IP privado e máscara de sub-rede.

    DEVICE=eth0:0
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=10.1.0.5
    NETMASK=255.255.255.0
    
  8. Salve o arquivo com o seguinte comando:

    :wq
    
  9. Crie um arquivo de configuração por endereço IP para adicionar com seus valores correspondentes:

    touch ifcfg-eth0:1
    
    vi ifcfg-eth0:1
    
    DEVICE=eth0:1
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=10.1.0.6
    NETMASK=255.255.255.0
    
    :wq
    
  10. Reinicie os serviços de rede e certifique-se de que as alterações são bem-sucedidas executando os seguintes comandos:

    systemctl restart NetworkManager.service
    ifconfig
    

    Você deve ver o endereço IP ou endereços que você adicionou na lista retornada.

    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.1.0.4  netmask 255.255.255.0  broadcast 10.1.0.255
        inet6 fe80::6245:bdff:fe7d:704a  prefixlen 64  scopeid 0x20<link>
        ether 60:45:bd:7d:70:4a  txqueuelen 1000  (Ethernet)
        RX packets 858  bytes 244215 (238.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1021  bytes 262077 (255.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.1.0.5  netmask 255.255.255.0  broadcast 10.1.0.255
        ether 60:45:bd:7d:70:4a  txqueuelen 1000  (Ethernet)
    
    eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.1.0.6  netmask 255.255.255.0  broadcast 10.1.0.255
        ether 60:45:bd:7d:70:4a  txqueuelen 1000  (Ethernet)
    

Validação (Red Hat e outros)

Para garantir que você possa se conectar à Internet a partir de sua configuração de IP secundária por meio do IP público associado a ela, use o seguinte comando:

ping -I 10.0.0.5 outlook.com

Note

Para configurações de IP secundárias, você só pode executar ping na Internet se a configuração tiver um endereço IP público associado a ela. Para configurações de IP primárias, não é necessário um endereço IP público para executar ping na Internet.

Para VMs Linux, ao tentar validar a conectividade de saída de uma NIC secundária, talvez seja necessário adicionar rotas apropriadas. Consulte a documentação apropriada para sua distribuição Linux. O seguinte método para atingir esse objetivo:

echo 150 custom >> /etc/iproute2/rt_tables 

ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
  • Certifique-se de substituir:

    • 10.0.0.5 com o endereço IP privado que tem um endereço IP público associado a ele

    • 10.0.0.1 para o gateway padrão

    • eth2 para o nome da sua NIC secundária

Debian GNU/Linux

Expandir

Recomendamos consultar a documentação mais recente para a sua distribuição Linux.

  1. Abra uma janela do terminal.

  2. Certifique-se de que você é o usuário root. Se não estiver, digite o seguinte comando:

    sudo -i
    
  3. Atualize o arquivo de configuração da interface de rede (assumindo 'eth0').

    • Mantenha o item de linha existente para dhcp. O endereço IP primário permanece configurado como era anteriormente.

    • Adicione uma configuração para cada endereço IP estático usando os seguintes comandos:

      cd /etc/network/interfaces.d/
      ls
      

      Você deve ver um arquivo .cfg.

  4. Abra o ficheiro. Você deve ver as seguintes linhas no final do arquivo:

    auto eth0
    iface eth0 inet dhcp
    
  5. Adicione as seguintes linhas após as linhas que existem no arquivo. Substitua 10.1.0.5 pelo seu endereço IP privado e máscara de sub-rede.

    iface eth0 inet static
    address 10.1.0.5
    netmask 255.255.255.0
    

    Adicione as novas informações de endereços IP no arquivo de configuração:

    iface eth0 inet static
    address 10.1.0.5
    netmask 255.255.255.0
    iface eth0 inet static
    address 10.1.0.6
    netmask 255.255.255.0
    
  6. Salve o arquivo usando o seguinte comando:

    :wq
    
  7. Reinicie os serviços de rede para que as alterações entrem em vigor. Para Debian 8 e superior, use:

    systemctl restart networking
    

    Para versões anteriores do Debian, você pode usar os comandos abaixo:

    service networking restart
    
  8. Verifique se o endereço IP foi adicionado à interface de rede com o seguinte comando:

    ip addr list eth0
    

    Deverá ver o endereço IP que adicionou como parte da lista. Example:

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff
    inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fe04:4516/64 scope link
       valid_lft forever preferred_lft forever
    

Validação (Debian GNU/Linux)

Para garantir que você possa se conectar à Internet a partir de sua configuração de IP secundária por meio do IP público associado a ela, use o seguinte comando:

ping -I 10.1.0.5 outlook.com

Note

Para configurações de IP secundárias, você só pode executar ping na Internet se a configuração tiver um endereço IP público associado a ela. Para configurações de IP primárias, não é necessário um endereço IP público para executar ping na Internet.

Para VMs Linux, ao tentar validar a conectividade de saída de uma NIC secundária, talvez seja necessário adicionar rotas apropriadas. Consulte a documentação apropriada para sua distribuição Linux. O seguinte método para atingir esse objetivo:

echo 150 custom >> /etc/iproute2/rt_tables 

ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
  • Certifique-se de substituir:

    • 10.1.0.5 com o endereço IP privado que tem um endereço IP público associado a ele

    • 10.1.0.1 para o gateway padrão

    • eth2 para o nome da sua NIC secundária

Próximos passos