Re: Routeur ADSL

Top Page

Reply to this message
Author: Jerome KIEFFER
Date:  
To: guilde
Subject: Re: Routeur ADSL
On Mon, 7 Oct 2002 15:44:15 +0200
Edgar Bonet <guilde@???> wrote:

> Le lundi 7 octobre, Jérôme KIEFFER a écrit :
> > 1) le NAT n'est pas dificile a reconnaitre que cela : l'adresse IP
> > interne (non routable) est encapsulée.
>
> On la trouve à quel niveau de protocole ? Dans quel champ ?


J'ai raconté une connerie : voici un datagramme d'une requette http sur
www.guilde.org naté chez moi :
ip interne =192.168.3.4 == C0A8 0304
ip guilde.org = 130.94.22.254 == 825E 16FE
ip publique = 217.128.128.248 == D980 80F8

19:22:43.324142 217.128.128.248.32954 > 130.94.22.254.80: P [tcp sum ok]
0:101(1
01) ack 1 win 5840 <nop,nop,timestamp 4125987 484485614> (DF) (ttl 63,
id 6178, 
len 153)
                         4500 0099 1822 4000 3f06 2f68 d980 80f8
                         825e 16fe 80ba 0050 3806 ed34 3782 c533
                         8018 16d0 44cb 0000 0101 080a 003e f523
                         1ce0 a9ee 4745 5420 2f20 4854 5450 2f31
                         2e30 0d0a 5573 6572 2d41 6765 6e74 3a20
                         5767 6574 2f31 2e38 2e32 0d0a 486f 7374
                         3a20 7777 772e 6775 696c 6465 2e6f 7267
                         0d0a 4163 6365 7074 3a20 2a2f 2a0d 0a43
                         6f6e 6e65 6374 696f 6e3a 204b 6565 702d
                         416c 6976 650d 0a0d 0a


Comme on le voit : pas de trace de l'adresse interne dans le datagramme.

Et puis dans :
http://www.usenet-fr.net/fur/comp/reseaux/nat.html

on trouve :
4.2 Le fonctionnement de la NAT dynamique    


Le fonctionnement est un peu différent de celui de la NAT
   statique. Nous allons notamment voir pourquoi il faut faire
   de la PAT et non pas une simple traduction des adresses IP.    
Reprenons l'exemple précédent:
                Machine 1
              10.0.0.1/24
                   |
                   |
       Interface interne routeur
             10.0.0.254/24
               <ROUTEUR>
       Interface externe routeur
            193.22.35.42/24
                   |
                   |
               Internet    
Cette fois, c'est l'adresse publique de l'interface externe
   du routeur 193.22.35.42 qui va être utilisée pour sortir.
   Ainsi, lorsque le paquet arrive à la machine de
   destination, www.ohmforce.com par exemple, celle-ci le
   renvoie vers l'adresse 193.22.35.42.
   Le routeur reçoit donc ce paquet et voit que l'adresse de
   destination est lui-même !!    Comment peut-il alors savoir si le
paquet est pour lui ou
   une machine en interne ?    C'est grâce aux ports TCP/UDP qu'il va
pouvoir faire la
   différence. Ainsi, si une machine en interne fait une
   requête avec comme port TCP source 2356, le routeur pourra
   savoir que lorsqu'il recevra un paquet avec comme port
   destination 2356, il faut le rediriger vers la machine en
   interne qui a initialisé la connexion.    Mais je vois déjà pointer
les questions:
   "oui, mais si deux machines du réseau interne initialisent
   des connexions avec le même port TCP/UDP ? hein ? alors ?
   comment qu'on fait pour savoir qui est qui ? hein ?
   alors ?"    Et vous auriez raison de vous les poser !
   Mais tout a été prévu pour pallier à ce problème.
   En fait, le routeur remplace le port TCP/UDP source par un
   nouveau qu'il choisit lui-même. Ainsi, comme c'est lui qui
   les choisit, il n'en choisira pas deux identiques, et
   pourra identifier chacune des connexions, magisme...    


On reprend donc depuis le début le fonctionnement.    
   La machine 10.0.0.1 veut se connecter au site
   www.ohmforce.com, elle envoie donc un paquet avec comme
   adresse source la sienne, 10.0.0.1, et comme port source un
   port quelconque supérieur à 1024, soit par exemple 5987. Le
   paquet arrive au routeur qui fait la NAT, il remplace donc
   l'adresse IP source par la sienne 193.22.35.42, et la PAT
   en remplaçant le port TCP/UDP source 5987 par un de son
   choix, 10000 par exemple.
   Il garde ces informations de correspondance bien au chaud
   dans une table NAT.
   Le paquet arrive a www.ohmforce.com qui le renvoie a
   193.22.35.42. Le paquet arrive au routeur, il voit que
   l'adresse destination est lui-même, il regarde donc le port
   destination TCP/UDP qui est 10000. Il va regarder dans la
   table NAT pour avoir la correspondance, et bingo !! il sait
   qu'il faut envoyer ce paquet à 10.0.0.1, tout en ayant
   modifié le port destination 10000 en 5987 qui est le port
   sur lequel 10.0.0.1 a initialisé la connexion.    


Et voilà.    


On peut ainsi masquer autant de machines que l'on veut
derrière une seule adresse publique !

--
Jérôme @taz : Morgan 1200 + 512Mo DDR in a 10L SS40G
"Windows 95 is a 32-bit shell for a 16-bit extension to an 8-bit
operating system designed for a 4-bit microprocessor by a 2-bit company
that can't stand one bit of competition."