Adicionar NICs dinâmicas a uma instância

Nesta página, descrevemos como adicionar uma interface de rede dinâmica (NIC) a uma instância de VM.

Para informações sobre como criar novas instâncias, consulte Criar VMs com várias interfaces de rede.

Antes de começar

Antes de adicionar NICs dinâmicas a uma instância, faça o seguinte:

Adicionar uma NIC dinâmica

Esta seção descreve como adicionar uma NIC dinâmica a uma instância.

Ao adicionar uma NIC dinâmica, talvez você observe um atraso na propagação. Esse atraso normalmente é de alguns segundos, mas pode levar até um minuto em casos raros.

gcloud

Para adicionar uma NIC dinâmica a uma instância, use o comando gcloud beta compute instances network-interfaces add.

gcloud beta compute instances network-interfaces add INSTANCE_NAME \
   --zone=ZONE \
   --vlan=VLAN_ID \
   --parent-nic-name=PARENT_VNIC_NAME \
   --network=NETWORK \
   --subnetwork=SUBNET

Substitua:

  • INSTANCE_NAME: o nome da instância para adicionar a NIC dinâmica
  • ZONE: a zona da instância;
  • VLAN_ID: o ID da VLAN da NIC dinâmica
  • PARENT_VNIC_NAME: o nome da vNIC mãe, como nic0
  • NETWORK: a rede em que a NIC dinâmica é anexada
  • SUBNET: a sub-rede em que a NIC dinâmica é anexada

Como alternativa, você pode adicionar uma NIC dinâmica a uma instância ao atualizar as propriedades dela. Para mais informações, consulte Atualizar propriedades da instância.

Para adicionar NICs dinâmicos a um grupo gerenciado de instâncias (MIG), consulte o comando gcloud beta compute instance-groups managed set-instance-template.

API

Para adicionar um NIC dinâmico a uma instância, use o método instances.addNetworkInterface.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addNetworkInterface
{
  "subnetwork": "regions/REGION/subnetworks/SUBNET",
  "parentNicName": "PARENT_VNIC_NAME",
  "vlan": "VLAN_ID"
}

Substitua:

  • PROJECT_ID: o ID do projeto que contém a instância.
  • ZONE: a zona que contém a instância
  • INSTANCE_NAME: o nome da instância a que você quer adicionar uma NIC dinâmica.
  • REGION: a região que contém a instância
  • SUBNET: a sub-rede em que o NIC dinâmico é anexado
  • PARENT_VNIC_NAME: o nome da vNIC mãe, como nic0
  • VLAN_ID: o ID da VLAN da NIC dinâmica

Como alternativa, você pode adicionar uma NIC dinâmica a uma instância ao atualizar as propriedades dela. Para mais informações, consulte Atualizar propriedades da instância.

Para adicionar NICs dinâmicos a um grupo gerenciado de instâncias (MIG), consulte o método instanceGroupManagers.setInstanceTemplate.

Configurar o SO convidado para NICs dinâmicas

Esta seção descreve como concluir a configuração adicional do SO convidado necessária ao adicionar NICs dinâmicas a uma instância nova ou existente.

Escolha uma das seguintes opções de configuração:

Opção de configuração Descrição
Configurar o gerenciamento automático de NICs dinâmicas (recomendado)

Use o agente convidado do Google para o gerenciamento automático de NICs dinâmicas.

O ambiente convidado inclui o agente convidado do Google, que automatiza a instalação e o gerenciamento de interfaces VLAN no namespace raiz em distribuições Linux de imagens do SO Google Cloud . Esse recurso tem suporte na versão 20250204.02 e mais recentes do agente convidado do Google.

Configurar o SO convidado manualmente

Execute comandos no SO convidado para instalar as NICs dinâmicas.

Se você usar essa opção, a configuração não será mantida automaticamente após a reinicialização da instância. Para que as configurações persistam após uma reinicialização, use o método recomendado para configurar interfaces de rede persistentes para sua distribuição do Linux. Por exemplo, consulte NetworkConfiguration para o Debian e interfaces para o Ubuntu.

Configurar o gerenciamento automático de NICs dinâmicas

Esta seção descreve como configurar o gerenciamento automático de NICs dinâmicas usando o agente convidado do Google.

Você só precisa concluir essas etapas uma vez por instância. Se você adicionou uma NIC dinâmica a uma instância em que já concluiu essas etapas, não é necessário repeti-las.

Para configurar o gerenciamento automático de NICs dinâmicas:

  1. Conecte-se à instância usando SSH.

  2. Verifique se a instância está executando o agente convidado do Google na versão 20250204.02 ou mais recente:

    1. Para determinar se a instância está executando o agente de convidado do Google, execute o comando apropriado listado em Pacotes instalados para o ambiente de convidado.

      1. Se a instância não estiver executando o agente convidado do Google, instale o ambiente convidado.

      2. Se a instância estiver executando o agente convidado do Google, atualize o ambiente do convidado.

      Instalar ou atualizar o ambiente convidado garante que você tenha a versão mais recente do agente convidado do Google. Para confirmar a versão, siga as etapas em Como validar o ambiente de convidado.

  3. Configure o agente convidado do Google para gerenciar NICs dinâmicas:

    1. Abra ou crie o arquivo de configuração do ambiente de convidado.

      edit /etc/default/instance_configs.cfg
      
    2. Adicione o seguinte ao arquivo de configuração, salve as alterações e saia do editor.

      [NetworkInterfaces]
      vlan_setup_enabled = true
      manage_primary_nic = true
      

      Para informações sobre essas configurações, consulte:

      • vlan_setup_enabled = true: configura o agente convidado do Google para instalar e gerenciar NICs dinâmicas.
      • manage_primary_nic = true: uma configuração adicional necessária para que o agente convidado do Google gerencie NICs dinâmicas criadas em nic0

      Para mais informações sobre como editar o arquivo de configuração do agente convidado, consulte Configuração na documentação do agente convidado do Google.

    3. Reinicie o agente convidado executando o comando a seguir. Como alternativa, reinicie a instância.

      sudo systemctl restart google-guest-agent.service
      
  4. Liste as interfaces de rede na sua instância para conferir se o agente de convidado do Google instalou as NICs dinâmicas.

    Por exemplo, o comando a seguir mostra um nome como a-gcp.ens4.11 para uma NIC dinâmica com um ID de VLAN de 11 criado como filho da interface ens4.

    sudo ip -d addr
    

Configurar o SO convidado manualmente

Para configurar NICs dinâmicas no SO convidado de uma instância manualmente:

  1. Conecte-se à instância usando SSH.

  2. Se a instância estiver executando o agente convidado do Google, desative o gerenciamento automático de NICs dinâmicas. É possível determinar se a instância está executando o agente de convidado do Google usando o comando adequado listado em Pacotes instalados para o ambiente de convidado.

    Para desativar o gerenciamento automático de NICs dinâmicas:

    1. Abra ou crie o arquivo de configuração do ambiente de convidado.

        edit /etc/default/instance_configs.cfg
        

    2. Adicione o seguinte ao arquivo de configuração, salve as alterações e saia do editor.

      [NetworkInterfaces]
      vlan_setup_enabled = false
      manage_primary_nic = false
      

      Para mais informações sobre como editar o arquivo de configuração do agente convidado, consulte Configuração na documentação do agente convidado do Google.

    3. Reinicie o agente convidado executando o comando a seguir. Como alternativa, reinicie a instância.

      sudo systemctl restart google-guest-agent.service
      
  3. Para cada NIC dinâmica criada, faça o seguinte:

    1. Receba o endereço MAC da vNIC pai. Para encontrar o endereço MAC, consulte o servidor de metadados executando o seguinte comando:

      curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/VNIC_NUMBER/mac -H "Metadata-Flavor: Google"
      

      Substitua VNIC_NUMBER pelo número da vNIC mãe. Por exemplo, 0 para nic0 ou 1 para nic1.

    2. Configure uma subinterface no SO convidado da instância. Por exemplo, em uma VM do Debian, execute os seguintes comandos:

      sudo modprobe 8021q
      sudo ip link add link VNIC_NAME name VNIC_NAME.VLAN_ID type vlan id VLAN_ID
      sudo ip addr add IP_ADDRESS dev VNIC_NAME.VLAN_ID
      sudo ip link set dev VNIC_NAME.VLAN_ID address MAC_ADDRESS
      sudo ip link set up VNIC_NAME.VLAN_ID
      

      Substitua:

      • VNIC_NAME: o nome da vNIC pai atribuída pelo sistema operacional, como eth1 ou ens4.
      • IP_ADDRESS: o endereço IP da NIC dinâmica criada.
      • VLAN_ID: o ID da VLAN atribuído à NIC dinâmica
      • MAC_ADDRESS: o endereço MAC que você recebeu na etapa anterior.