Réponse courte : sur la passerelle Linux, faire du proxy-arp
Une réponse moins courte nécessite des précisions sur les 2 points suivants :
- La machine sous Linux qui sert de passerelle entre les 2 réseaux a bien 2 interfaces, non ?
- C'est un réseau physique Ethernet ?
(pour la suite, je suppose que la réponse est "oui" à ces questions ; sinon, ben j'aurais répondu un peu à côté de la plaque, mais il faudra probablement se documenter sur le proxy-arp)
Ici, l'interface eth0 est celle branchée sur le réseau externe (10.0.0.0/8) et eth1 celle sur le réseau interne (10.55.25.0/24). La table de routage doit alors avoir cette tête là :
~# /sbin/route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
10.55.25.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
|
et les adresses IP de eth0 et eth1 :
eth0: ip=10.0.0.100 netmask=255.0.0.0
eth1: ip=10.55.25.254 netmask=255.255.255.0
|
L'adresse IP de eth0 NE doit PAS être dans le sous-réseau 10.55.25.0/24 (<mavie>ça paraît évident, mais j'ai déjà fait l'erreur en voulant créer un sous-réseau pour 16 IPs (/28) dans un réseau de 64 IPS (/26) avec cette technique
</mavie> ).
Une fois que les adresses IP sont configurées, il suffit d'activer l'IP Forwarding
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
|
et le proxy-arp
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
|
Et voilà, le proxy-arp se fait "automagiquement". Ça marche avec Linux 2.2 ou +. Avec un noyau Linux 2.0, il faut utiliser la commande arp, mais je n'ai jamais eu l'occasion de le faire.
Pour info :
* Extrait "man arp" : remarquer la NOTE sur les noyaux 2.2.x
<< -s hostname hw_addr, --set hostname
...
NOTE: As of kernel 2.2.0 it is no longer possible
to set an ARP entry for an entire subnet. Linux
instead does automagic proxy arp when a route
exists and it is forwarding. See arp(7) for
details.
>>
|
* Extrait "man 7 arp" :
<<
Support for proxy arp entries for networks (netmask not
equal 0xffffffff) was dropped in Linux 2.2. It is replaced
by automatic proxy arp setup by the kernel for all reach-
able hosts on other interfaces (when forwarding and proxy
arp is enabled for the interface).
>>
|