Problemas de roteamento no linux ? Saiba como diagnosticar e resolver

Compartilhe:

estudante em frente ao computador resolvendo problemas de roteamento no linux.

Já tentou acessar uma API externa, realizar atualização do linux através de um gerenciador de pacotes ou fazer um simples ping, e de repente se depara com uma mensagem de erro Network Unreachable ?

Se você trabalha administrando infraestrutura de TI no dia a dia, com certeza já enfrentou ou ainda enfrentará problemas de roteamento no linux que geram mensagens iguais ou similares.

Neste artigo, você aprenderá a diagnosticar e resolver problemas de roteamento no linux passo a passo, verificando a tabela de roteamento local até testar a comunicação com os gateways utilizando comandos para localizar a origem da falha.

Pré-requisitos:

Antes de executar qualquer comando, certifique-se de verificar se tem os seguintes pré-requisitos no linux:

  • Privilégios administrativos: Acesso a conta de usuário root ou ter permissões via sudo para executar comandos.
  • Placa de rede ativada e IP configurado: A interface de rede (por exemplo, eth0, ens33 ou enp0s3) deve estar no estado UP (Ativada) com endereço IP válido atribuído.

Prossiga com a leitura somente após ter esses pré-requisitos preenchidos.

Causas de Problemas de roteamento no linux

Quando a pilha TCP/IP do kernel linux tenta enviar um pacote para um destino inalcançável, ela encerra a solicitação e retorna uma mensagem de falha para a aplicação.

As falhas mais comuns geram mensagens de erro no terminal, tais como: “ping: connect: Network is unreachable” ou “connect: Network unreachable“.

Abaixo uma referência rápida para consultar a causa e possíveis soluções dos erros mais comuns:

ErroCausaSolução rápida
Network UnreachableHost cliente não tem rota na tabela de roteamento para o IP de destino.Adicione uma rota para a rede do IP de destino no host cliente.
Destination Net UnreachableRoteador não tem rota na tabela de roteamento para o destinatário.Adicione uma rota para a rede do IP de destino no roteador.
Destination Host UnreachableIP não existe ou máquina desligada, roteador está desligado ou desconectado da rede.Ligue a máquina de destino e certifique-se que o roteador está ligado e não bloqueando o trafego.

Se não encontrou a solução, recomendo utilizar para investigar os problemas de roteamento no linux apresentados neste artigo o seguinte fluxo de trabalho:

A seguir os erros: “Network Unreachable (ou Rede inacessível)”, “Destination Host Unreachable” e “Destination Net Unreachable” abordados em detalhes, será ensinado desde a causa, como identificar a origem do problema e a solução aplicada.

O que causa o erro “Network Unreachable” ?

Quando o kernel do sistema operacional determina que não possui nenhuma rota válida para alcançar a rede do endereço IP de destino, os erros “Network Unreachable” ou “Network is Unreachable” são exibidos.

Normalmente esses erros aparecem ao utilizar o comando ping para testar a comunicação com outro computador ou servidor da rede, significando quase sempre que, existem problemas de roteamento no linux.

Como Resolver o erro “Network Unreachable” ?

Para solucionar o erro “Network Unreachable” ou “Network is Unreachable”, siga os passos a seguir na ordem que são apresentados:

1º Etapa: Verifique se existe ou não uma rota para alcançar o destinatário executando o comando ip route get, seguido do IP de destino (no exemplo: 1.1.1.1):

Veja na saída ilustrada na imagem acima que não existe uma rota para o destinatário, logo é impossível encontrar a rede, por isso a mensagem de rede incessível (network unreachable).

2º Etapa: Como não existe uma rota, adicione uma rota padrão ao sistema executando o comando ip route.

Substitua o endereço IP do roteador (10.10.20.254) pelo IP do roteador da rede.

3º Etapa: Execute novamente o comando ip route get para saber se existe rota agora:

Agora sim, o kernel linux já sabe para onde encaminhar o pacote para se comunicar com outros hosts, no exemplo, o IP 1.1.1.1. Teste a conexão novamente com o comando ping.

Se o roteador foi alcançado e encaminhou os pacotes do comando ping a saída deve ser similar a imagem acima que mostra a resposta do host remoto (1.1.1.1).

Mas, se o roteador estiver desligado ou sem conexão com a rede, poderá ser exibida a mensagem “Destination Host Unreachable”. Nesse caso, o comando ping informa o endereço IP do dispositivo que gerou a mensagem ICMP.

No exemplo, como o host cliente (10.10.20.1) não conseguiu alcançar seu gateway (10.10.20.254), a própria máquina local gerou a mensagem.

A inclusão de rotas via comando ip route é mantida apenas na memória RAM e se perde ao reiniciar o servidor. Assim, é necessário adicionar rotas persistentes na configuração da placa de rede.

E cada distribuição linux utiliza uma forma diferente para configurar a interface de rede para atribuir o gateway, por isso, a seguir será abordado como fazer essas configurações em três diferentes sistemas linux.

Configuração persistente de gateway no debian

No Debian, para definir o gateway de forma permanente na interface (ex: enp0s3), edite o arquivo “/etc/network/interfaces”:

Adicione a seguinte linha na configuração da placa de rede (substitua 10.10.20.254 pelo endereço real do roteador):

Salve as alterações e em seguida reinicie a unit networking.service:

Consulte a tabela de roteamento:

Configuração persistente de gateway no Ubuntu Server

O Ubuntu Server utiliza por padrão o Netplan. Para tornar a rota padrão persistente, edite o arquivo (extensão .yaml) de configuração localizado em “/etc/netplan/”.

No exemplo do artigo o nome do arquivo atual é “50-cloud-init.yaml”, para você pode aparecer um nome diferente. Edite o arquivo:

Dentro do arquivo adicione a seguinte configuração do gateway (substituindo 10.10.20.254):

Para aprender mais sobre a configuração do netplan recomendo a leitura da documentação oficial.

Salve as configurações e em seguida aplique-as com o comando:

Configuração persistente de gateway no AlmaLinux e RockyLinux

Nas distribuições da família Red Hat (como AlmaLinux e Rocky Linux), o gerenciamento de rede é feito via NetworkManager utilizando o programa nmcli.

Para configurar o gateway padrão de forma persistente na conexão (exemplo: enp0s3), execute os comandos a seguir, substituindo “10.10.20.254” pelo IP real do roteador:

A opção “ipv4.never-default” controla se essa conexão pode ou não ser usada como rota padrão (default gateway) para IPv4, e o valor “no” desabilita a opção “never-default”, ou seja, permite que a conexão seja a rota padrão.

Reinicie a conexão para aplicar as alterações:

Existe rota padrão, mas é exibido o erro “Destination Net Unreachable”

Em algumas situações mesmo existindo uma rota padrão no computador cliente e o roteador (gateway) sendo alcançado (recebe conexão e responde) é retornado o erro “Destination Net Unreachable”.

Quando o erro ocorre nessas circunstâncias significa que um dos roteadores consultou a tabela de roteamento e não encontra nenhuma rota que indique para onde enviar pacotes daquela rede de destino.

Para ajudar a identificar a origem do problema será utilizado comando tracepath, ele mostra o caminho percorrido até o IP de destino, para instala-lo execute:

Como Resolver o erro “Destination Net Unreachable” ?

Para diagnosticar e resolver o problema que gera o erro “Destination Net Unreachable”, partindo do princípio que o cliente linux tem uma rota para o destino e o roteador pode ser alcançado, siga os passos na ordem que são apresentados a seguir:

1º Etapa: Utilize o comando tracepath para descobrir qual roteador não encaminha os pacotes. No exemplo, o IP de destino utilizado é o 1.1.1.1:

A opção “-n” significa que o comando tracepath não vai tentar resolver nomes dns. Na imagem acima é mostrado que o gateway 2 é o “122.200.201.1”, mais ao lado direito é mostrado “!N” (Destination network unreachable), significa que o roteador não tem rota para o destino.

2º Etapa: Após identificar na etapa anterior o roteador que não está encaminhando os pacotes, você pode tomar as seguintes decisões para solucionar o problema:

Caso 1: O roteador é administrado por você, nessa situação acesse o roteador e adicione a rota para o destinatário. Se for baseado no linux você pode usar o comando:

Substituindo “<próximo gateway>” pelo IP do próximo roteador para onde será encaminhado o trafego para ser entregue ao destinatário. O endereço “0.0.0.0” representa qualquer endereço (incluindo 1.1.1.1) ou a internet.

Caso 2: Se o roteador (no exemplo 122.200.201.1) não for administrado por você, entre em contato com o responsável e reporte o problema que está impedindo a comunicação.

Após seguir todas as etapas teste novamente a conexão executando o comando ping no cliente linux pra validar se o problema foi resolvido.

O que provoca o erro “Destination Host Unreachable” ?

As causas mais comuns para o erro “Destination Host Unreachable” são:

  • O dispositivo de destino está desligado ou as suas placas de rede estão desativadas.
  • O IP está incorreto (você digitou um IP que não pertence a nenhum computador naquela rede).
  • Roteador que encaminha o trafego está desligado.
  • Firewall de rede ou do host: O dispositivo de destino ou roteador está bloqueando pacotes ICMP e, dependendo da configuração, pode responder com a mensagem Destination Host Unreachable em vez de somente descartar os pacotes.

Normalmente o erro é gerado ao testar a conexão com um computador da rede utilizando o comando ping (ou outro programa que utilize ICMP) e o dispositivo de destino não pode ser alcançado, embora exista um caminho até a rede onde ele estar, é devolvida a mensagem “Destination Host Unreachable” para você.

A mensagem pode ser gerada pelo computador de origem ou por um roteador intermediário.

Como Resolver o erro “Destination Host Unreachable” ?

Para descobrir onde está o problema que gera o erro “Destination Host Unreachable” e resolve-lo, partindo do princípio que existe no cliente linux rota para o destinatário e o roteador pode ser alcançado, siga as etapas a seguir na ordem apresentada:

1º Etapa: Utilize o comando tracepath para saber o caminho percorrido e verificar quem está respondendo a mensagem de erro.

Na imagem acima é mostrado que o gateway 3 é o “192.168.213.228” e do lado direito é mostrado “!H” (Destination Host Unreachable), significa que o roteador sabe para onde encaminhar os pacotes para chegar ao host (192.168.213.1) de destino, mas o destinatário não responde.

2º Etapa: Nesse exemplo, os roteadores estão encaminhando o trafego. Então você pode tomar as seguintes decisões:

Caso 1: Se o roteador for administrado por você, verifique se existe algum bloqueio (exemplo: firewall) no roteador (no exemplo: 192.168.213.228) que impede os pacotes de chegar ao destinatário, caso exista, configure-o para autorizar o trafego do protocolo ICMP.

Caso 2: O host de destino está desligado, nesse caso ligue-o.

Caso 3: O host de destino tem regras de firewall que bloqueiam o trafego do protocolo ICMP
e respondem com a mensagem ICMP “Destination Host Unreachable”. Nesse caso, crie regras para autorizar o recebimento e envio dos pacotes pelo comando ping.

Após seguir todas as etapas teste novamente a conexão executando o comando ping no cliente linux.

Conclusão

Diagnosticar e resolver falhas de conectividade exige entender o fluxo de envio dos dados pela rede, verificar a existência da rota padrão e testar cada salto intermediário, assim você consegue identificar a causa da interrupção de tráfego na infraestrutura.

Para iniciantes, a principal dica é sempre começar do mais simples para o mais complexo: verifique se a placa de rede está ativada, valide a tabela de rotas com o comando “ip route”, teste o gateway com ping e use o tracepath para mapear saltos remotos.

Gostou do tutorial ou ficou com alguma dúvida sobre como resolver problemas de roteamento no linux na sua infraestrutura ? Deixe seu comentário logo abaixo com suas dúvidas, sugestões ou elogios!

Perguntas Frequentes (FAQ) sobre como corrigir problemas de roteamento no linux

Qual a diferença entre os erros “Network Unreachable” e “Destination Host Unreachable” ?

O erro “Network Unreachable” indica que o kernel do linux não possui nenhuma rota cadastrada em sua tabela para alcançar a rede de destino.

Já o “Destination Host Unreachable” significa que a rota existe, mas o dispositivo de destino final (ou gateway) não respondeu às requisições ou não está ativo na rede local.

O comando ip route add altera as configurações de rede permanentemente ?

Não. Alterações feitas com a ferramenta ip route são salvas na memória e têm efeito imediato, mas são perdidas caso o sistema seja reiniciado ou o serviço de rede seja reinicializado.

Como posso visualizar todas as rotas ativas no meu sistema linux ?

Você pode visualizar a tabela de roteamento atual do kernel executando o comando “ip route show”.

Por que o comando traceroute exibe apenas asteriscos (* * *) em alguns saltos ?

Os asteriscos indicam que o roteador daquele salto específico não respondeu às solicitações do traceroute dentro do tempo limite (timeout).

Isso pode acontecer porque o roteador está configurado para descartar ou ignorar pacotes ICMP/UDP por motivos de segurança, sem que isso necessariamente signifique que a rede esteja fora do ar.

Para que serve o comando mtr e por que ele é melhor que o traceroute ?

O mtr (My Traceroute) combina o rastreamento de rotas do traceroute com o comando ping, é extramente útil para identificar problemas de roteamento no linux.

Ele atualiza os dados em tempo real, permitindo identificar intermitências, variações de latência (jitter) e porcentagem exata de perda de pacotes em cada salto da rede.

O que significa o erro “Destination Port Unreachable” ?

Destination Port Unreachable é uma mensagem do protocolo ICMP, ela geralmente indica que um pacote chegou ao host de destino mas o mesmo não responde, mas também pode ser gerada por um roteador ou firewall configurado para rejeitar o tráfego usando esse código ICMP.

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.