Linux Networking HOWTO | ||
---|---|---|
Prev | Chapter 9. Routage avancé avec Linux-2.2 | Next |
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 :
la page web sur l'adressage réseau sous Linux
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 :
ip route add nat <ext-addr>[/<masklen>] via <int-addr> |
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:
ip route add nat 195.113.148.34 via 192.168.0.2 ip route add nat 195.113.148.32/27 via 192.168.0.0 |
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. Ceci vous a intéressé? Pourquoi ne pas donner 2,50 dollars?