Por que o cache ARP não é esvaziado como eu, exceto que seja?

1

Estou tentando testar empiricamente o tempo que uma entrada permanece na tabela ARP cache .

Este tempo parece ser definido pelo arquivo /proc/sys/net/ipv4/neigh/default/gc_stale_time e pelos arquivos /proc/sys/net/ipv4/route/gc_timeout e /proc/sys/net/ipv4/route/gc_interval para garbage collector .

Como os valores são respectivamente 60, 300 e 60, ele não deve exceder 420 segundos, deveria?

De qualquer forma, parece ficar muito mais tempo (se eu não sinto falta de algo). Na verdade, o que estou fazendo para verificar isso é executar o seguinte comando bash:

while true; do date; sudo arp -n; sleep 30; done

e depois de mais de 15 minutos, a entrada ainda está no ARP table .

Por favor, note que como eu li que o kernel pode alterar valores de timeout baseado em feedback positivo de protocolos de nível mais alto, eu não tentei acessar um website durante esse tempo.

Então, minha pergunta é: por que a entrada ainda é referenciada na tabela depois de tanto tempo? O que estou fazendo errado ou faltando?

    
por Simon 30.07.2015 / 16:05

1 resposta

1

Eu me perguntaria:

  1. Qual endereço IP na sub-rede é a entrada da tabela arp que mapeia um endereço mac para (ou seja, para qual host o ponto de entrada aponta)?
  2. A entrada da tabela de arp persistente ou não (ou seja, posso esperar que ele seja purgado automaticamente da tabela arp)?
  3. Fiz o tráfego de sniff através da interface relevante durante o intervalo de teste (para encontrar ou não encontrar evidências de remapeamento de arp contra o endereço IP fornecido)?

Finalmente:

  • Como eu tentei produzir uma entrada na tabela arp de maneira controlada, com a expectativa de medir sua durabilidade?

As respostas obtidas através das três primeiras perguntas provavelmente refinarão o procedimento de teste conforme dado pela última pergunta.

    
por 30.07.2015 / 19:03

Tags