Réseau sous Linux :: Routage avec Linux-2.2
8. Routage avec Linux-2.2
Le noyau 2.2 a accru les possibilités de routage de Linux de manière certaine.
Malheureusement la documentation pour exploiter ces nouvelles possibilités
est presque impossible à trouver, même si elle existe.
J'y ai passé un peu de temps et ai été en mesure de faire un petit quelque chose.
J'en mettrai plus quand j'aurai le temps et l'aide nécessaire pour comprendre
tout ce qui a été dit.
Dans les versions du noyau 2.0 et antérieures, Linux utilise la commande
route standard pour positionner les routes dans une seule table de
routage. Si vous aviez tapé netstat -rn à l'invite vous auriez pu
voir un exemple.
Dans les noyaux récents (2.1 et au-delà) vous avez une autre option.
Cette option est autorisée et vous permet d'avoir plusieurs tables de routage.
Les nouvelles règles donnent beaucoup plus de souplesse sur la façon de manipuler
les paquets. Vous pouvez choisir entre des routes basées non seulement sur
l'adresse de destination, mais aussi l'adresse de départ, TOS, ou un périphérique
de réception.
8.1 Les bases
Afficher la table de routage :
ip route
Maintenant sur ma machine cela donne la sortie suivante :
La première ligne :
207.149.43.62 dev eth0 scope link est la route vers l'interface
La deuxième :
207.149.43.0/24 dev eth0 proto kernel scope link src 207.149.43.62
est la route qui dit tout ce qui va vers 207.149.43.0 doit aller vers
207.149.43.62.
La troisième :
default via 207.149.43.1 dev eth0 est la route par défaut.
Utiliser les informations
Maintenant que nous avons vu une table de routage de base, voyons comment l'utiliser. Tout d'abord lisez
the Policy routing text. Si vous êtes embêtés, ne vous en faites pas -- c'est un texte
confus. Il vous donne tout ce que les nouvelles tables de routage peuvent faire.
8.2 Ajouter une route avec les nouveaux outils ip
Dans la section précédente, nous avons mentionné comment afficher la table de
routage et comment comprendre les bases. Impeccable, la sortie ressemble
de très près à la syntaxe que nous devons utiliser pour mettre en place la table
de routage correspondant exactement à nos besoins.
Comme vous pouvez le constater, les entrées et sorties sont presque les mêmes,
sauf le ip route add au début de chaque ligne.
Note: Je suis conscient que la documentation sur le routage avec les
noyaux 2.2 fait cruellement défaut. Dans les faits, je pense que TOUT LE MONDE
en est conscient. Si vous avez une petite expérience, contactez-nous s'il vous
plaît à
poet@linuxports.com
nous aimerions obtenir les informations que vous avez pour l'inclure plus
tard dans ce document.
8.3 Utiliser NAT avec le noyau 2.2
Le système de traduction d'adresse réseau (NAT: Network Address Translation)
ressemble plutôt au grand frère standardisé du système de masquage IP de Linux.
Il est décrit en détail dans la RFC-1631 sur votre archive RFC la plus proche.
NAT fournit des possibiltés que IP Masquerade ne sait pas faire, ce qui le
rend plus apte à une utilsation de routeur pare-feu pour un réseau d'entreprise
et des installations de plus grande dimension.
Une implémentation alpha de NAT pour le noyau 2.0.29 de Linux a été développée
par
Michael.Hasenstein, Michael.Hasenstein@informatik.tu-chemnitz.de .
La documentation et l'implémentation de Michael se trouve sur :
Linux IP Network Address Web Page
L'empilement TCP/IP du noyau 2.2, qui a été grandement amélioré, inclut
les fonctionnalités de NAT. Ce système semble rendre obsolète le travail de
Michael Hasenstein (Michael@informatik.tu-chemnitz.de).
Pour le rendre opérationnel vous devez activer dans le noyau
CONFIG_IP_ADVANCED_ROUTER, CONFIG_IP_MULTIPLE_TABLES (pour le système
de routage) et CONFIG_IP_ROUTE_NAT (pour un NAT rapide). De plus, si vous
voulez utiliser un réglage plus fin de NAT, vous devez activer
le pare-feu (CONFIG_IP_FIREWALL) et CONFIG_IP_ROUTE_FWMARK.
Pour faire fonctionner effectivement ces possibilités incluses dans le noyau,
vous aurez besoin du programme «ip» de Alexey Kuznyetsov
récupéré sur ftp://ftp.inr.ac.ru/ip-routing/.
Datagrammes NAT entrants
Maintenant pour traduire les adresses des datagrammes entrants, on utilise
la commande suivante :
Ceci fait qu'un paquet entrant destiné à l'adresse "ext-addr"
(l'adresse visible sur l'internet extérieur) aura son champ d'adresse
converti en "int-addr" (l'adresse de votre réseau interne, derrière votre
passerelle ou pare-feu). Le paquet est alors routé suivant la table de routage locale. Vous pouvez traduire soit une adresse hôte unique, soit des blocs complets.
Exemples:
La première commande rend l'adresse interne 192.168.0.2 accessible en tant que
195.113.148.34. Le second exemple montre une réallocation du bloc
192.168.0.0-31 en 195.113.148.32-63.
[22 février 2002, JDNet]
|