8. Les réseaux privés & la traduction d'adresses (NAT)

Les réseaux privés ont été essentiellement mis en place en «réaction» à la mauvaise utilisation de l'espace d'adressage IPv4. Lorsque l'Internet a commencé à se développer, les préfixes réseau ont été attribués sans discernement à toutes les entités qui en faisaient la demande.

Dans l'adressage d'un réseau privé, il faut distinguer deux cas de figure :

  • Si le réseau privé n'est jamais interconnecté avec l'Internet, on peut utiliser n'importe quelle adresse.

  • Si le réseau privé est interconnecté avec l'Internet, on doit utiliser les adresses réservées à cet usage et mettre en place une solution de traduction entre ces adresses privées et une ou plusieurs adresses publiques. Seules les adresses publiques sont «visible» de l'Internet.

    Le document RFC1918 donne la liste des préfixes réseau réservés à un usage privé. Les trois donnés dans la table ci-dessous ont été retirés de l'Internet. Si un routeur public reçoit un paquet avec une adresse IPv4 source ou destination appartenant à l'un de ces trois préfixes, il est jeté sans autre forme de procès.

    Dans la pratique, c'est ce second cas de figure que l'on rencontre le plus fréquemment.

Tableau 5. Réseaux privés

Classe Masque réseau Adresses réseau Notation CIDR
A 255.0.0.0 10.0.0.0 - 10.255.255.255 10.0.0.0/8
B 255.240.0.0 172.16.0.0 - 172.31.255.255 172.16.0.0/12
C 255.255.0.0 192.168.0.0 - 192.168.255.255 192.168.0.0/16

Dans le contexte domestique d'utilisation d'une «box», le fournisseur d'accès Internet (FAI) attribue dynamiquement une ou plusieurs adresses IP à l'interface WAN de l'équipement. Tous les hôtes du réseau domestique se voient attribuer une adresse IPv4 privées. L'adresse source de chaque paquet sortant émis par un hôte du réseau privé est traduite par l'adresse publique de la «box».

Peu importe le nombre d'hôtes (donc d'adresses IPv4) utilisées dans le réseau privé, une seule adresse IPv4 est utilisée. C'est à ce niveau que l'on réalise une économie considérable dans la consommation des adresses IPv4 vu de l'Internet.

Cette solution n'est pas sans défaut puisque les hôtes du réseau privés ne sont pas joignables depuis le réseau public et qu'il est nécessaire d'avoir recours à des programmes supplémentaires pour gérer le multiplexage des ports de la couche transport.

Dans le monde GNU/Linux, les mécanismes de traduction d'adresses sont inclus dans la partie filtrage avec couple netfilter/iptables. Par conception des fonctions de traduction d'adresses distinguent deux usages :

  • partager une interface unique du réseau public Internet entre tous les hôtes du réseau privé,

  • rendre un serveur situé dans le réseau privé accessible depuis l'Internet.

Dans le premier cas, on parle de traduction d'adresses source (S-NAT). Ce sont les adresses sources des paquets IPv4 émis par les hôtes du réseau privé qui sont réécrites avec une adresse IPv4 publique.

Dans le second cas, on parle de traduction d'adresses destination (D-NAT). Une adresse IPv4 destination publique est réécrite avec une adresse IPv4 privée en fonction de la destination (adresse IPv4 ou service) demandé.

Ces usages des fonctions de traduction d'adresses avec Linux ont été décrits pour la première fois dans le document de référence Guide Pratique du NAT sous Linux.

Le mécanisme général de «réutilisation d'adresses IP» a été décrit dans le document standard RFC3022.

Traduction d'adresses IPv4
  • Accès depuis le réseau privé vers l'Internet. Les adresses des hôtes du réseau privé sont traduites avec l'adresse de l'interface connectée à Internet.

  • Accès depuis l'Internet vers le réseau privé. Les appels de services (HTTP, DNS, courrier, etc.) sont traduits avec l'adresse du serveur concerné dans le réseau privé.