Como encontrar o processo que causa a requisição arp?

7

Quando eu executo o tcpdump no gateway, recebo muitos pedidos arp originados do próprio gateway. Eu me pergunto por que isso acontece. Como posso encontrar o processo que causa essas solicitações arp?

$ tcpdump -n arp 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
16:51:03.662114 ARP, Request who-has 211.123.123.251 tell 211.123.123.242, length 28
16:51:03.954113 ARP, Request who-has 211.123.123.246 tell 211.123.123.242, length 28
16:51:04.002111 ARP, Request who-has 211.123.123.254 tell 211.123.123.242, length 28
16:51:04.518111 ARP, Request who-has 211.123.123.248 tell 211.123.123.242, length 28
16:51:04.954113 ARP, Request who-has 211.123.123.246 tell 211.123.123.242, length 28
16:51:05.002110 ARP, Request who-has 211.123.123.254 tell 211.123.123.242, length 28
16:51:05.518110 ARP, Request who-has 211.123.123.248 tell 211.123.123.242, length 28
16:51:06.002112 ARP, Request who-has 211.123.123.254 tell 211.123.123.242, length 28
16:51:06.210111 ARP, Request who-has 211.123.123.252 tell 211.123.123.242, length 28
16:51:06.518114 ARP, Request who-has 211.123.123.248 tell 211.123.123.242, length 28
16:51:07.114111 ARP, Request who-has 211.123.123.246 tell 211.123.123.242, length 28
16:51:07.210111 ARP, Request who-has 211.123.123.252 tell 211.123.123.242, length 28
16:51:07.314112 ARP, Request who-has 211.123.123.249 tell 211.123.123.242, length 28

A seguir está a configuração do gate:

$ ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 6c:f0:49:a8:05:4c brd ff:ff:ff:ff:ff:ff
    inet 211.123.123.242/28 brd 211.123.123.255 scope global eth0
    inet6 fe80::6ef0:49ff:fea8:54c/64 scope link 
       valid_lft forever preferred_lft forever

Nesta sub-rede, apenas 211.123.123.242 (o ip do gateway) está disponível, outros ips (como o 211.123.123.246) estão indisponíveis.

Atualização:

Eu posso ver o tráfego para esses ips indisponíveis, acho que essa é a razão para esses arps. Embora eu não consiga descobrir ainda porque esse tráfego acontece. Talvez o misconfigure nos provedores de isp.

$ tcpdump host 211.103.252.245
23:50:11.414705 IP 59.34.131.5.7099 > 211.123.123.245.17701: Flags [S.], seq 3745049197, ack 1625918577, win 8760, options [mss 1460], length 0
23:50:12.991258 IP 75.126.1.222.80 > 211.123.123.245.1078: Flags [S.], seq 651817046, ack 152032452, win 17473, length 0
    
por Ping Yin 05.05.2011 / 11:02

4 respostas

8

Esse comportamento é muito comum quando você tem um servidor DHCP em execução. O servidor detecta endereços no intervalo de concessão para ver quais deles estão livres. Existem também outras soluções de monitoramento de rede que usam o ARP para rastrear quais endereços estão em uso em uma rede.

Até onde eu sei, não existe nenhum sistema no sistema Unix para ver qual programa inicia uma requisição arp. Você poderia strace / ktrace / dtrace para encontrar a chamada do sistema.

No final, eu não me preocuparia muito com isso. Grande quantidade de pacotes ARP pode causar problemas, mas somente quando chegar ao intervalo de 1000pps. Alguns pacotes por segundo não são nada para se preocupar.

    
por 05.05.2011 / 11:25
6

As solicitações ARP em um roteador são comportamentos esperados. As solicitações ARP são usadas para que o roteador conheça o endereço do próximo salto na rede para uma rota específica. Sua tarefa básica é mapear um endereço IP para um endereço MAC.

A partir da amostra que você forneceu acima, não parece que está extrapolando o ARP.

    
por 05.05.2011 / 11:22
4

Se os pacotes ARP se originam de uma caixa Linux, você pode tentar gerar uma quantidade generosa de regras iptables com a opção --pid-owner XXX (corresponde se o pid do processo que cria o pacote for XXX; você teria que cobrir um grande quantidade de números de pid) e espero que o processo que realmente envia pacotes não seja uma desova de outra coisa.

Como alternativa, você pode usar (muito menos) as opções --uid-owner XXX para localizar o uid do proprietário do processo que enviou o pacote.

Em uma tangente, se 211.123.123.242 for o seu gateway e ele procurar endereços MAC correspondentes a vários IPs dessa rede, ele poderá ter alguns pacotes para serem enviados de fora da rede. Quem e por que tenta se comunicar com endereços inexistentes pode ser uma coisa realmente mais interessante para investigar do que procurar o originador de solicitações ARP na caixa do gateway.

    
por 05.05.2011 / 12:17
1

As solicitações ARP são normais. este protocolo é usado para saber onde algumas máquinas com MAC são. em seguida, sobre IP ARP é construir. O ARP é construído no kernel como módulo ARP. Verifique este e isso

    
por 05.05.2011 / 11:07