Resolver problemas de VMs com várias interfaces de rede

Nesta página, apresentamos as etapas de solução de problemas comuns que você pode encontrar ao criar e usar VMs com várias interfaces de rede.

Não consigo criar uma VM com várias interfaces

Veja uma das seguintes mensagens de erro:

  • Invalid value for field 'resource': ''. Too many network interfaces. The maximum number of network interfaces allowed for this machine type is.

    Se você receber essa mensagem de erro, está tentando criar mais interfaces do que o máximo aceito pelo tipo de máquina da sua instância. Consulte a tabela de número máximo de interfaces.

  • Networks must be distinct for NICs attached to a VM.

    Se você receber essa mensagem, está tentando criar mais de uma interface na mesma rede. Cada interface de rede precisa ser anexada a uma rede VPC diferente.

  • Subnetwork CIDR ranges must be non-overlapping for NICs attached to a VM.

    Se você receber essa mensagem, os intervalos CIDR associados às interfaces da sua VM estão sobrepostos. Esses intervalos CIDR incluem todos os intervalos primários de sub-redes associadas às interfaces da VM, bem como os intervalos secundários usados nos intervalos de IP de alias. Cada interface é anexada a uma sub-rede, cada uma em uma rede VPC diferente, que não pode se sobrepor a sub-redes de outras interfaces. Por exemplo, se você estiver tentando criar sua instância na região REGION_A, poderá verificar os intervalos CIDR principais da sub-rede usando o seguinte comando ou o Console do Google Cloud.

    gcloud compute networks subnets list --regions REGION_A
    NAME                REGION      NETWORK          RANGE
    default             REGION_A  default          10.138.0.0/20
    overlapping-subnet  REGION_A  test-network     10.138.8.0/24
    

    Para verificar os intervalos de CIDR de sub-rede secundária, use o seguinte comando ou o Console do Google Cloud.

    gcloud compute networks subnets describe overlapping-subnet --region REGION_A
    
    ...
    ipCidrRange: 10.128.8.0/24
    ...
    secondaryIpRanges:
    - ipCidrRange: 10.138.8.0/24
      rangeName: conflicting-range
    
  • Multiple network interfaces are not supported on legacy networks.

    Se você receber essa mensagem, está tentando criar sua instância em uma rede legada. Instâncias com várias interfaces não são compatíveis com redes legadas. Você pode verificar se uma rede é legada usando um dos seguintes métodos:

    • No console do Google Cloud, acesse a página Redes VPC e verifique a coluna Modo.
    • Execute o comando gcloud compute networks list e verifique o campo SUBNET_MODE.
  • Required 'compute.instances.create' permission for 'projects/PROJECT_ID/zones/ZONE/instances/test-inst'

    Se você receber essa mensagem, a conta que você usou para fazer login não tem as permissões do IAM necessárias para criar uma instância. Para mais informações sobre os papéis necessários para a criação de instâncias, consulte Permissões, IAM e instâncias com várias interfaces de rede. Verifique se a política do IAM associada ao projeto concede a você um dos seguintes papéis: OWNER, EDITOR ou compute.instanceAdmin.v1. Para criar instâncias na VPC compartilhada, você também precisa do papel compute.networkUser. No exemplo a seguir, a conta email2@gmail.com não tem permissões do IAM suficientes para criar uma instância. Para instruções mais detalhadas, consulte o guia do IAM Como conceder, alterar e revogar acesso a recursos.

    gcloud projects get-iam-policy PROJECT_ID
    bindings:
    - members:
      - user:email1@gmail.com
        role: roles/owner
    - members:
      - serviceAccount:our-project-123@appspot.gserviceaccount.com
      - serviceAccount:123456789012-compute@developer.gserviceaccount.com
        role: roles/editor
    - members:
      - user:email2@gmail.com
        role: roles/viewer
    etag: BwUjMhXbSPU=
    version: 1
    

    Peça ao proprietário ou editor do seu projeto que conceda a você um papel de OWNER, EDITOR ou compute.instanceAdmin.v1. Você precisaria da função compute.networkUser também se estivesse associando qualquer interface a uma sub-rede pertencente à VPC compartilhada.

    gcloud projects set-iam_policy --member user:email2@gmail.com --role roles/editor
    

Não consigo me conectar ao endereço IP interno de uma interface secundária

  • Verifique as regras de firewall para ver se elas permitem a conectividade com a interface secundária da VM. Observe as regras de firewall para a rede que está conectada à interface secundária acessando o Console do Google Cloud e clicando na rede VPC apropriada ou usando o seguinte comando gcloud.

    gcloud compute firewall-rules list --filter='network:NETWORK_NAME'
    
  • Verifique se você está tentando se conectar a uma interface secundária de um endereço de Internet ou de fora da rede da interface secundária. Só é possível se conectar ao IP interno de uma interface de dentro da respectiva rede. Se você precisa alcançar essa interface de fora da rede, é possível atribuir um endereço IP externo à interface secundária.

  • Verifique se você está tentando se conectar ao IP interno da interface secundária de fora da sub-rede à qual a interface secundária está anexada, de uma outra sub-rede da mesma rede ou de uma rede com peering. Várias interfaces de rede por instância explicam a interação entre o peering da VPC e instâncias de VM com várias interfaces. Para alcançar interfaces secundárias de fora da sub-rede da interface, talvez seja necessário configurar rotas na VM. Consulte Comportamento do DHCP com várias interfaces de rede para mais detalhes sobre como o DHCP programa rotas padrão na VM.

  • Se você estiver tentando acessar um endereço IPv6, consulte também Não consigo me conectar ao endereço IPv6 de uma interface secundária.

Não consigo me conectar a uma interface secundária usando um endereço IP externo

O servidor DHCP programa uma rota padrão somente na interface de rede principal da VM. Se você quiser se conectar à interface secundária usando um IP externo, há duas opções. Se você precisa apenas se conectar fora da rede na interface de rede secundária, é possível definir uma rota padrão nessa interface de rede. Caso contrário, use a abordagem descrita no tutorial Configurar o roteamento em uma interface extra para configurar uma tabela de roteamento separada usando o roteamento de políticas com base na origem na sua VM.

Se você estiver tentando acessar um endereço IPv6, consulte também Não consigo me conectar ao endereço IPv6 de uma interface secundária.

Não consigo me conectar ao endereço IPv6 de uma interface secundária

Se você estiver tentando acessar um endereço IPv6, verifique se a VM tem a versão google-guest-agent 20220603.00 ou posterior instalada. Para mais informações sobre como gerenciar versões google-guest-agent, consulte Ambiente convidado.

Se você tiver uma versão anterior do google-guest-agent, as interfaces secundárias não receberão uma rota de sub-rede IPv6. Recomendamos que você atualize o agente convidado para que as rotas sejam configuradas corretamente.

No entanto, como solução alternativa, é possível criar um script de inicialização para fazer a seguinte alteração de configuração em cada interface secundária.

sudo sysctl -w net.ipv6.conf.INTERFACE_NAME.accept_ra_rt_info_max_plen=128

Substitua INTERFACE_NAME pelo nome da interface, por exemplo, eth1 ou ens5.

Estou com problemas de conectividade ao usar uma máscara de rede que não seja /32

Por padrão, o servidor de metadados da instância responde apenas às solicitações ARP para o gateway padrão.

Para configurar interfaces com uma máscara de rede diferente de /32, crie uma imagem usando a sinalização --guest-os-features MULTI_IP_SUBNET e use-a para criar sua instância. Por exemplo, se você estiver usando uma imagem baseada em debian-9, poderá criar uma imagem usando o seguinte comando:

gcloud compute images create debian-9-multi-ip-subnet \
     --source-disk debian-9-disk \
     --source-disk-zone ZONE_A \
     --guest-os-features MULTI_IP_SUBNET

Para visualizar os recursos de convidado configurados na imagem, execute o comando gcloud compute images describe na imagem do convidado.

gcloud compute images describe debian-9-multi-ip-subnet

Para mais informações sobre como criar imagens personalizadas, consulte Criar, excluir e suspender o uso de imagens personalizadas.

Não consigo resolver o nome do host interno de uma VM com várias interfaces de rede

Quando uma consulta DNS é executada com um nome do host interno, ela é resolvida na interface de rede principal (nic0) da instância.

Se nic0 estiver anexado a uma rede VPC diferente da rede VPC da instância que emite a consulta DNS, a consulta DNS falhará. O DNS interno é resolvido somente dentro de uma determinada rede VPC. Para mais informações, consulte Resolução de DNS com várias interfaces de rede.

Como solucionar problemas usando o console serial

Muitas vezes, é recomendável ativar o console serial em uma VM para depurar problemas relacionados à configuração. É possível ativar o console serial para depuração interativa seguindo as etapas em Solução de problemas usando o console serial.