Partager via


Réception du trafic sollicité sur Teredo

De nombreuses applications telles que Microsoft Internet Explorer et Microsoft Outlook initient uniquement des connexions à Internet. Pour ces applications, Teredo peut fournir une connectivité transparente sur IPv6 en l’absence d’autres interfaces IPv6. En outre, le trafic sollicité peut être reçu via l’interface Teredo sur les plateformes Microsoft Windows XP antérieures avec Service Pack 2 (SP2) et Windows Server 2003.

La documentation suivante explique comment ces applications atteignent la connectivité et les circonstances dans lesquelles Teredo est utilisé.

Obtention d’une adresse de destination

Une application tente d’obtenir l’adresse de destination à l’aide de différentes méthodes telles que DNS (Domain Name System) ou PNRP (Peer Name Resolution Protocol). Il est possible pour l’application d’obtenir plusieurs adresses IP IPv4 et IPv6 à l’aide de ces méthodes. Les API classiques utilisées pour obtenir des adresses IP incluent l’API Windows XP GetHostByName et la nouvelle API Windows Vista GetAddrInfo. Par exemple, l’utilisation de l’API GetAddrInfo avec le paramètre ai_family défini sur AF_INET6 comme indicateur addrinfo/protocol permet à l’utilisateur d’interroger les serveurs DNS pour obtenir des adresses IPv6 spécifiquement. L’API DnsQuery avec le type DNS_TYPE_AAAA peut également être utilisée pour interroger les serveurs DNS pour les enregistrements AAAA.

Établissement d’une connexion

Une connexion établie avec Teredo est décrite comme « transparente », car elle est gérée comme toute autre connexion IPv6. La programmation d’une application ne nécessite pas de considération particulière pour pouvoir utiliser l’interface Teredo. Lorsqu’une connexion est établie entre les interfaces Teredo, un routeur relais, typique de 6to4 et d’autres interfaces natives, n’est pas nécessaire. Toutefois, Teredo est conçu comme une technologie de transition de dernier recours pour la connectivité IPv6.

Notes

Teredo n’est pas utilisé si le nom d’hôte fourni est résolu en adresses IPv4 uniquement.

 

Lorsqu’une application tente de se connecter à une destination à l’aide d’adresses IPv6, les opérations suivantes se produisent :

  • L’application obtient une liste d’adresses IPv6 en appelant l’API GetAdaptersAddresses . La pile Windows Vista retourne une liste de toutes les interfaces en fonction de l’ordre de tri spécifié dans RFC 3484. Par conséquent, les interfaces IPv6 et IPv6 6to4 seront répertoriées avant l’interface Teredo. Toutefois, lorsque la connectivité IPv6 ou 6to4 native n’est pas disponible, Teredo est la seule interface compatible IPv6 répertoriée.

    Il est important de rappeler qu’une application peut utiliser n’importe quelle interface fournie par la pile Windows Vista. Toutefois, l’ordre de la liste d’interface retournée entraîne le plus souvent une tentative de Teredo en dernier.

  • Avant que Windows Vista tente une connexion via l’interface Teredo, le système d’exploitation s’assure que l’adresse IPv6 est stabilisée. Cette opération est effectuée automatiquement pour les connexions sortantes et n’est pas une considération cruciale pour une application. Dans le cas où l’application est requise pour garantir la stabilité de l’adresse, l’API NotifyStableUnicastIpAddressTable peut être appelée pour garantir la stabilité de l’adresse Teredo.

  • Une interface Teredo tente de se connecter à une autre interface Teredo à destination. Si aucune interface Teredo n’est présente, une connexion est établie avec une adresse de destination native ou 6to4 via un relais spécifique à l’hôte.

Il est également possible pour les applications qui initient des connexions à Internet de recevoir du trafic non sollicité. Pour plus d’informations, consultez Réception de trafic non sollicité sur Teredo.

Utilisation de l’API WSAConnectByName

En appelant l’API WSAConnectByName, il est possible pour une application de se connecter à un nom de destination au lieu de spécifier l’adresse IP exacte. La pile Windows Vista préfère IPv6 à IPv4 et, par conséquent, toutes les tentatives de connexion seront effectuées en premier aux adresses IPv6.

L’appel de l’API WSAConnectByName trie toutes les adresses IP de destination obtenues dans l’ordre suivant :

  • Adresse IPv6 native
  • Adresse IP 6to4
  • Adresse IPv4
  • Adresse teredo

Une fois les adresses de destination triées en interne, une connexion à la destination est tentée en fonction du meilleur itinéraire disponible sur l’hôte local pour l’adresse de destination. Comme indiqué par l’ordre des adresses triées, si le nom de destination est résolu en adresse IPv4 et Teredo, l’adresse IPv4 sera utilisée pour établir la connexion.

L’API WSAConnectByName fonctionne en interne pour trouver la meilleure correspondance entre les adresses. Cette tentative est basée sur les itinéraires disponibles sur l’hôte local et les adresses de destination.

En raison de l’absence actuelle de relais Teredo sur Internet, il est peu probable que les connexions aux adresses IPv6 natives réussissent via l’interface Teredo. Si WSAConnectByName est appelé, Windows Vista n’émet pas de requêtes AAAA lorsque Teredo est la seule interface compatible IPv6 disponible. Cela garantit que les adresses IPv6 natives ne sont pas obtenues en tant que destination et que les connexions sont tentées via IPv4, qui a les plus de chances de succès. Pour obtenir des adresses IPv6 lorsque Teredo est la seule interface compatible IPv6, une application doit utiliser explicitement l’API DnsQuery pour les enregistrements AAAA.