No ip_conntrack, conexões TCP estabelecidas, mas “presas”, com um enorme tempo de vida

3

Estou tentando entender o motivo / o que faço sobre algumas entradas estranhas que estou vendo em / proc / net / ip_conntrack no meu servidor (virtual). Parece haver um número de conexões como esta para / do meu servidor web, no estado ESTABLISHED mas com tempos aparentemente enormes para viver equivale a vários dias (W = IP do meu servidor, X = IP da outra parte):

tcp      6 431997 ESTABLISHED src=X dst=W sport=52177 dport=80 packets=2 bytes=92 src=W dst=X sport=80 dport=52177 packets=1 bytes=48 [ASSURED] mark=0 secmark=0 use=1
tcp      6 22299 ESTABLISHED src=X dst=W sport=10975 dport=80 packets=2 bytes=92 src=W dst=X sport=80 dport=10975 packets=1 bytes=48 [ASSURED] mark=0 secmark=0 use=1

tcp      6 330236 ESTABLISHED src=W dst=X sport=80 dport=4555 packets=1 bytes=1420 [UNREPLIED] src=X dst=X sport=W dport=80 packets=0 bytes=0 mark=0 secmark=0 use=1
tcp      6 374668 ESTABLISHED src=W dst=X sport=80 dport=55957 packets=1 bytes=1420 [UNREPLIED] src=X dst=W sport=55957 dport=80 packets=0 bytes=0 mark=0 secmark=0 use=1

Eu não acho que seja malicioso, e pode ser apenas um capricho do ip_conntrack, uma vez que (a) pegar uma amostra aleatória, essas conexões não aparecem no netstat, e (b) eu posso ver algumas similaridades entradas do meu IP do cliente. Então parece que é mais uma estranheza de como funciona o ip_conntrack.

Mas eu estava preocupado que essas conexões estivessem ocupando recursos, e sua presença parece tornar o ip_conntrack não confiável. Alguém pode lançar alguma luz?

    
por Neil Coffey 04.10.2011 / 23:22

1 resposta

3

Isso tem a ver com os padrões no código conntrack. Da fonte:

linux-source-2.6.38/net/netfilter/nf_conntrack_proto_tcp.c:
  73 static unsigned int tcp_timeouts[TCP_CONNTRACK_MAX] __read_mostly = {
  74         [TCP_CONNTRACK_SYN_SENT]        = 2 MINS,
  75         [TCP_CONNTRACK_SYN_RECV]        = 60 SECS,
  76         [TCP_CONNTRACK_ESTABLISHED]     = 5 DAYS,
  77         [TCP_CONNTRACK_FIN_WAIT]        = 2 MINS,
  78         [TCP_CONNTRACK_CLOSE_WAIT]      = 60 SECS,
  79         [TCP_CONNTRACK_LAST_ACK]        = 30 SECS,
  80         [TCP_CONNTRACK_TIME_WAIT]       = 2 MINS,
  81         [TCP_CONNTRACK_CLOSE]           = 10 SECS,
  82         [TCP_CONNTRACK_SYN_SENT2]       = 2 MINS,
  83 };

Observe como o ESTABLISHED é padronizado para 5 dias. Como eles estão ESTABELECIDOS, eu não me preocuparia com a utilização de recursos no banco de dados conntrack, eles provavelmente estão usando muito mais recursos em outro lugar. A partir de sua saída, eles se parecem com o tráfego da Web, que, nesse caso, se você estiver enfrentando problemas de recursos, provavelmente desejará reduzir a configuração de keep-alive.

    
por 05.10.2011 / 03:37

Tags