[resolu] réseaux : nat ARP

Bonjour,

Je voudrais savoir si sous Debian, ou Linux en général, c’est faisable de mettre en place ce que j’appelle un “proxy arp”.

Par proxy arp, j’entends un programme qui permettrait de faire suivre une trame en changeant uniquement son adresse mac de destination. Bref un proxy ne travaillant simplement qu’au niveau trame du modèle OSI :

[mac A - mac B] ------ > PROXY : [mac C - mac B] ------->

Une trame de destination A et de source B serait alors interceptée et relancée en tant que trame de destination C et de source B. L’adresse mac C est rentrée en paramètre pour le proxy.

Je ne trouve pas la commande pour mettre en place facilement cela :frowning:

Merci d’avance pour vos réponses,

Ce que tu décris n’est pas du proxy ARP (ou alors c’est très mal expliqué) mais ressemble plutôt à un pont ethernet (bridge) qui fait du NAT d’adresse MAC destination. Une fois que le pont est créé, ça se fait avec ebtables et la cible dnat. Exemple :

Un proxy ARP, c’est une fonction de couche réseau qui répond aux requêtes ARP pour des adresses qui ne lui appartiennent pas. Le noyau Linux contient une fonction proxy ARP activable globalement (/proc/sys/net/ipv4/conf/all/proxy_arp=1) ou par interface (/proc/sys/net/ipv4/conf//proxy_arp=1) qui lui permet de répondre avec sa propre adresse MAC aux requêtes ARP reçue sur une interface pour les adresses IP qu’il sait router par une autre interface. Cela n’a de sens que si la machine fonctionne en routeur IPv4 (/proc/sys/net/ipv4/ip_forward=1).

[quote=“PascalHambourg”]Ce que tu décris n’est pas du proxy ARP (ou alors c’est très mal expliqué) mais ressemble plutôt à un pont ethernet (bridge) qui fait du NAT d’adresse MAC destination. Une fois que le pont est créé, ça se fait avec ebtables et la cible dnat. Exemple :

ebtables -t nat -A PREROUTING -d MAC_A -j dnat --to-dst MAC_C

Un proxy ARP, c’est une fonction de couche réseau qui répond aux requêtes ARP pour des adresses qui ne lui appartiennent pas. Le noyau Linux contient une fonction proxy ARP activable globalement (/proc/sys/net/ipv4/conf/all/proxy_arp=1) ou par interface (/proc/sys/net/ipv4/conf//proxy_arp=1) qui lui permet de répondre avec sa propre adresse MAC aux requêtes ARP reçue sur une interface pour les adresses IP qu’il sait router par une autre interface. Cela n’a de sens que si la machine fonctionne en routeur IPv4 (/proc/sys/net/ipv4/ip_forward=1).[/quote]
Moi, quand je n’arrive pas à m’endormir, je lis qq lignes de Pascal et 30" après, bonjour Morphée :mrgreen: :mrgreen: :mrgreen: :smt006

merci PascalHambourg, merci Linux :slightly_smiling:

Juste une dernière question, est ce que cela fonctionnera aussi pour les trames ARP ? (Sous fenêtres la table ARP est mise à jour n’importe comment et l’interface plante -___-)

La modification d’adresse affectera l’adresse source de l’en-tête ethernet, mais pas l’adresse MAC source dans la charge ARP. Cela crée donc une incohérence entre ces deux adresses, dont j’ignore les conséquences. Si tu veux exclure les trames ARP de ce traitement, il suffit d’ajouter “-p ! arp” à la règle. Si tu veux que les réponses ARP indiquent une adresse différente, c’est autre chose. Quel est le but précis derrière tout ça ? De quelles fenêtres et de quelle interface s’agit-il ?

formation-debian.via.ecp.fr/app.html

Je l’ait fait il y a longtemps, sa marchais pluto bien.

Fenêtres = Windows, ça je sais répondre :slightly_smiling:
Pour le reste… xerohero, tu n’as pas précisé si finalement, tu voulais faire du «nat» d’arp ou du proxy-arp…

C’est du NAT ARP que je souhaite faire, j’appelais cela proxy arp par abus de langage car je ne connaissais pas le terme de “nat arp”. Merci pour la commande -p ça m’aide énormément !

En donnant des entrées ARP statiques à deux ordinateurs sur le même réseau, je souhaite qu’ils communiquent via un troisième ordinateur.

Microsoft Fenêtres :wink:

Pas besoin de proxy ARP ou NAT ARP pour ça. Les entrées ARP statiques suffisent.