Ceci est une ancienne révision du document !
Le masquage d'adresses
La cible «MASQUERADE» du «POSTROUTING», c'est du NAT (Network Address Translation) juste un peu plus sophistiqué. Il mérite que l'on se penche sur son fonctionnement en partant d'un exemple simple. Une station de notre LAN vert 192.168.61.101 effectue un ping sur 172.127.20.195 et dans le même temps, une autre station: 192.168.61.102 fait la même chose, mais sur 51.68.121.59. Les paquets doivent donc transiter par notre routeur NAT qui dispose de l'adresse 192.168.61.1 dans le LAN vert et de 192.168.60.200 dans le LAN orange.
Wireshark espionne ce qu'il se passe sur les deux côtés du routeur:
No. Source Destination Info 3 192.168.61.102 51.68.121.59 Echo (ping) request 1 192.168.60.200 51.68.121.59 Echo (ping) request) 2 51.68.121.59 192.168.60.200 Echo (ping) reply 4 51.68.121.59 192.168.61.102 Echo (ping) reply No. Source Destination Info 6 192.168.61.101 172.217.20.195 Echo (ping) request 5 192.168.60.200 172.217.20.195 Echo (ping) request 8 172.217.20.195 192.168.60.200 Echo (ping) reply 7 172.217.20.195 192.168.61.101 Echo (ping) replyLes trames ont été reclassées pour faciliter la lecture.
- La première trame (ping request) est vue du côté vert:
- la source est bien la station 51.68.121.59,
- la cible est bien le nœud 194.177.211.216.
- La deuxième trame , c'est toujours le ping request, mais vu du côté orange:
- la cible est bien toujours 51.68.121.59,
- la source a changé, c'est maintenant 192.168.60.200, donc l'adresse du routeur dans le LAN orange.
Il y a eu masquage de l'adresse de la vraie source par celle de la sortie du routeur.
- la troisième trame, c'est la réponse de la cible (ping reply) mais elle s'adresse au routeur côté orange
- la quatrième trame, c'est toujours la réponse de la cible, cette fois-ci à la vraie source.
Dans le même temps le même processus se produit entre 192.168.61.101 et 172.217.20.195 et le routeur ne mélange pas les deux processus qui sont pourtant formellement identiques. Par quel prodige ?
C'est le module «conntrack» qui fait le travail
Il existe un outil spécifique, nommé conntrack
:
The conntrack utility provides a full-featured userspace interface to the Netfilter connection tracking system…
Il va permettre d'y voir plus clair en affichant la table des suivis de connexion du module kernel «conntrack»
conntrack --dump --any-nat icmp 1 19 src=192.168.61.101 dst=172.217.20.195 type=8 code=0 id=613 src=172.217.20.195 dst=192.168.60.200 type=0 code=0 id=613 mark=0 use=1 icmp 1 18 src=192.168.61.102 dst=51.68.121.59 type=8 code=0 id=889 src=51.68.121.59 dst=192.168.60.200 type=0 code=0 id=889 mark=0 use=1