Como solucionar problemas de ICMP

Este tutorial mostra como usar iterativamente o Connectivity Tests para identificar e corrigir um problema com a conectividade de rede.

Nesse caso, as regras de firewall da nuvem privada virtual impedem que o endereço IP externo de uma instância de máquina virtual (VM, na sigla em inglês) use o protocolo ICMP para executar ping no endereço IP externo de outra VM.

Como os problemas de comunicação de VM para VM geralmente são problemas de conectividade de rede, o Connectivity Tests pode fornecer informações sobre possíveis problemas de configuração, para que você possa corrigi-los. Em seguida, você pode executar o Connectivity Tests novamente para verificar sua correção.

Visão geral

Nesse caso, você configurou duas instâncias de VM na mesma sub-rede da rede de nuvem privada virtual. Ambas as VMs têm endereços IP externos. Quando você testa a conectividade entre eles enviando um pacote de ping de vm1 para o endereço IP externo de vm2, o ping não funciona.

Como solucionar problemas de um ping negado entre duas VMs
Como solucionar problemas de um ping negado entre duas VMs

Antes de começar

Antes de iniciar o tutorial, siga todas as etapas na seção Before you begin de Como executar o Connectivity Tests.

Também pode ser útil revisar como as regras de firewall funcionam.

Configurar recursos de rede

Nesta seção, você configura os recursos do Google Cloud no caminho do teste.

Configurar uma rede VPC

Você pode usar uma rede e sub-rede atuais que contenham as VMs ou criar uma nova rede e sub-rede.

Configurar duas instâncias da VM

  1. As instâncias da VM neste tutorial estão localizadas na mesma rede e sub-rede VPC. Você pode usar VMs atuais ou criar novas.
  2. Atribua a vm1 e vm2 um endereço IP externo ao criá-los. Anote os endereços como você os usará mais tarde.

Criar regra de firewall default-deny-outgoing-ping

Depois de criar as VMs, crie uma regra de firewall de VPC de saída chamada default-deny-outgoing-ping. Esta regra nega o protocolo ICMP de vm1 a vm2.

Verifique se não há regras de firewall atuais nesta rede que substituam essa regra.

Use os valores da tabela a seguir para configurar esta regra de firewall:

Campo de regra do firewall Valor
Nome default-deny-outgoing-ping
Rede Use a rede VPC em que as VMs estão localizadas.
Priority 1000
Direção egress
Action on match deny
Metas Selecione All instances in the network.
Intervalos de IP de destino Use o endereço IP externo de vm2.
Specified protocols and ports Marque other protocols e insira icmp.

Criar regra de firewall default-deny-ingress-to-vm2

Crie uma regra de firewall de entrada chamada default-deny-ingress-to-vm2 para negar o protocolo ICMP para o endereço IP externo de vm2.

Verifique se não há regras de firewall atuais em sua rede que substituam essa regra. Use os valores da tabela a seguir para criar a regra:

Campo de regra do firewall Valor
Nome default-deny-ingress-to-vm2
Rede Use a rede VPC em que as VMs estão localizadas.
Priority 65534
Direção ingress
Action on match deny
Metas Selecione All instances in the network.
Intervalos de IP de origem Use o endereço IP externo de vm1.
Specified protocols and ports Marque other protocols e insira icmp.

Execute o primeiro trace

Usando o Console do Cloud, execute um trace para determinar se um pacote ICMP (ping) pode passar de vm1 para o endereço IP externo de vm2. Use a tabela a seguir para valores de entrada para o trace.

Depois de executar esse trace, o Connectivity Tests informa que o pacote de trace foi descartado devido à regra do firewall default-deny-outgoing-ping.

Nome do campo valor
Protocolo icmp
Endereço IP de origem Use o endereço IP externo de vm1.
Marque a caixa This is an external IP address used in Google Cloud.
Projeto de endereço IP de origem Verifique o nome do projeto para vm1.
Endereço IP de destino Use o endereço IP externo de vm2.
Marque a caixa This is an external IP address used in Google Cloud.
Projeto do endereço IP de destino Verifique o nome do projeto para vm2.

O snapshot a seguir do Console do Cloud mostra que o pacote de trace foi descartado na regra de firewall default-deny-outgoing-ping.

Snapshot da interface do usuário do console do trace que contém o ping de saída negado
Snapshot da interface do usuário do console do trace que contém o ping de saída negado

Executar um segundo trace após desativar a regra de firewall default-deny-outgoing-ping

  1. Para permitir o teste de ping vm2, desative temporariamente a regra de firewall default-deny-outgoing-ping.
  2. Após a atualização da configuração, execute o trace novamente.
  3. O trace falha novamente. O pacote foi descartado devido a essa regra de firewall negar um pacote ICMP de entrada para o endereço IP externo de vm2.

O snapshot a seguir do Console do Cloud mostra que um pacote de trace de entrada pode passar pelo Cloud NAT, mas não pode acessar vm2 devido à regra de firewall mencionada anteriormente.

Snapshot da interface do usuário do console do trace que falha ao acessar
Snapshot da interface do usuário do console do trace que contém o ping de saída negado

Criar a regra de firewall allow-ping-from-known-ranges

Para permitir a entrada no endereço IP externo de vm2, configure uma nova regra de firewall chamada allow-ping-from-known-ranges.

Já que permitir todos os pacotes ICMP de entrada na rede VPC é um risco de segurança, especifique apenas um pequeno conjunto de intervalos de origem que podem enviar pacotes ICMP para o IP externo de vm2.

Para os fins deste tutorial, esse intervalo de origem inclui apenas o endereço IP externo de vm1, mas verifique todas as regras de firewall ou prioridades de regra atuais para garantir que elas não substituam essa nova regra.

Use os valores da tabela a seguir para configurar a regra:

Campo de regra do firewall Valor
Nome allow-ping-from-known-ranges
Rede Use o nome da rede que contém as duas VMs.
Priority 1000
Direção entrada
Action on match allow
Metas Selecione All instances in the network.
Source filter Intervalos de IP
Source IP ranges Usar o endereço IP externo de vm1
Specified protocols and ports Marque Other protocols e insira ICMP.

Executar um terceiro trace

Após criar a regra do firewall allow-ping-from-known-ranges, execute ping no endereço IP externo de vm2 novamente. O ping funciona e o problema está resolvido.

Um ping permitido entre duas VMs
Um ping permitido entre duas VMs

Você pode verificar esse resultado executando outro trace na configuração atualizada que contém a nova regra de firewall. Dessa vez, o Connectivity Tests informa que o pacote foi entregue a vm2 e que a regra de firewall correspondente allow-ping-from-known-ranges permite um pacote ICMP de entrada para o endereço IP externo de vm2.

Snapshot da UI do console de um trace bem-sucedido para vm2
Snapshot da interface do usuário do console de um trace bem-sucedido para vm2

Limpeza

Se necessário, você pode desativar ou excluir qualquer um dos seguintes recursos do Google Cloud que você criou para este tutorial. Verifique se estes não são recursos de produção. Se você decidir desativar os recursos, verifique a página de preços do Compute Engine e a página de preços de todas as redes para garantir que não seja cobrado por eles.

  1. Desative ou exclua regras de firewall.
  2. Desative ou exclua VMs.
  3. Exclua sub-redes VPC.
  4. Exclua a rede VPC.

A seguir