Aller au contenu principal
Tous les termes

Franchissement de NAT et hole punching

Des techniques qui permettent à deux appareils situés derrière des routeurs distincts (NAT) de se connecter directement, en se coordonnant via un serveur d'assistance et en « perçant » un chemin à travers chaque pare-feu.

Pourquoi le NAT fait obstacle

La plupart des ordinateurs se trouvent derrière une traduction d'adresses réseau (NAT) : un routeur qui partage une adresse publique entre de nombreuses adresses privées et ne laisse entrer que les paquets répondant à une connexion ouverte de l'intérieur. Deux machines situées sur des réseaux domestiques ou d'entreprise différents ne peuvent donc pas simplement ouvrir une connexion l'une vers l'autre : chaque routeur rejette le premier paquet de l'autre côté.

La difficulté dépend du routeur. La RFC 4787 décrit comment les NAT associent et filtrent le trafic UDP : lorsqu'un routeur réutilise le même port public pour toutes les destinations, un chemin direct est généralement facile à trouver ; lorsqu'il choisit un nouveau port pour chaque destination (ce qu'on appelle souvent un NAT symétrique), c'est beaucoup plus difficile.

Comment fonctionne le hole punching

La traversée de NAT regroupe les techniques qui trouvent malgré tout un chemin direct. D'abord, chaque côté découvre comment il apparaît de l'extérieur, généralement en interrogeant un serveur STUN. Les deux côtés échangent ces adresses candidates via un serveur de coordination, puis s'envoient des paquets au même moment. Chaque routeur voit d'abord un paquet sortant et traite la réponse comme faisant partie de ce flux : un chemin s'ouvre dans les deux sens. La RFC 5128 passe ces techniques en revue.

On peut aussi s'adresser directement au routeur : UPnP IGD, NAT-PMP et son successeur, le Port Control Protocol (RFC 6887), permettent à une application de demander une redirection de port. Certains pare-feu d'entreprise et le NAT d'opérateur (CGNAT) mettent en échec toutes ces techniques. Quand rien ne fonctionne, la session se replie sur un relais qui transfère le trafic entre les deux côtés.

Comment Vexaro Desk se connecte

Une session Vexaro Desk se connecte directement partout où le réseau le permet, et sinon via un relais Vexaro authentifié. Rien à configurer : le client trouve un chemin tout seul.

Le programme d'installation ajoute une règle au pare-feu Windows pour que les connexions directes et locales fonctionnent ; une version portable ne peut pas l'ajouter, ses sessions passent donc plus souvent par un relais. Les connexions directes peuvent être désactivées dans les paramètres, et la fenêtre de session indique si la session est directe ou relayée. Les sessions directes sont chiffrées de bout en bout. Lorsqu'un réseau impose une connexion relayée, le trafic reste chiffré en transit via des relais exploités par Vexaro.

Les techniques de traversée de NAT

Les techniques de traversée de NAT
TechniqueCe qu'elle faitLimites
Redirection de port (UPnP IGD, NAT-PMP, PCP)3Demande au routeur de rediriger un port vers l'applicationNe fonctionne que si le routeur le prend en charge et que le réseau l'autorise
STUN4Indique à un appareil l'adresse et le port publics vus de l'extérieurTrouve des adresses ; ne transporte aucun trafic de session
Hole punching simultané2Les deux côtés émettent en premier, si bien que chaque routeur accepte les paquets de l'autre comme des réponsesSouvent mis en échec par le NAT symétrique et les pare-feu stricts
Essai de nombreux ports1,2Augmente les chances de correspondance à travers un NAT symétriqueUne correspondance n'est toujours pas garantie
RelaisTransfère le trafic quand aucun chemin direct n'existeFonctionne dès que les deux côtés peuvent le joindre, mais ajoute de la latence et consomme la bande passante de l'opérateur

Favoriser les connexions directes

  1. Installez le client plutôt que d'utiliser la version portable, afin que la règle du pare-feu Windows soit en place.
  2. Autorisez l'UDP sortant : les sessions Vexaro Desk, directes comme relayées, passent par UDP.
  3. Utilisez IPv6 lorsque votre réseau le propose : sans traduction d'adresses au milieu, un chemin direct est plus simple à trouver.

Questions fréquentes

Qu'est-ce que le NAT et pourquoi bloque-t-il les connexions directes ?
Le NAT permet à de nombreux appareils privés de partager une adresse publique, et le routeur ne laisse passer que les paquets qui répondent à une connexion ouverte de l'intérieur. Une tentative de connexion venue de l'extérieur est donc rejetée tant que rien n'a ouvert de chemin au préalable.
Qu'est-ce que le hole punching ?
Les deux ordinateurs découvrent leurs adresses publiques, les échangent via un serveur de coordination et s'envoient des paquets au même moment. Chaque routeur traite les paquets de l'autre côté comme des réponses aux siens, et un chemin direct s'ouvre.
Le hole punching fonctionne-t-il toujours ?
Non. Le NAT symétrique, les pare-feu stricts et le NAT d'opérateur peuvent le mettre en échec. C'est pourquoi les outils d'accès à distance gardent un relais en solution de repli ; Vexaro Desk se connecte directement partout où le réseau le permet, et sinon via son propre relais authentifié.
Les sessions Vexaro Desk relayées sont-elles chiffrées ?
Oui. Les sessions directes sont chiffrées de bout en bout. Lorsqu'un réseau impose une connexion relayée, le trafic reste chiffré en transit via des relais exploités par Vexaro.

Voir cela dans Vexaro Desk

Vexaro Desk réunit accès assisté et non assisté, traversée de NAT, moteur de codecs adaptatif et gouvernance dans une seule console. Il est en accès anticipé, et vous pouvez créer un compte gratuit pour l'essayer.