netstat e a contagem de conexões ip_conntrack diferem por ordem de grandeza. Por quê?

4

em / proc / net / ip_conntrack eu tenho:

established 3076
time_wait 4346
total 7468

e no netstat eu tenho:

established 1051
time_wait 73
total 1165

Por que isso? Onde estão outras conexões? Como descobrir o que eles estão fazendo?

Atualização: Mais algumas estatísticas sobre ip_conntrack

assured 5230
unreplied 2133
total 7427
    
por Poma 19.09.2011 / 18:21

3 respostas

3
O módulo

Conntrack lembra as conexões recentes por X segundos antes de finalmente expirarem. Isto, no meu entendimento, é porque o iptables tem vários outros módulos que podem utilizar esta informação: por exemplo, se você quer banir algum endereço IP se ele fizer X novas conexões durante algum tempo.

netstat , por outro lado, mostra informações em tempo real e não está interessado em história antiga.

Você aumentou a quantidade máxima de entradas na tabela conntrack? Com um kernel recente, o que faz

sysctl net.ipv4.netfilter.ip_conntrack_max

... ou com algum kernel antigo,

sysctl net.ipv4.ip_conntrack_max

voltar para você? Você pode aumentar esse valor permanentemente via /etc/sysctl.conf ou temporariamente (até a próxima reinicialização) via sysctl -w net.ipv4.ip_conntrack_max

    
por 20.09.2011 / 09:15
0

Gostaria de saber por que eles diferem. No entanto, uma coisa a ser lembrada com um proxy reverso é que você pagará o dobro em termos de conntrack para cada conexão. Isso é porque você tem uma conexão do cliente para o proxy reverso e, em seguida, do proxy reverso para o servidor da Web.

Por causa disso, se você tiver um firewall com monitoração de estado à frente, talvez você queira descartar o rastreamento de conexões em seu proxy reverso (ou talvez em um dos lados dele).

Soltá-lo seria algo como:

# iptables -L -t raw
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
NOTRACK    tcp  --  anywhere             anywhere            tcp dpt:www 
NOTRACK    tcp  --  anywhere             anywhere            tcp spt:www 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
NOTRACK    tcp  --  anywhere             anywhere            tcp spt:www 
NOTRACK    tcp  --  anywhere             anywhere            tcp dpt:www

No seu caso, talvez você queira não rastrear o loopback -i lo :

$ iptables -t raw -A PREROUTING -i lo -j NOTRACK
$ iptables -t raw -A OUTPUT -o lo -j NOTRACK
    
por 19.09.2011 / 20:02
0

Encontramos este caso quando contêineres (docker) estavam em uso.

Não tenho certeza se isso ajuda no seu caso ou não, mas parece que netstat -nat no sistema operacional host exibirá apenas as conexões destinadas à pilha de rede do host, enquanto conntrack -L mostrará informações para o host e todos os seus contêineres .

Se você executar netstat -nat de dentro do contêiner envolvido na conexão relatada por conntrack -L , deverá ver as informações de conexão listadas aqui.

    
por 20.02.2017 / 06:45