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 campoSUBNET_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
oucompute.instanceAdmin.v1
. Para criar instâncias na VPC compartilhada, você também precisa do papelcompute.networkUser
. No exemplo a seguir, a contaemail2@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
oucompute.instanceAdmin.v1
. Você precisaria da funçãocompute.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.