Identificar e corrigir problemas de ICMP

Este tutorial mostra como usar iterativamente os Testes de Conectividade para identificar e corrigir um problema com a conectividade de rede.

Nesse caso, as regras de firewall de nuvem privada virtual (VPC, na sigla em inglês) 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 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 os Testes de Conectividade novamente para verificar sua correção.

Visão geral

Neste 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 da vm1 para o endereço IP externo da vm2, o ping não funciona.

Como resolver problemas de um ping negado entre duas VMs.
Como resolver 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 Criar e executar Testes de Conectividade.

Também pode ser útil revisar como as regras de firewall de VPC 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 de VM

  1. As instâncias de 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 uma 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 da vm1 para 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
Ação se houver correspondência Negar
Destinos Selecione Todas as instâncias na rede.
Intervalos de IP de destino Use o endereço IP externo da vm2.
Portas e protocolos especificados Marque a caixa de seleção Outros protocolos e insira icmp.

Criar uma 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 da 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
Ação se houver correspondência Negar
Destinos Selecione Todas as instâncias na rede.
Intervalos de IP de origem Use o endereço IP externo da vm1.
Portas e protocolos especificados Marque a caixa de seleção Outros protocolos e insira icmp.

Executar o primeiro trace

Usando o console do Google Cloud , execute um trace para determinar se um pacote ICMP (ping) pode passar da vm1 para o endereço IP externo da vm2. Depois que esse trace é executado, os Testes de Conectividade informam que o pacote de trace foi descartado devido à regra de firewall da VPC default-deny-outgoing-ping.

Confira na tabela a seguir valores de entrada para o trace.

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

Use o endereço IP externo da 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 da vm1.
Endereço IP de destino

Use o endereço IP externo da 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 da vm2.

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

Snapshot da UI do console do trace que contém o ping de saída negado.
Snapshot da UI 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 da vm2, desative temporariamente a regra de firewall da 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 da vm2.

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

Snapshot da IU do console do trace que não alcança a vm2.
Snapshot da UI do console do trace que não alcança a vm2

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

Para permitir a entrada no endereço IP externo da vm2, configure uma nova regra de firewall da VPC chamada allow-ping-from-known-ranges. Permitir todos os pacotes ICMP de entrada na sua rede VPC representa um risco à segurança. Então, especifique apenas um pequeno conjunto de intervalos de origem com permissão para enviar pacotes ICMP ao endereço IP externo da vm2.

Para os fins deste tutorial, esse intervalo de origem inclui apenas o endereço IP externo da 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, garanta 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.
Filtro de origem Intervalos de IP
Intervalos de IP de origem Use o endereço IP externo da vm1.
Portas e protocolos especificados Marque a caixa de seleção Outros protocolos e insira icmp.

Executar um terceiro trace

Após criar a regra de firewall allow-ping-from-known-ranges, de um ping no endereço IP externo da vm2 novamente. O ping funciona e o problema é 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 da vm2.

Snapshot da UI do console de um trace bem-sucedido para a vm2.
Snapshot da UI do console de um trace bem-sucedido para a vm2

Limpar

Se necessário, desative ou exclua qualquer um dos seguintes recursos do Google Cloud que você criou para este tutorial. Verifique se 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 haverá cobrança 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