Routage avec MASQUERADE

Plus fort. Nous reprenons ici le principe du routage entre un réseau local utilisant des adresses IP privées et une connexion Internet, avec une « vraie » IP, une qui peut se promener de réseau en réseau en dehors de notre microcosme.

Pour réaliser la manipulation, nous réalisons quelque chose de très similaire à ce que nous avons vu en page précédente, seules les adresses MAC et IP changent, de même que le nom de la passerelle. Notre routeur cyclope, qui connecte nos réseaux 192.168.1.0 et 192.168.0.0 va, ici, réaliser un masquage d'adresse pour 192.168.1.0.

Autrement dit :

Ici, cyclope ne va pas se comporter en routeur « normal », il fera du masquage d'adresse de tout ce qui vient du réseau 192.168.1.0 et sort par eth0.

Avec IPtables, nous utilisons la commande suivante :

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

192.168.1.2 envoie un ping sur 192.168.0.15 :

Côté réseau 192.168.1.0 (LAN) Côté réseau 192.168.0.0 (Pseudo Internet)
# Le ping...
Frame 1 ... Ethernet II, Src: 00:80:c8:8e:89:b0, Dst: 00:20:18:2c:0e:21 Destination: 00:20:18:2c:0e:21 (192.168.1.1) Source: 00:80:c8:8e:89:b0 (192.168.1.2) # Au niveau Ethernet (niveau 2) # - La source est la vraie source # - la destination devient le routeur # Jusque là, tout est normal. Type: IP (0x0800) Internet Protocol, Src Addr: 192.168.1.2 Dst Addr: 192.168.0.15 # Au niveau IP (niveau 3) # - La source est la vraie source # - la destination est la vraie destination # Assez banal, finalement... Version: 4 ... Protocol: ICMP (0x01) Header checksum: 0xb847 (correct) Source: 192.168.1.2 Destination: 192.168.0.15 Internet Control Message Protocol Type: 8 (Echo (ping) request)
# Le ping...

Frame 1 ...
Ethernet II, Src: 00:20:af:4a:66:b7, 
             Dst: 00:05:5d:48:2b:84
    Destination: 00:05:5d:48:2b:84 (192.168.0.15)
    Source: 00:20:af:4a:66:b7 (192.168.0.16)
# Au niveau Ethernet (niveau 2)
#   - La source devient le routeur
#   - la destination est la vraie destination
# Jusque là, tout est normal.

    Type: IP (0x0800)
Internet Protocol, Src Addr: 192.168.0.16
                   Dst Addr: 192.168.0.15
# Au niveau IP (niveau 3)
#   - La source devient le routeur (192.168.0.16)
#   - la destination reste la vraie destination
# Il y a donc eu remplacement de l'adresse
# de la source par celle du routeur (MASQUERADE)...

    Version: 4
    ...
    Protocol: ICMP (0x01)
    Header checksum: 0xba39 (correct)
    Source: 192.168.0.16
    Destination: 192.168.0.15
Internet Control Message Protocol
    Type: 8 (Echo (ping) request)
# Et la réponse...

Frame 2 ...
Ethernet II, Src: 00:20:18:2c:0e:21, 
             Dst: 00:80:c8:8e:89:b0
    Destination: 00:80:c8:8e:89:b0 (192.168.1.2)
    Source: 00:20:18:2c:0e:21 (192.168.1.1)

# Au niveau Ethernet, le routeur répond
# au client, c'est encore normal.

    Type: IP (0x0800)
Internet Protocol, Src Addr: 192.168.0.15, 
                   Dst Addr: 192.168.1.2

# Au niveau IP, de ce côté-ci, on a bien
# l'impression que le serveur a répondu directement
# au client, tout semble normal.
# En fait, MASQUERADE a bien fait son travail.

    Version: 4
    ...
    Protocol: ICMP (0x01)
    Header checksum: 0x25b4 (correct)
    Source: 192.168.0.15
    Destination: 192.168.1.2
Internet Control Message Protocol
    Type: 0 (Echo (ping) reply)
# Et la réponse...

Frame 2 ...
Ethernet II, Src: 00:05:5d:48:2b:84, 
             Dst: 00:20:af:4a:66:b7
    Destination: 00:20:af:4a:66:b7 (192.168.0.16)
    Source: 00:05:5d:48:2b:84 (192.168.0.15)

# Au niveau Ethernet, le serveur répond au routeur
# Là encore, c'est normal.

    Type: IP (0x0800)
Internet Protocol, Src Addr: 192.168.0.15,
                   Dst Addr: 192.168.0.16

# Mais au niveau IP, le serveur répond aussi
# au routeur. C'est logique, à cause de MASQUERADE,
# le serveur croit que c'est le routeur qui
# a envoyé le ping.

    Version: 4
    ...
    Protocol: ICMP (0x01)
    Header checksum: 0x25a7 (correct)
    Source: 192.168.0.15
    Destination: 192.168.0.16
Internet Control Message Protocol
    Type: 0 (Echo (ping) reply)

La morale de cette histoire est la suivante :

Ce n'est pas pour rien que l'on appelle cette technique :  du masquage d'adresse (MASQUERADE) !

Pour finir de mettre les points sur les i :

Dans un routage par masquage d'adresse :

Le routage avec Masquerade Dans un routage simple, c'est plus simple :

Le routage « simple »