Proxy ARP sous Linux

par julien, sept. 2007

Dans le cas ou l'on a des machines d'un meme reseau de part et d'autre d'une box (voir le schema ci-dessous), le proxy ARP doit etre utilise pour faire communiquer l'ensemble.

Ici, on veut que les trois machines 192.168.1.{21;22;23} puissent communiquer avec le reste du monde. Sur ces machines, on va donc specifier comme passerelle par defaut le ProxyARP : 192.168.1.20 (carte eth1).

Sur le ProxyARP, il faut donc activer le routage :

echo 'Activate routing mode'
echo 1 > /proc/sys/net/ipv4/ip_forward

et on va egalement activer le mode proxy arp

echo 'Activate ARP Proxy mode'
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp

D'un point de vue reseau, le probleme est que les requete ARP ne sont pas routables. Donc quand les machines du reseau principal font chercher les adresses MAC de 192.168.1.{21;22;23}, elle ne font recevoir aucune reponse. La solution, c'est de demander au ProxyARP de repondre a leurs place avec sa propre adresse MAC. Il va donc recevoir les paquets pour les autres machines et les faire suivre grace a sa fonction de routage.

Donc :

  1. Le ProxyARP doit publier une reponse ARP pour chaque machine derriere lui et …
  2. il doit savoir vers ou router les paquets recus pour ces machines

Ce qui se traduit par :

echo "add host 192.168.1.21"
route add -host 192.168.1.21 eth1
arp -i eth0 -Ds 192.168.1.21 eth0 pub

La regle route permet de faire suivre les paquets sur l'interface eth1 (192.168.1.20) et la regle ARP permet de dire que pour l'interface eth0, on publie (pub) a tout le monde que 192.168.1.21 est relie a l'adresse MAC de la carte eth0 du ProxyARP.

Et Hop, ca marche :)

Discussion

, 2011/05/10 18:46

Bonjour; J'ai lu cet article, il m'a permis de bien comprendre le mécanisme proxy_arp. Dans mon cas, je fais du nat sur le routeur linux(SNAT). Etant donné que j'ai pris une adresse publique différente de l'interface de sortie de routeur, j'arrive pas à pinguer sur mon réseau interne. J'ai activé le proxy_arp mais le routeur ne répond pas aux requetes arp externes. Si vous pouvez m'aider s'il vous plait. Merci infiniment à l'avance.

, 2011/05/23 14:04

Comme ca, pas vraiment. Mais si vous prenez le temps d'inclure un schema, ca peut aider. :)

Enter your comment
If you can't read the letters on the image, download this .wav file to get them read to you.
 
fr/ressources/astuces/proxy_arp.txt · Last modified: 2011/03/16 01:41 (external edit)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0