Eu tenho um controlador de processo baseado em Linux que ocasionalmente trava até o ponto em que você não pode fazer ping nele (ou seja, eu posso fazer ping nele, então ele não pode mais fazer ping sem nenhuma modificação nas configurações de rede).
Estou curioso, qual processo/sistema é responsável por realmente responder aos pings? Parece que este processo está falhando.
A pilha de rede do kernel está lidando com mensagens ICMP, que são aquelas enviadas pelo
ping
comando.Se você não obtiver respostas, além de problemas de rede ou filtragem, e filtragem/limitação de taxa/black-holing/etc baseada em host. significa que a máquina provavelmente está sobrecarregada por algo, que pode ser transitório, ou o kernel travou, o que é raro, mas pode acontecer (hardware defeituoso, etc.), não necessariamente por causa do tráfego ICMP (mas tentando sobrecarregá-lo com esse tráfego pode ser um bom teste no começo da vida de um servidor para ver como ele se sustenta). No caso posterior de travamento do kernel, você deve ter ampla informação nos arquivos de log ou no console.
Observe também que
ping
quase sempre é a ferramenta errada para verificar se um serviço está online ou não. Por várias razões, mas principalmente porque não imita o tráfego real do aplicativo, por definição. Por exemplo, se você precisar verificar se um servidor da Web ainda está ativo, faça uma consulta HTTP (porta TCP 80 ou 443), se precisar verificar um servidor de e-mail, faça uma consulta SMTP (porta TCP 25), se um servidor DNS, um UDP e uma consulta TCP para a porta 53, etc.Não há processo de userland responsável por responder a pings. Ping é apenas um utilitário para enviar pacotes de eco ICMP. Estes são recebidos e processados pela pilha de rede do kernel
O próprio kernel (não qualquer processo do usuário) é responsável por enviar mensagens de resposta de eco ICMP em resposta a mensagens de solicitação de eco ICMP . Portanto, se um host parar de responder aos pings, geralmente é devido a alguns dos seguintes motivos:
a conectividade de rede entre você e o host que está recebendo o ping pode ter sido interrompida. Pode ser devido a vários motivos: danos físicos aos cabos, ruído no caso de wireless, tabelas de rotas quebradas, você está sob ataque DDoS, roteadores/switches problemáticos etc. usando
ethtool(8)
,iwconfig(8)
,route(8)
,ping(8)
seu roteador,tcpdump(8)
etc. no host de destino.A configuração do firewall no host de destino (ou qualquer roteador/firewall entre você e o host de destino) pode estar limitando a quantidade de pings (ou a quantidade de tráfego de tráfego). Também pode ser devido a ferramentas como
fail2ban(8)
firewall sob demanda. Vejaiptables(8)
para verificar.houve mau funcionamento de software/hardware no host de destino. O módulo do kernel da rede no host de destino pode ter OOPSed e/ou ficar confuso, ou até mesmo o kernel inteiro pode ter entrado em PANIC. Você verá mensagens sobre no
dmesg(8)
host de destino ou como saída de tela no console físico (se o acesso físico for impraticável, outra máquina com console serial pode ajudar). ajuda, ou você pode contornar os bloqueios do sistema comwatchdog(8)
drivers auxiliares. Ou você pode alterar as peças de hardware.