NAT Traversal dans SIP
Les routeurs NAT sont utilisés
pour palier aux manques d’adresses. Ils sont employés
par les fournisseurs d’accès Internet, par
les entreprises dont le nombre d’adresses qui lui
a été attribuées n’est pas suffisant
par rapport au nombre d’ordinateurs qu’elle
possède. Par fois même un abonné ayant
une connexion DSL et plusieurs ordinateurs qu’il souhaite
connectés à Internet. Grâce au NAT il
est possible de réaliser toutes les situations citées
précédemment en associant aux adresses IP
privées, une adresse IP publique.
Tout d’abord NAT veut dire Network Address Translation
par conséquent translation d’adresse réseau,
c’est un routeur qui remplace les adresses IP contenu
dans l’entête d’un datagramme IP.
NAT Statique
La théorie du routeur NAT statique
repose sur l’association d’une adresse publique
(routable sur Internet) à une machine ayant une adresse
privée qui souhaite dialoguer avec une autre machine
en passant par le réseau Internet. La table d'association
ne contient que des adresses qui sont liées une à
une.
Ce type de translation est plutôt utilisé pour
un serveur Web, un serveur mail ou un serveur FTP. Le NAT
statique à donc permis en partie de gagner un certains
nombre d’adresse, cependant d’autres techniques
existent afin d’économiser d’avantage
d’adresses.
PAT
Cette technique est également appelée
PortForwarding, c'est réunion du NAT statique avec
un numéro de port. Cette association augmente le
nombre d'adressage, en effet pour une adresse IP un numéro
de port et lié, soit un nombre de 64522 ports.
Ce type de NAT est souvent utilisé pour un partage
de connexion ADSL.
NAT
Dynamique
Dans ce cas, la quantité d'adresse
est plus faible pour traduire les adresses IP interne d'un
réseau local. Mais cette fois ci l'attribution de
ces adresses s’effectue durant l'initialisation d'une
connexion. Ce sont es numéros de ports qui vont identifier
les machines du réseau privé qui ont établies
une communication vers l'extérieur.
Un autre NAT dynamique existe c'est le Masquerading. C'est
en fait, l'utilisation d'une seule adresse qui est celle
du routeur.
Il est existe d’autre technique de NAT celle-ci est
encapsulé dans une trame UDP et est appelé NAT
Traversal ou NAT-T. Quatre types de NAT se trouvent dans cette
technique, le cône plein, le cône restrictif,
cône restrictif sur les ports et le symétrique.
Cône plein
Dans le cas du cône plein, la trace est bien établi
et n'importe qui souhaitant atteindre un client derrière
un NAT a besoin seulement de savoir les paramètres
de la trace afin de lui envoyer des paquets.
Par exemple, l’ordinateur Alice situé derrière
un NAT avec une adresse IP 10.0.0.1 envoyant et recevant
sur le port 4545, est tracé par le routeur NAT à
l'adresse et port externe 192.0.2.1 : 9988. À la
réception des messages le routeur va contrôler
l’adresse IP et le numéro de port afin de savoir
s'ils correspondent à la machine Alice.
N'importe qui sur Internet peut envoyer des paquets à
Alice du moment qu’elle connaît son adresse
et numéro de port. Ces paquets seront passés
sur la machine du client écoutant sur 10.0.0.1 :
4545.
Le NAT qui fonctionnent dans cette configuration est susceptible d’attaques de balayage de port et créer des soucis de sécurité.
Cône restrictif
Dans le cas d'un NAT à cône restrictif, l'adresse
externe et le port sont seulement ouvert une fois que l'ordinateur
du réseau local envoie des données à
une IP destination spécifique.
Par exemple, dans le cas où Alice envoie un paquet
à l’ordinateur externe Dalentino, le NAT trace
Alice 10.0.0.1 : 4545 à 192.0.2.1 : 9988 et Dalentino
peut renvoyer des paquets à Alice. Cependant, le
NAT bloquera les paquets entrants venant de Mohadina, jusqu'à
ce qu Alice ait envoyé un paquet à l'adresse
IP et port de Mohadina. Une fois que c'est fait, Dalentino
et Mohadina peuvent envoyer des paquets de nouveau à
Alice, et ils auront tous les deux la même trace par
le NAT.
Cône
à port restrictif
Un NAT de type cône à port restrictif est
presque identique à un cône restrictif, mais
dans ce cas le NAT bloquera tous les paquets à moins
que le client du réseau privé ait précédemment
envoyé un paquet à l'adresse IP et au port
NAT d'une machine extérieur.
Ainsi dans notre exemple, si Alice envoie un paquet à
la machine externe Dalentino au port 10101. Tous les paquets
ayant l'adresse 222.111.88.2 et le numéro de port
10101 seront transmis à Alice par le routeur NAT.
Dans notre exemple les paquets issues de la machine de Mohadina
qui a la même adresse IP que Dalentino mais un port
différent ne seront pas reçus par Alice. Le
NAT les ayant bloqués.
Encore, si Alice a envoyé des paquets à plusieurs
adresses et ports, ils peuvent tous répondre à
Alice, et tous répondront à la même
adresse et port tracée sur le NAT.
Pour une adresse interne donnée, les trois premiers
types de NAT maintiennent une trace de cette adresse interne
qui est indépendant de l'adresse de destination étant
cherché. Le quatrième type de NAT assignera
une nouvelle trace pour chaque adresse destination indépendante.
Symétrique
Le NAT symétrique est différent des trois
premiers dans la trace spécifique d'adresse et port
interne à l’adresse et port publics attribués
par le NAT dépendent de l'adresse IP destination
à laquelle le paquet va être envoyé.
Ainsi par exemple, si Alice envoie un paquet à partir
de l’adresse et port 10.0.0.1 : 4545 à l'ordinateur
Dalentino, Alice peut être tracé comme 192.0.2.1
: 9988, tandis que si Alice envoie du même port (10.0.0.1
: 4545) à Mohadina (222.111.99.1 : 20202), il est
tracé différemment (192.0.2.1 : 9999). L'ordinateur
Dalentino peut seulement répondre à son tracé
et l’ordinateur Mohadina peut seulement répondre
à sa trace. Si l'un essaye d’envoyer à
l'autre adresse et port tracé, ces paquets seront
perdus.
Comme dans le cas du cône restrictif, l'adresse externe
et port sont seulement ouverts une fois que l'ordinateur
interne envoie des données à une destination
spécifique.
Néanmoins la trace qui est ouverte dés l’envoie
du premier paquet du client par le NAT peut seulement être
valide pendant un certain temps en général
quelques minutes. A moins que les paquets continuent à
être envoyés et reçus sur la même
adresse IP et numéro de port.
Par conséquent le NAT résout les problèmes
de pénuries d’adresses en traçant les
adresses internes aux adresses externes ou publiques. Une
adresse IP et port interne sont tracés à une
adresse et port externe, et toutes les fois que le NAT reçoit
un paquet à une adresse et port externe, il est capable
de router le paquet l'adresse et port interne. La trace
est validée pour certaines traces prédéfinies
après quoi, dans l’absence du trafic réseau
entre les deux parties communicantes, cette trace peut être
effacé.