Si vous utilisez un PC sous Linux avec deux interfaces réseaux pour router le trafic entre deux (ou plus) sous-réseaux, vous devez avoir compilé votre noyau avec l'option "IP Forwarding". Taper la commande:
cat /proc/ksyms | grep ip_forward
Vous devriez avoir quelque chose comme...
00141364 ip_forward_Rf71ac834
Si ce n'est pas le cas, alors vous n'avez pas activé l'option IP Forwarding
lors de la compilation de votre noyau, et vous devrez recompiler et installer
un nouveau noyau.
Pour le bien de cet exemple, supposons que vous ayez décidé de découper votre adresse de réseau IP 192.168.1.0 en 4 sous-réseaux (chacun d'eux comprenant 62 numéros IP d'interfaces/hôtes). Toutefois, deux de ces réseaux sont combinés en un unique plus grand sous-réseau, donnant trois réseaux physiques. C'est à dire:
Réseau Diffusion Masque de réseau Hôtes
192.168.1.0 192.168.1.63 255.255.255.192 62
192.168.1.64 192.168.1.127 255.255.255.192 62
182.168.1.128 192.168.1.255 255.255.255.126 124 (voir la note)
Note: la raison pour laquelle le dernier réseau n'a que 124 adresses
utilisables (et pas 126 comme on pourrait le supposer d'après le masque de
réseau) est que c'est en fait un 'super réseau' composé de deux sous-réseaux.
Les hôtes sur les deux autres sous-réseaux interprèteront 192.168.1.192 comme
l'adresse de réseau du sous-réseau 'inexistant'. De la même manière, ils
interprèteront 192.168.1.191 comme l'adresse de diffusion du sous-réseau
'inexistant'.
Donc, si vous utilisez 192.168.1.191 ou 192 comme des adresses d'interfaces
dans le troisième sous-réseau, alors les machines des deux autres sous-réseaux
ne pourront pas communiquer avec ces interfaces.
Ceci illustre un point important du découpage en sous-réseaux - les adresses utilisables sont déterminées par le PLUS PETIT sous-réseau dans l'espace d'adressage du réseau.
Supposons qu'un ordinateur fonctionnant sous Linux serve de routeur pour
ce réseau. Il aura trois interfaces réseau vers les réseaux locaux, et
éventuellement une troisième interface vers Internet (qui devrait être
sa route par défaut).
Supposons que l'ordinateur sous Linux utilise les plus petites adresses IP disponibles sur chaque sous-réseau pour son interface sur ce réseau. On configurerait ses interfaces réseau ainsi:
Interface Adresse IP Masque de réseau
eth0 192.168.1.1 255.255.255.192
eth1 192.168.1.65 255.255.255.192
eth2 192.168.1.129 255.255.255.128
Le routage utilisé serait:
Destination Passerelle Masque Interface
192.168.1.0 0.0.0.0 255.255.255.192 eth0
192.168.1.64 0.0.0.0 255.255.255.192 eth1
192.168.1.128 0.0.0.0 255.255.255.128 eth2
Sur chacun des sous-réseaux, les hôtes seraient configurés avec leur propre
adresse IP et masque de réseau (appropriés pour le réseau particulier).
Chaque hôte déclarerait le PC sous Linux comme son routeur/passerelle, en
spécifiant l'adresse IP de l'interface du PC sous Linux sur ce réseau
particulier.
Robert Hart Melbourne, Australia March 1997.