DirectAccess : NAT64/DNS64 et Forefront UAG - partie 2

Ceci est la seconde partie de l’article “DirectAccess : NAT64/DNS64 et Forefront UAG” et va être dédié à l’explication du Fonctionnement de NAT64/DNS64 dans Forefront UAG/DirectAccess

La première partie est visible à l’adresse suivante :
https://blogs.technet.com/stanislas/archive/2009/10/22/directaccess-nat64-dns64-et-forefront-uag-partie-1.aspx

Comme nous l’avons vu précédemment dans la première partie de cet article, NAT64/DNS64 permettent à des systèmes en IPv6 de dialoguer avec des systèmes qui ne sont eux configurés que pour IPv4.

Dans le cas de DirectAccess, l’ensemble des communications effectuées entre le client DirectAccess sur Internet et le Système d’Information se fait en IPv6 (natif ou via des mécanismes de transition tels que Teredo, 6to4, IP-HTTPS ou ISATAP.). Du coup, cela pose un problème si vous avez des systèmes qui ne disposent que d’IPv4 (par choix de paramétrage ou par absence de la couche IPv6).

Forefront UAG complète les mécanismes de transition fournis en standard dans Windows Server 2008 R2 et Windows 7 et utilisés par les clients et les serveurs. Forefront UAG apporte ainsi  le mécanisme NAT64/DNS64 afin d'assurer le bon fonctionnement de DirectAccess même avec un Intranet quasi exclusivement  IPv4 (ce qui est le cas de la très grande majorité de vos réseaux d’entreprise).

Voyons maintenant sur un exemple simple comment cela fonctionne.

Ma plateforme de tests DirectAccess avec Forefront UAG est la suivante :

Nous allons voir comment Forefront UAG permet au client DirectAccess d’accéder au serveur IPv4 WIN2003R2 sur le réseau de l’entreprise.

Tout d’abord il est bon de noter que les résolutions de noms DNS demandées par un client DirectAccess sont résolues sous la forme d’une adresse IPv6.

Par exemple : si l’utilisateur du poste Win7DA demande au serveur DNS la résolution du nom DC01R2, la réponse renvoyée par le serveur DNS est une adresse IPv6 (enregistrement AAAA)

La machine WinDA communiquera en IPv6 avec l’adresse renvoyée par le DNS.

Au passage, on remarque bien ici que l’adresse IPv6 est une adresse de transition ISATAP (construite à partir de l’adresse IPv4 : 10.0.0.11)

Pour l’instant c’est plutôt facile le client DirectAccess parle en IPv6 avec la passerelle, le client DirectAccess parle en IPv6 avec DC01R2. Vient maintenant le cas de la machine WIN2003R2.stan-demo.net qui est une machine Windows Server 2003 R2 avec uniquement une configuration en IPv4.

Comment établir la connexion entre le client DirectAccess et cette machine alors que les 2 ne parlent pas la même langue réseau ?

Dans le cas d’une architecture DirectAccess classique (c’est-à-dire basée uniquement sur Windows Server 2008 R2 en tant que passerelle DirectAccess et sans Forefront UAG),  le DNS ne pourra pas répondre à la requête de résolution du client car aucun enregistrement AAAA n’existe dans la base DNS pour cette machine car elle n’a pas d’IPv6.
Pas de réponse avec une adresse IPv6 de la part du serveur DNS = pas de communication possible entre le poste client DirectAccess et un serveur en IPv4 uniquement.

C’est là qu’intervient Forefront UAG avec le NAT64/DNS64

Reprenons le cas du poste client DirectAccess WIN7DA qui souhaite accéder au serveur WIN2003R2

Etape 1 : le client demande la résolution pour le nom WIN2003R2.stan-demo.net et interroge le serveur DNS affecté par la NRPT pour le domaine stan-demo.net

Note : pour plus d'informations complémentaires sur la NRPT cf. l'article suivant : https://blogs.technet.com/stanislas/archive/2009/07/03/directaccess-mythes-r-alit-partie-3-la-r-solution-de-noms-dns.aspx

Ici : Premier changement entre une architecture DirectAccess classique et une architecture DirectAccess Forefront UAG : Lors de la configuration de la passerelle et lors de la définition de la Name Resolution Policy Table, UAG remplace pour tous les noms de domaines internes déclarés les adresses des serveurs DNS internes par une de ses adresses publiques IPv6.

Dans cet exemple « stan-demo.net » est le suffixe du domaine AD de la plateforme, l’adresse IPv6 (2002:836B:3::836B:3)  est l’adresse du DNS64 de Forefront UAG

Note : cette adresse IPv6 est au format 6to4. Elle est construite à partir de l’adresse IPv4 publique 131.107.0.3 de Forefront UAG selon la structure suivante :

Donc nous avons le client WINDA qui souhaite la résolution du nom WIN2003.stan-demo.net

Sa requête DNS est envoyée à l’adresse IP définie dans la NRPT (donc au serveur Forefront UAG et plus particulièrement à son module DNS64).

Etape 2 : le module DNS64 du serveur Forefront UAG va envoyer 2 requêtes DNS au(x) serveur(s) DNS internes. La première requête est pour obtenir l’adresse IPv6 (enregistrement AAAA), la seconde est pour obtenir l’adresse IPv4 (enregistrement A).

Etape 3 : La réponse du serveur DNS interne et son traitement par Forefront UAG

Là, la seule réponse que peut renvoyer le serveur DNS interne, c’est une réponse pour l’enregistrement A (IPv4) et rien pour l’IPv6.

Le serveur Forefront UAG sait alors qu’il va falloir faire une translation de protocoles IPv6/IPv4 avec le NAT64. DNS64 va générer une adresse IPv6 à partir de :
- L’adresse IPv4 renvoyée par le serveur
- Le préfixe NAT64 configuré sur le serveur Forefront UAG

Note : si le serveur DNS renvoie 2 réponses (une IPv4 pour l’enregistrement A et une IPv6 pour l’enregistrement AAAA), alors le serveur Forefront UAG ne transmet que l’adresse IPv6 au client DirectAccess.

Etape 4 : le client reçoit comme réponse à sa requête AAAA pour Win2003R2.stan-demo.net, l’adresse IPv6 générée par Forefront UAG et associée dans la table du NAT64 à l’adresse IPv4 interne 10.0.0.30

 

L’adresse IPv6 envoyée au client DirectAccess est la suivante : 2002:836b:2:8001::a00:1e:

Ce qui est donc une adresse IPv6 6to4 constituée comme suit :

Etape 5 : le client envoie ses paquets réseaux au serveur Win2003R2 (avec l’adresse IPv6 renvoyée par le DNS64)

Etape 6 : Le NAT64 transforme et renvoie les paquets en IPv4 vers WIN2003R2

Pour cela, il s’appuie sur l’adresse IPv6 de destination (qui je le rappelle a été construite avec un préfixe IPv6 et l’adresse IPv4 du serveur WIN2003) des paquets envoyés par le client DirectAccess WIN7DA

Etape 7 : Le serveur Win2003R2 répond au serveur Forefront UAG en IPv4.

Etape 8 : Le NAT64 transforme et renvoie les paquets en IPv6 vers WIN7DA

C’est tout ! Voilà, j’espère que cet article vous aura éclairé sur le NAT64/DNS64 disponible avec Forefront UAG :-)

Tags: NAT64, DNS64, IPv6