ifconfig mostrando contagem de bytes RX / TX incorreta

5

ifconfig diz para eth0 algum valor de RX = 2,8GB, TX = 1,3GB que não pode ser real, uma vez que eu transmiti recentemente muitos arquivos de 10GB + sobre eth0. Eu gostaria de saber

  • se for apenas um estouro de inteiro ordinário (limite de 4 GB)
  • ou se isso é um indicador de que há algum rootkit malvado com dados errados

É uma pergunta boba, mas a discrepância me incomoda.

Obrigado Nils

    
por MDMarra 23.07.2010 / 15:44

2 respostas

7

Eu diria que é o wraparound de 4 GB como você está adivinhando. Eu corri para isso com kernels de 32 bits bastante recentes.

Você pode pegar o código-fonte do seu kernel e ver se é o mesmo em include/linux/netdevice.h e verificar o tipo de dados de net_device_stats->rx_bytes . Se você estiver usando um sistema de 32 bits e o tempo não for longo, você obterá apenas 2 ^ 32 bytes ou 4 GB. Mais sobre isso em um post meu aqui .

A menos que claro, o ifconfig grabs é um contador de algum outro lugar além do proc atualmente ...

    
por 23.07.2010 / 16:04
1

Você pode configurar o iptables para gerenciar os contadores - eles podem até ser feitos para sobreviver às reinicializações com um salvar / restaurar ou manualmente limpar / configurar os contadores para valores específicos.

Se você ainda não tem regras iptables, você só precisa adicionar pelo menos uma regra às cadeias de entrada e saída que permitem tudo, por exemplo, e fornecerá o que você deseja:

iptables -A INPUT -j ACCEPT
iptables -A OUTPUT -j ACCEPT

Então você pode ver os totais:

root@devcloner:~# iptables -n -vL
Chain INPUT (policy ACCEPT 2850K packets, 4183M bytes)
 pkts bytes target     prot opt in     out     source               destination         
 22M   32G ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 657K packets, 43M bytes)
 pkts bytes target     prot opt in     out     source               destination         
12951  813K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

-x mostrará o contador completo de bytes:

root@devcloner:~# iptables -n -vL -x
Chain INPUT (policy ACCEPT 2850263 packets, 4182667884 bytes)
        pkts      bytes target     prot opt in     out     source                   destination         
22285352 32724735127 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0        

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 657099 packets, 43320848 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
  102453  6738544 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0  

Essa informação provavelmente é passível de ser usada em / proc ou / sys.

    
por 25.05.2012 / 09:16