MOOC:Verb44
From Livre IPv6
Activité 44 : Interopérer les applications par passerelles applicatives
Contexte d'utilisation
La solution NAT64 bien que fonctionnelle n'est pas universelle.
Certaines applications n'arrivent plus à communiquer lorsque leur communication passe par le NAT64. C'est le cas notamment quand le protocole applicatif utilise des adresses IP.
La solution de la passerelle applicative offre une technique d'interopérabilité moins intrusive que NAT64 au niveau de l'infrastructure de communication. En effet, déployer NAT64 demande de modifier le routage, et d'allouer des adresses. Le déploiement du NAT64 est transparent pour les hôtes, mais nécessite des modifications au niveau du réseau.
Dans le cas du déploiement d'une passerelle applicative, nous sommes dans une situation inverse, les modifications sont à apporter uniquement, dans la configuration des hôtes. Ainsi, il est possible avec une passerelle applicative d'avoir un déploiement progressif d'IPv6 dans le réseau sans perturber les services en place. Enfin, dans le cas d'un client IPv4 qui se connecte à des serveurs de l'Internet IPv6, la passerelle applicative est de nos jours la seule méthode d'intér-opérabilité. Et de manière générale, la passerelle applicative est une technique pour traiter les situations d'échec de NAT64.
Principe des passerelles applicatives
La passerelle applicative (encore appelée ALG pour Application Layer Gateway) est un nœud en double pile qui opère au niveau du protocole applicatif. Elle reçoit ici un paquet en IPv6 qui lui a été adressé explicitement par la source. Elle traite les données du paquet selon le protocole applicatif puis effectue un envoi vers le destinataire final. Ce destinataire est joignable dans une autre version du protocole IP que la source. En quelque sorte, on profite de passer par une passerelle applicative pour les besoins de l’application, pour changer de version de protocole IP
Cas du service web
Il s'agit ici de faire communiquer des clients avec des services Web. Les clients et les serveurs utilisent une version différente du protocole IP. La passerelle applicative utilisée dans notre illustration est un relais HTTP, qui va recevoir les requêtes, et émettre les réponses. Lorsque le déploiement de la passerelle applicative est, du côté du client, on parle de proxy. Elle va servir à atteindre tous les serveurs extérieurs, dont ceux qui utilisent une version IP différente du client.
Lorsque le déploiement de la passerelle applicative est, dans le réseau du serveur, on parle de reverse proxy. Elle va servir à donner accès aux contenus du serveur pour tous les clients qui n'utilisent pas la version IP du serveur.
La passerelle applicative est un moyen d'offrir un accès à des clients IPv6, sans modifier le serveur. La règle de transparence du déploiement d'IPv6, au service en place, est ainsi très bien illustrée.
- Lorsqu'un client qui est ici un navigateur web souhaite accéder à un serveur web, il envoie une requête en IPv6 au proxy.
- Le proxy reçoit cette requête, la traite, et la fait suivre en IPv4 au serveur.
- Ce dernier répond en IPv4 par un envoi à destination du proxy.
- Le proxy reçoit la réponse et la fait suivre en IPv6, au client.
Nous voyons ici, la situation où l'accès au serveur s'effectue en passant par un reverse proxy. Autrement dit, une ALG coté serveur a été installée.
- L'ALG a été enregistrée dans le DNS avec une adresse IPv6 sous le nom de exemple.org qui est le nom du service. L'adresse IPv4 du service est toujours celle du serveur.
- L'ajout du reverse proxy ne change rien pour les clients IPv4. Ceux-ci accèdent directement au serveur.
- Dans le cas d'un client IPv6, celui-ci envoie une requête pour obtenir l'adresse IPv6 du service.
- Le DNS lui répond par l'adresse du reverse proxy.
- Le client envoie en IPv6 sa requête à destination du reverse proxy.
- Celui-ci reçoit cette requête, la traite, et la fait suivre en IPv4 au serveur, qui dispose du contenu.
- Le serveur envoie la réponse au reverse proxy, en IPv4.
- Le reverse proxy disposant du contenu demandé, peut maintenant répondre en IPv6 à la requête du client.
Conclusion
Les passerelles applicatives offrent un moyen simple d’interopérer une application entre des clients, et des serveurs qui n'utilisent pas la même version du protocole IP. Parce qu'elles interprètent le contenu du paquet dans la couche d'application, elles sont transparentes pour l'infrastructure de communication. En effet, elles ne demandent pas de modifications au niveau du réseau. Cependant, les passerelles applicatives introduisent un délai pour le traitement des paquets. Elles passent mal le facteur d'échelle, et présentent un risque de congestion. Enfin, elles se limitent aux applications conçues pour pouvoir fonctionner avec un relais intermédiaire.