このページは大阪弁化フィルタによって翻訳生成されたんですわ。

翻訳前ページへ


ProxyARP Subnetting HOWTO

ProxyARP Subnetting HOWTO

Bob Edwards, <Robert.Edwards@anu.edu.au>

Ao? 1997
Ce HOWTO explique l'utilisation d'un sous-r駸eau avec mandataire (proxy) ARP (protocole de r駸olution d'adresse), pour rendre visible un petit r駸eau de machines comme si ces machines 騁aient reli馥s directement au r駸eau principal. (traduction : Michel Billaud, <billaud@labri.u-bordeaux.fr>).

1. Introduction

Ce HOWTO explique l'utilisation d'un sous-r駸eau avec mandataire (proxy) ARP (protocole de r駸olution d'adresse), pour rendre visible un petit r駸eau de machines (nous l'appellerons r駸eau 0 dans la suite) comme si ces machines 騁aient reli馥s directement au r駸eau principal (r駸eau 1).

Ceci n'a de sens que si les machines sont reli馥s par Ethernet ou autres dispositifs de type ether (autrement dit 軋 ne convient pas pour SLIP, PPP, CSLIP, etc.)

2. Remerciements

  • du mini-HOWTO Proxy-ARP 馗rit par Al LongYear ;
  • du mini-HOWTO Multiple-Ethernet de Don Becker ;
  • du code source et de la page de manuel de la commande arp(8), de Fred N. van Kempen et Bernd Eckenfels.
  • 3. Pourquoi utiliser un sous-r駸eau avec mandataire ARP ?

    Les applications d'un sous-r駸eau avec mandataire ARP sont assez sp馗ifiques.

    Dans mon cas, j'avais une carte Ethernet sans-fil ISA 8 bits. Je Linux avec ses deux interfaces. La machine B est une station quelconque du r駸eau 0, et la machine C est sur le r駸eau 1.

    Normalement, pour r饌liser l'interconnexion, on pourrait :

    Dans mon cas, il n'騁ait pas possible d'obtenir un nouveau num駻o de sous-r駸eau, alors je voulais une solution qui permette aux machines du r駸eau 0 d'appara?re comme si elles 騁aient sur le r駸eau 1.

    Les num駻os IP (au total 16) du r駸eau 0 apparaissent comme un sous-ensemble du r駸eau 1. Remarquez qu'il est tr鑚 important, dans ce cas, de ne pas donner aux machines qui sont connect馥s directement au r駸eau 1 un num駻o

    La machine A a deux num駻os IP, l'un dans la plage d'adresses du r駸eau 0 pour sa vraie carte Ethernet (eth0), l'autre dans la plage du r駸eau 1 (mais en dehors de la plage du r駸eau 0) pour la carte Ethernet sans-fil (eth1).

    mais la machine A, qui est sur les deux r駸eaux, la verra.

    La premi鑽e chose magique se produit maintenant, lorsque le code arp du noyau de la machine Linux (configur馥 en mandataire ARP avec sous-r駸eau) d騁ermine que la requ黎e machine A le re輟it.

    La machine A remarque que l'adresse de destination IP n'est pas la sienne, mais celle de B. Le code de routage du noyau Linux de la machine A essaie alors de faire suivre ce paquet vers la machine B en cherchant dans ses tables de routage pour savoir quelle interface contient le num駻o de r駸eau de B. Quoi qu'il en soit, le num駻o IP de B est valide aussi bien pour le r駸eau 0 (eth0) que pour le r駸eau 1 (eth1).

    le cache ARP). La machine A utilise une requ黎e ARP, mais cette fois-ci le code arp du noyau Linux voit que la requ黎e ne vient pas de l'interface du r駸eau 1 (eth1), et donc ne renvoie pas l'adresse du mandataire ARP. タ la place, il envoie la requ黎e ARP envoyer une r駱onse. Cette fois, B remarque que C est sur un sous-r駸eau diff駻ent (le masque de sous-r駸eau 255.255.255.240 exclut toutes les machines qui ne sont pas dans la plage d'adresses IP du

    De la m麥e fa輟n, il est 騅ident que si une autre machine D du r駸eau 0 envoie une requ黎e ARP concernant B sur le r駸eau 0, la machine A recevra cette requ黎e sur son interface du r駸eau 0 (eth0) et

    Le premier probl鑪e que j'ai eu 騁ait que la commande arp(8) de ma distribution Slackware 3.1 騁ait antique (dat馥 de 1994 !) et ne communiquait pas correctement du tout avec le code ARP du noyau (``arp -a'' donnait un r駸ultat 騁range).

    La commande arp(8) de ``net-tools-1.33a'', qui est disponible sur un grand nombre de sites, en particulier (d'apr鑚 le README qui lui est joint) ftp.linux.org.uk:/pub/linux/Networking/PROGRAMS/NetTools/, fonctionne correctement, et contient de nouvelles pages de manuel arp(8) qui expliquent les choses bien mieux que les anciennes.

    Une fois muni d'une commande arp(8) d馗ente, il ne me restait plus NETMASK=255.255.255.240 # pour la partie h?e sur 4 bits NETWORK=x.y.z.64 # notre nouveau r駸eau # (remplacez x.y.z par votre r駸eau) BROADCAST=x.y.z.79 # pour moi.

    Il faut ensuite ajouter une ligne pour configurer la seconde interface Ethernet (apr鑚 les chargements de modules qui sont 騅entuellement n馗essaires pour lancer le pilote) :

    /sbin/ifconfig eth1 nom_sur_le_r駸eau_1 broadcast x.y.z.255 netmask 255.255.255.0

    Puis nous ajoutons une route pour la nouvelle interface :

    /sbin/route add -net x.y.z.0 netmask 255.255.255.0

    Address HWtype HWaddress Flags Mask Iface x.y.z.1 ether 00:00:0C:13:6F:17 C * eth1 x.y.z.65 ether 00:40:05:49:77:01 C * eth0 x.y.z.67 ether 08:00:20:0B:79:47 C * eth0 x.y.z.5 ether 00:00:3B:80:18:E5 C * eth1 x.y.z.64 ether 00:40:96:20:CD:D2 CMP 255.255.255.240 eth1

    Vous pouvez aussi regarder le fichier /proc/net/arp, par exemple avec cat(1).

    La derni鑽e ligne est l'entr馥 de mandatement pour le sous-r駸eau. Les indicateurs CMP r騅鑞ent qu'il s'agit d'une donn馥 statique x.y.z.0 0.0.0.0 255.255.255.0 U 0 0 389 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 7 lo 0.0.0.0 x.y.z.1 0.0.0.0 UG 1 0 573 eth1

    Vous pouvez aussi regarder le contenu du fichier /proc/net/route (par exemple avec cat(1)).

    Remarquez que la premi鑽e entr馥 concerne un sous-ensemble de la seconde, mais la table de routage les classe dans l'ordre des masques, et donc l'entr馥 eth0 sera test馥 avant celle de eth1.

    6. Autres alternatives au mandatement ARP de sous-r駸eau

    Dans la m麥e situation il y a d'autres possibilit駸 que le mandatement C'est une solution 駘馮ante, bien qu'elle emp鹹he toute machine du r駸eau 1 d'騁ablir une connexion vers une machine du r駸eau 0, puisque les machines du r駸eau 0 n'existent pas en dehors de celui-ci.

    Sauf mention contraire, les copyrights des documents ``Linux HOWTO'' sont d騁enus par leurs auteurs respectifs. Ces documents peuvent 黎re reproduits et distribu駸 en tout ou partie, sur tout support physique ou 駘ectronique, du moment que cette notice de copyright figure sur toutes les copies. La redistribution commerciale est autoris馥 et encourag馥, cependant l'auteur souhaite en 黎re averti. Toutes les traductions, les travaux d駻iv駸, ou ouvrages incorporant un Linux HOWTO doivent 黎re