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 dis 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.
Avoir une adresse IP fixe avec ubuntu configuré pour du DHCP
Il faut configurer le routeur qui assigne les adresses IP aux ordinateurs qui s'y connectent en lui donnant un bail DHCP permanent à l'ordinateur qui sert de serveur NFS.
Votre routeur vous demandera l'adresse MAC du serveur NFS : vous pouvez la trouver en exécutant cette commande sur le serveur :
ifconfig
Relevez l'adresse inscrite après "HWaddr", c'est l'adresse MAC de la carte réseau du serveur. Une fois votre routeur configuré, relancez le serveur (ou débranchez / rebranchez le cable réseau).
Remarque : la freebox permet de le faire dans l'interface de gestion → internet → Configurer mon routeur Freebox