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 de nuvem privada virtual (VPC) impedem que o endereço IP externo de uma instância de máquina virtual (VM) use o protocolo ICMP para dar um 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, os testes de conectividade fornecem 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 VPC. 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 de VPC funcionam.

Como 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, porque você os usará mais tarde.

Criar regra de firewall default-deny-outgoing-ping

Depois de criar as VMs, crie uma regra de firewall da 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. Além disso, certifique-se de que nenhuma regra de política de firewall hierárquica modifique essa regra. Para mais detalhes, consulte a visão geral das políticas de firewall hierárquicas.

Use os valores na tabela a seguir para configurar essa regra de firewall de VPC.

Campo da regra de firewall de VPC Valor
Nome default-deny-outgoing-ping
Rede Use a rede VPC em que as VMs estão localizadas.
Prioridade 1000
Direção do tráfego Saída
Action on match Negar
Destinos Selecione Todas as instâncias na rede.
Intervalos de IP de destino Use o endereço IP externo de vm2.
Portas e protocolos especificados Marque a caixa de seleção Outros protocolos 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 nesta rede que substituam essa regra. Além disso, certifique-se de que nenhuma regra de política de firewall hierárquica modifique essa regra. Para mais detalhes, consulte a visão geral das políticas de firewall hierárquicas.

Use os valores na tabela a seguir para criar a regra.

Campo da regra de firewall de VPC Valor
Nome default-deny-ingress-to-vm2
Rede Use a rede VPC em que as VMs estão localizadas.
Prioridade 65534
Direção do tráfego Ingress
Action on match Negar
Destinos Selecione Todas as instâncias na rede.
Intervalos de IP de origem Use o endereço IP externo de vm1.
Portas e protocolos especificados Marque a caixa de seleção Outros protocolos e insira icmp.

Como executar o primeiro trace

Usando o Console do Google Cloud, execute um trace para determinar se um pacote ICMP (ping) pode ir de vm1 para o endereço IP externo vm2. Depois de executar esse trace, os testes de conectividade informam que o pacote de trace foi descartado devido à regra do firewall de VPC default-deny-outgoing-ping.

Use a tabela a seguir para valores de entrada para o trace.

Nome do campo Valor
Protocolo icmp
Endereço IP de origem

Use o endereço IP externo de vm1.

Marque a caixa de seleção Este é um endereço IP usado no Google Cloud.

Projeto de serviço ou 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 de seleção Este é um endereço IP usado no Google Cloud.

Projeto de serviço ou 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 IU 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

Como 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 de VPC 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 IU do console do trace que não alcança vm2.
Snapshot da IU do console do trace que não alcança vm2

Como 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 firewallde VPC chamada allow-ping-from-known-ranges. Como permitir que todos os pacotes ICMP de entrada na sua rede VPC representa um risco à segurança, especifique apenas um pequeno conjunto de intervalos de origem com permissão para enviar pacotes ICMP ao endereç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. Além disso, certifique-se de que nenhuma regra de política de firewall hierárquica modifique essa regra. Para mais detalhes, consulte a visão geral das políticas de firewall hierárquicas.

Use os valores na tabela a seguir para configurar a regra.

Campo da regra de firewall de VPC Valor
Nome allow-ping-from-known-ranges
Rede Use o nome da rede que contém as duas VMs.
Prioridade 1000
Direção do tráfego Ingress
Ação se houver correspondência Allow
Destinos Selecione Todas as instâncias na rede.
Source filter Intervalos de IP
Intervalos de IP de origem Use o endereço IP externo de vm1.
Portas e protocolos especificados Marque a caixa de seleção Outros protocolos e insira icmp.

Como 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, os testes de conectividade informam 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 IU do console de um trace bem-sucedido para vm2.
Snapshot da IU 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