Mar 03

parprouted – ARP daemon

Reading time: 1 – 2 minutes

parprouted és un dimoni que fa funcions de proxy ARP, idea per fer unir dues xarxes a nivell 3 quan no estan unides per la capa 2. O sigui, no cal que fem WDS (usant en xarxes Wi-Fi) o que posem un bridge de capa 2 per unir dues xarxes separades físicament però unides a través de routing.
El funcionament del dimoni és el següent: quan es rep una petició ARP i la resposta de la petició és desconeguda llavors aquesta petició ARP es re-envia a la resta d’interficies en busca de la MAC requerida per la IP demanada en la petició ARP. Quan es localitza la IP es creen rutes estàtiques de tipus host (/32) per interconnectar aquella IP que esta en una altre interficie de xarxa diferent de la interficie que la requeria. Així aconseguim fer visible la IP entre les dues interficies de xarxa.
Totes les entrades que es creen amb el dimoni es refresquen cada 50s enviant peticions ARP que validin que encara són vigents. En cas de que les peticions fallin el propi kernel borrarà les entrades de la taula ARP i el dimoni s’encarregarà de borrar les rutes estàtiques.
Normalment es triguen uns 60ms per aconseguir fer visible un host que no esta al propi segment de xarxa degut als processos que s’han comentat, però es considera un temps marginal en comparació al benefici que se’n obté.

Feb 16

ARP Tools: arpdiscover buscant la IP dels dispositius de la xarxa

Reading time: 1 – 2 minutes

Sovint a les xarxes de les empreses hi tenim més connectades de les que recordem. O fins hi tot coses pitjors, hi ha algún dispositiu (p.exemple printserver) i no tenim ni idea de quina IP té per poder-hi connectar. Doncs amb les ARP Tools (paquet gentoo: net-analyzer/arptools) hi ha una eina que es diu arpdiscover que fa un enviament massiu de paquets ARP a la xarxa local per veure quines IPs ens contesten.

Per exemple:

$ sudo ./arpdiscover 10.19.83.1 5
using inteface eth0
our hw address is 00:11:D8:A9:D6:3B
our ip address is 10.19.83.5
bpf filter is 'ether dst 00:11:D8:A9:D6:3B && arp'
sniffer fork()ed into background with pid = 2535
request for hw address of ip address 10.19.83.1, 42 bytes to send, 42 bytes sent
received arp packet 60 bytes, hw address is 00:13:10:92:C2:E3, ip address is 10.19.83.1
request for hw address of ip address 10.19.83.2, 42 bytes to send, 42 bytes sent
request for hw address of ip address 10.19.83.3, 42 bytes to send, 42 bytes sent
request for hw address of ip address 10.19.83.4, 42 bytes to send, 42 bytes sent
request for hw address of ip address 10.19.83.5, 42 bytes to send, 42 bytes sent
waiting for sniffer terminate
sniffer terminated, exiting
scanner terminated