Ceci est une ancienne révision du document !
Routage sous Linux
Le routage est fort utile pour créer un sous-réseau et cacher ainsi des ordinateur derrière un seul.
Pré-requis
Pour faire un routeur de votre ordinateur, il vous faut :
- deux cartes réseau installées (si vous voulez séparer les réseaux)
- deux réseaux différents à relier (vous pouvez les créer vous-même)
Cette façon de faire est recommandée si vous voulez séparer physiquement 2 réseaux distincts et permet un contrôle total au niveau de votre ordinateur des échanges entre les 2 réseaux.
Installation d'un réseau
Pour créer un réseau, il suffit d'associer une adresse IP à une des interfaces de votre système. Par exemple, je peux associer l'adresse IP 190.1.1.173 à mon interface eth0.
Il suffit de taper la commande suivante :
sudo ifconfig eth0 add 190.1.1.173
Pour vérifier votre association tapez :
ifconfig
Vous pouvez associer autant de réseaux que vous souhaitez à une interface. (c'est ça la fameuse magie du noyau Linux )
Vous pouvez maintenant communiquer avec toutes les machines qui sont sur le même réseau que vous (ayant une autre adresse IP du réseau et reliées directement ou indirectement à votre carte réseau)
Description du routage
Demander la table de routage actuelle :
route -n
Le tableau ci-dessus s'affiche avec une ligne par route.
Les colonnes indiquent chacune une information sur la route paramétrée.
- La destination (Réseau) : c'est une adresse IP qui indique quels sont les paquets de données qui vont suivre cette route selon leur destination.
- La passerelle (Gateway) : c'est une adresse IP qui indique par où les paquets vont passer pour arriver à destination. Ils seront envoyés à cette adresse.
- Le masque de sous-réseau (Genmask) : c'est une suite de 4 octets (comme une adresse IP) qui permet d'indiquer quelle est la taille de chaque partie de l'adresse IP (partie réseau et partie hôte). Par exemple, 255.255.255.0 comme ci-dessus indique que les 3 premiers octets seront utilisés pour le réseau et le dernier pour les adresses d'hôtes (ici la première ligne correspond à toutes les adresses comprises entre 193.17.1.1 et 193.17.1.254).
- Les indicateurs : Ils correspondent à l'état de la route (ici U signifie que la route est active (Up) et G que la route est une passerelle (Gateway). Il existent d'autres indicateurs mais ils sont moins courants (tapez man route pour les découvrir)
- Les sauts (Metric) : C'est un nombre qui indique combien d'intermédiaires il reste avant d'arriver à la destination. Cette information n'est plus utilisée (sauf par des programmes comme routed (RIP)).
- Les références (Ref) : C'est un nombre qui indique le nombre de références associées à cette route. Cette information n'est pas utilisée.
- L'utilisation (Use) : C'est un compteur d'utilisation de la route.
- L'interface réseau (Iface) : C'est le nom de l'interface réseau qui sera utilisée pour cette route. (pour avoir la liste des interfaces disponibles tapez ifconfig)
Nous pouvons voir que cette table de routage :
- Envoie à l'adresse 190.1.1.1 tous les paquets qui sont destinés au réseau 193.17.1.0 (de 193.17.1.1 à 193.17.1.254) ainsi que ceux destinés au réseau 10.226.7.0 (de 10.226.7.1 à 10.226.7.254) en passant par l'interface eth0. (lignes 1 et 3)
- Envoie à l'adresse 190.1.1.249 tous les paquets qui sont destinés au réseau 192.22.1.0 (de 192.22.1.1 à 192.22.1.254) en passant par l'interface eth0. (ligne 2)
- Envoi tous les paquets destinés au réseau 190.1.1.0 (de 190.1.1.1 à 190.1.1.254) directement aux adresses concernées en passant par l'interface eth0. (ligne 4)
- Envoie tous les paquets destinés au réseau 169.254.0.0 (de 169.254.1.1 à 169.254.254.254) directement aux adresses concernées en passant par l'interface eth0. (ligne 5)
- Envoie tous les paquets ne correspondant pas à l'une des routes précédentes vers l'adresse 190.1.1.245 en passant par l'interface eth0. (dernière ligne)

Modification du routage
Nous allons maintenant voir comment mettre en œuvre le routage entre 2 réseaux.
C'est en utilisant les commandes ifconfig et route !
Objectif
Nous voulons pouvoir faire communiquer 2 ordinateurs qui ne sont pas sur le même réseau mais qui sont tous les 2 connectés au même routeur.
Données
- Le réseau A : 190.1.1.0/255.255.255.0 (de 190.1.1.1 à 190.1.1.254)
- L'adresse IP du poste A sur le réseau A : 190.1.1.2
- Le réseau B : 193.17.1.0/255.255.255.0 (de 193.17.1.1 à 193.17.1.254)
- L'adresse IP du poste B sur le réseau B : 193.17.1.2
Solution
Il faut tout d'abord avoir une adresse IP sur le réseau de destination afin de communiquer avec par le biais de l'interface qui y est connectée.
- Sur le routeur, paramétrez votre interface réseau connectée au réseau A comme dit précedemment. (par exemple : 190.1.1.1)
- Sur le routeur, paramétrez votre interface réseau connectée au réseau B. (par exemple : 193.17.1.1)
- Si besoin est, configurez la table de routage du poste A :
sudo route add -net 193.17.1.0 netmask 255.255.255.0 gw 190.1.1.1
- Si besoin est, configurez la table de routage du poste B :
sudo route add -net 190.1.1.0 netmask 255.255.255.0 gw 193.17.1.1
Maintenant, si vous faites un ping du poste A ou du poste B vers son homologue du réseau opposé vous pouvez remarquer qu'ils peuvent maintenant communiquer ensembles.