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.