Ceci est une ancienne révision du document !
Le masquage d'adresses
La cible «MASQUERADE» du «POSTROUTING» 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 dur 194.177.211.216. 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 Protocol Info 1 192.168.61.101 194.177.211.216 ICMP Echo (ping) request 3 192.168.60.200 194.177.211.216 ICMP Echo (ping) request 4 194.177.211.216 192.168.60.200 ICMP Echo (ping) reply 2 194.177.211.216 192.168.61.101 ICMP Echo (ping) reply
- La trame 1 (ping request) est vue du côté vert:
- la source est bien la station 192.168.61.101,
- la cible est bien le nœud 194.177.211.216.
- La trame 2, c'est toujours le ping request, mais vu du côté orange:
- la cible est bien toujours 194.177.211.216,
- 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 trame 3 c'est la réponse de la cible (ping reply) mais elle s'adresse au routeur côté orange
- la trame 4 c'est toujours la réponse de la cible, cette fois-ci à la vraie source.
À première vue, tout ceci parait simple, le routeur change l'adresse de la source au départ puis change l'adresse de la cible au retour. Sauf que s'il y a deux stations différentes dans le LAN vert qui envoient un ping sur des cibles différentes en même temps, commet va faire le routeur pour ne pas tout mélanger ?
C'est le module «conntrack» qui fait le travail
Il existe un outil spécifique: conntrack
:
The conntrack utility provides a full-featured userspace interface to the Netfilter connection tracking system…
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