Hola a todos.
Estoy tratando de aprender bien el funcionamiento del protocolo ARP y para ello me he puesto a "jugar" con un par de ordenadores conectados a una red inalámbrica y el programita arpspoof instalado en una de ellas. Pero hay algo que ocurre que no llego a comprender.
Este es el escenario de mis pruebas:
Router: 192.168.1.1
PC1(Windows7): 192.168.1.2
PC2(Ubuntu 11.04): 192.168.1.30
Desde el PC2 ejecuto:
arpspoof -i wlan0 -t 192.168.1.2 192.168.1.1
De esta forma se comienzan a mandar paquetes arp con origen MACpc2 y destino MACpc1 indicando que la Ip 192.168.1.1 se corresponde con la MACpc2.
Si a la vez estoy monitorizando la cache ARP de PC1 compruebo como efectivamente en el momento que se comienzan a mandar dichos paquetes, la entrada en la cache para la ip 192.168.1.1 se cambia.
Cuando se para arpspoof (Cntrl^C) se envían tres últimos paquetes con con origen MACrouter y destino MACpc1 indicando que la Ip 192.168.1.1 se corresponde con la MACrouter. De esta forma se conseguiría restaurar la cache a su estado anterior.
Pero el problema es que la tabla arp de PC1 no cambia en absoluto tras estos últimos paquetes. Esto origina que si por ejemplo desconecto PC2 (o desactivo su capacidad de reenvío), PC1 se quede sin conectividad hasta que no se repare la red o pasen un par de minutos.
¿Alguien me podría ayudar a entender lo que está pasando? ¿Hay algún detalle que se me escapa?