Demasiadas ligações de estado TIME_WAIT! [duplicado]

10

Eu tenho lido sobre isso em todos os lugares durante todo o dia, e pelo que eu recolhi, TIME_WAIT é um estado relativamente inofensivo. É supostamente inofensivo mesmo quando há muitos.

Mas se eles estão pulando para os números que eu tenho visto nas últimas 24 horas, algo está realmente errado!

[root@1 ~]# netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n
  1 established)
  1 Foreign
 12 CLOSE_WAIT
 15 LISTEN
 64 LAST_ACK
201 FIN_WAIT2
334 CLOSING
605 ESTABLISHED
816 SYN_RECV
981 FIN_WAIT1
26830 TIME_WAIT

Esse número varia de 20.000 a 30.000+ (até agora, o máximo que eu já vi é 32.000). O que me preocupa é que são todos endereços IP diferentes de todos os tipos de locais aleatórios.

Agora, isso é suposto ser (ou deveria ser) um ataque de DDoS. Eu sei disso, mas não vou entrar nos detalhes chatos. Começou como um DDoS e afetou o desempenho do meu servidor por alguns minutos. Depois disso, tudo voltou ao normal. Minha carga no servidor é normal. Meu tráfego de internet é normal. Nenhum recurso do servidor está sendo abusado. Meus sites carregam bem.

Eu também tenho IPTABLES desativado. Há um problema estranho com isso também. Toda vez que eu habilito o firewall / iptables, meu servidor começa a experimentar perda de pacotes. Muitos disso. Cerca de 50% -60% dos pacotes são perdidos. Isso acontece em uma hora ou algumas horas depois de ativar o firewall. Assim que eu desabilitá-lo, ping respostas de todos os locais que eu testá-los de começar a limpar e ficar estável novamente. Muito estranho.

As conexões de estado TIME_WAIT estão flutuando nesses números desde ontem. Por 24 horas agora, eu tive isso, e embora não tenha impactado o desempenho de forma alguma, é bastante perturbador.

Meu valor atual de tcp_fin_timeout é de 30 segundos, dos 60 segundos padrão. No entanto, isso parece não ajudar em nada.

Alguma ideia, sugestão? Qualquer coisa seria realmente apreciada!

    
por Hamza 07.01.2011 / 19:13

2 respostas

5

Uma boa discussão sobre o tempo de espera é dada por Como fechar forçosamente um soquete no tempo de espera .

De acordo com esta referência, o número de conexões de tempo de espera deve corresponder ao tráfego nos últimos 4 minutos. Esses números correspondem aproximadamente?

    
por 07.01.2011 / 21:50
2

Eu tive esse problema com conexões em um estado de espera próxima quando a outra extremidade não está desligando corretamente. Isso pode ocorrer por motivos maliciosos ou porque há um problema em sua pilha de rede.

O fato de você parecer estar tendo problemas com o iptables também aponta para problemas com sua pilha de rede.

Vale a pena mudar sua conexão para outra porta de rede se você tiver uma para ver se o mesmo problema ocorre. O problema também pode ser com um firewall, roteador ou mal-intencionado do upstream.

Existem também alguns relatos de problemas com as configurações RedHat (+ Centos?) do tcp_tw_recycle. Você pode querer olhar para isso.

    
por 07.01.2011 / 20:32