Un serveur TURN est un serveur réseau spé­cia­lisé qui permet la trans­mis­sion de données entre deux appareils lorsque ceux-ci ne peuvent pas se connecter di­rec­te­ment en raison de pare-feux ou de routeurs NAT. Il est prin­ci­pa­le­ment utilisé dans les ap­pli­ca­tions de com­mu­ni­ca­tion en temps réel.

Serveurs virtuels (VPS)
VPS éco­no­miques sur serveurs Dell En­ter­prise
  • 1 Gbit/s de bande passante et trafic illimité
  • Dis­po­ni­bi­lité de 99,99 % et cer­ti­fi­ca­tion ISO
  • As­sis­tance 24/7 primée pour sa qualité et con­seil­ler personnel

Qu’est-ce qu’un serveur TURN ?

Un serveur TURN (Traversal Using Relays around NAT) est un service réseau qui agit comme relais et transmet les données entre deux par­ti­ci­pants.

Il devient né­ces­saire lorsque les con­nexions directes peer-to-peer échouent, par exemple en raison de pare-feux res­tric­tifs ou de con­fi­gu­ra­tions NAT complexes. Dans ces cas, le serveur TURN relaie l’ensemble du trafic via lui-même et agit comme relais ap­pli­ca­tif.

Le serveur TURN fournit à un client une adresse de relais publique et un port par lesquels les autres par­ti­ci­pants peuvent envoyer des données. Ces données sont ensuite re­trans­mises vers la des­ti­na­tion finale.

TURN s’appuie sur des pro­to­coles existants comme UDP ou TCP et est étroi­te­ment lié à la com­mu­ni­ca­tion en temps réel. Par rapport à des méthodes plus simples, TURN est plus gourmand en res­sources, mais offre une meilleure fiabilité de connexion. Il est donc in­dis­pen­sable dans de nom­breuses solutions de com­mu­ni­ca­tion pro­fes­sion­nelles.

Note

Dans de nombreux scénarios, un serveur STUN est utilisé en amont d’un serveur TURN. Un serveur STUN aide les terminaux à dé­ter­mi­ner leur adresse IP publique et l’af­fec­ta­tion de leurs ports afin d’établir une connexion peer-to-peer directe. Si cette connexion échoue en raison de pare-feux res­tric­tifs ou de types de NAT, le serveur TURN prend le relais en relayant l’in­té­gra­lité du trafic.

Comment fonc­tionne un serveur TURN ?

Le fonc­tion­ne­ment d’un serveur TURN est fon­da­men­ta­le­ment simple : on peut le voir comme un in­ter­mé­diaire qui met en relation deux in­ter­lo­cu­teurs lorsque ceux-ci ne peuvent pas se connecter di­rec­te­ment.

  1. Dans un premier temps, le client établit une connexion avec le serveur TURN et s’y au­then­ti­fie, gé­né­ra­le­ment à l’aide de données d’accès tem­po­raires.
  2. Après une au­then­ti­fi­ca­tion réussie, le client demande une « al­lo­ca­tion ». Le serveur TURN réserve alors une adresse de relais publique ainsi qu’un port, via lesquels le client devient ac­ces­sible depuis l’extérieur. Le client com­mu­nique ensuite cette adresse de relais à son in­ter­lo­cu­teur.
  3. Au lieu de com­mu­ni­quer di­rec­te­ment entre eux, les deux terminaux envoient leurs paquets de données au serveur TURN. Le serveur agit alors comme une station in­ter­mé­diaire, reçoit les paquets entrants et les transmet à l’autre par­ti­ci­pant.

Ce mécanisme fonc­tionne aussi bien pour les con­nexions sortantes qu’entrantes et contourne ef­fi­ca­ce­ment les res­tric­tions liées au NAT et aux pare-feux. TURN (spécifié dans la RFC 8656) prend en charge dif­fé­rents pro­to­coles de transport comme UDP et TCP pour s’adapter à un maximum de con­di­tions réseau.

Si né­ces­saire, les échanges avec le serveur TURN peuvent être sécurisés via TLS selon la con­fi­gu­ra­tion. C’est souvent le cas dans les réseaux d’en­tre­prise fortement res­treints, afin de garantir la con­fi­den­tia­lité des données grâce au chif­fre­ment.

Un serveur TURN gère les sessions, les al­lo­ca­tions et les tem­po­ri­sa­tions, et peut ainsi utiliser les res­sources ef­fi­ca­ce­ment et prévenir les abus. La re­trans­mis­sion via le serveur entraîne certes une latence plus élevée et une con­som­ma­tion de bande passante sup­plé­men­taire, mais TURN favorise une com­mu­ni­ca­tion plus stable et fiable, même dans des con­di­tions réseau complexes.

Quels sont les domaines d’ap­pli­ca­tion d’un serveur TURN ?

Les serveurs TURN sont prin­ci­pa­le­ment utilisés dans les ap­pli­ca­tions de com­mu­ni­ca­tion en temps réel. Des exemples typiques incluent les systèmes de vi­sio­con­fé­rence, la té­lé­pho­nie VoIP et les jeux en ligne. Les ap­pli­ca­tions basées sur WebRTC utilisent également fré­quem­ment TURN.

TURN devient pertinent dès que les uti­li­sa­teurs se trouvent derrière des pare-feux ou des NAT. Sans serveur TURN, de nom­breuses con­nexions seraient in­ter­rom­pues ou im­pos­sibles à établir. Cela est par­ti­cu­liè­re­ment courant dans les réseaux d’en­tre­prise, où TURN garantit une ac­ces­si­bi­lité maximale. Les dé­ve­lop­peurs utilisent aussi TURN comme mécanisme de repli lorsque les con­nexions directes échouent.

Note

Un exemple concret d’uti­li­sa­tion d’un serveur TURN est Nextcloud Talk. Les fonctions audio et vidéo de Nextcloud Talk reposent sur WebRTC et né­ces­si­tent des con­nexions fiables entre les par­ti­ci­pants. Lorsque les uti­li­sa­teurs se trouvent derrière des pare-feux ou dans des réseaux dif­fé­rents, un serveur TURN est né­ces­saire pour permettre des com­mu­ni­ca­tions stables.

De quel matériel a besoin un serveur TURN ?

Pour faire fonc­tion­ner un serveur TURN, aucun matériel spé­cia­lisé n’est requis. Toutefois, le di­men­sion­ne­ment des res­sources serveur est essentiel. Les serveurs VPS (Virtual Private Server) sont pri­vi­lé­giés, car ils offrent un bon équilibre entre per­for­mance, coût et flexi­bi­lité.

Un VPS fournit des res­sources dédiées comme des cœurs CPU, de la RAM et une bande passante garantie, ce qui est important pour un serveur TURN :

  • Le pro­ces­seur (CPU) gère le routage des paquets, les sessions et, si né­ces­saire, le chif­fre­ment.
  • Une quantité suf­fi­sante de RAM est né­ces­saire pour gérer un grand nombre de con­nexions si­mul­ta­nées de manière stable.
  • L’interface réseau est critique, car tout le trafic média transite par le serveur TURN et peut atteindre des volumes élevés.

Une connexion rapide et stable avec une faible latence influence di­rec­te­ment la qualité audio et vidéo. Les serveurs VPS sont souvent faciles à faire évoluer en ajoutant du CPU, de la mémoire ou de la bande passante selon la charge. Le libre choix du système d’ex­ploi­ta­tion est également un avantage, car les logiciels TURN sont gé­né­ra­le­ment exécutés sous Linux, où ils fonc­tion­nent de manière efficace. Enfin, le contrôle total des pa­ra­mètres réseau (pare-feux, ports, NAT) permet une con­fi­gu­ra­tion fine. Par rapport à l’hé­ber­ge­ment partagé, un VPS offre de meil­leures per­for­mances, des res­sources pré­vi­sibles et une fiabilité su­pé­rieure. Pour la plupart des cas d’usage, un VPS per­for­mant suffit donc largement.

Aller au menu principal