Un serveur TURN (Traversée utilisant des relais autour du NAT) permet d'établir des connexions WebRTC fiables dans des réseaux très restrictifs.
Cet article s'articule autour des points suivants :
Copier le lien de l'article
Un serveur Traversée utilisant des relais autour du NAT (TURN) est un type de serveur web qui permet des connexions WebRTC entre des appareils informatiques lorsque des pare-feu ou l'utilisation d'adresses IP privées rompent les connexions de communication en temps réel, telles que des appels vidéo ou audio. Comme l'acronyme l'indique, le service TURN contourne le mécanisme de traduction de l'adresse réseau (NAT) pour faire en sorte que la connexion entre les clients ne soit pas coupée au milieu d'une session.
En d'autres termes, les serveurs TURN contribuent à garantir le bon fonctionnement des appels vidéo et audio, même lorsque le réseau n'est pas configuré pour les prendre en charge.
Les serveurs TURN sont nécessaires lorsque l'un des appareils d'une connexion WebRTC utilise une adresse IP privée. Les appareils qui ont des adresses IP privées utilisent le NAT pour se connecter à d'autres appareils. Le NAT reconstitue les paquets et les envoie à l'adresse IP privée, mais elle ne fonctionne pas bien avec de nombreux protocoles, notamment WebRTC.
Imaginez qu'Alice veuille se rendre en voiture à la maison de Bob, mais qu'un obstacle se trouve sur l'autoroute qui les sépare. Au lieu de prendre l'autoroute et de traverser la route, Alice emprunte les routes secondaires jusqu'à ce qu'elle atteigne la maison de Bob par un autre itinéraire. Un serveur TURN fournit un itinéraire de substitution pour les connexions WebRTC lorsque la NAT pourrait autrement constituer un obstacle inviolable.
Un serveur STUN (Session Traversal Utilities pour NAT) est un autre type de serveur qui prend en charge les connexions WebRTC. Il permet à deux appareils de découvrir l'adresse IP publique l'un de l'autre et d'établir une connexion directe. Cependant, les serveurs STUN ne peuvent souvent pas contourner les mesures de sécurité strictes. Dans de tels cas, l'utilisation d'un serveur TURN peut être préférable.
Les communications web en temps réel (WebRTC) relèvent d'une technologie open source qui permet d'établir des communications directes en temps réel peer-to-peer (P2P) en temps réel par le biais d'API. Ce protocole permet aux appareils client de se transmettre des fichiers au lieu de s'appuyer sur un serveur central (par opposition à des protocoles tels que HLS ou HDS, qui supposent un modèle client-serveur). WebRTC est également désormais utilisé pour un certain nombre de protocoles de communication, tels que le protocole de voix sur Internet (VoIP), qui prend en charge les appels téléphoniques et vidéo par Internet.
La NAT (network address translation) est une technique qui permet de mettre en correspondance des adresses IP privées avec des adresses IP publiques, ou, le plus souvent, de mettre en correspondance plusieurs adresses IP privées avec une seule adresse IP publique. ( Les adresses IP sont essentielles pour établir les connexions entre les appareils.)
Le NAT est l'équivalent d'une adresse de transfert dans un système postal. Les correspondants peuvent envoyer du courrier sans connaître la véritable adresse postale du destinataire, puisque l'adresse de transfert le transmet à cette adresse. De la même façon, la NAT fait correspondre une adresse IP publique à une adresse IP privée et transmet les paquets aux bons endroits.
L'une des applications les plus populaires du NAT est l'attribution d'adresses IP au sein de réseaux locaux (LAN), tels que les réseaux WiFi domestiques. L'adresse IPv4 étant insuffisante, les routeurs attribuent des adresses IP dynamiques et privées aux appareils connectés au réseau. Ces adresses IP sont probablement également utilisées par d'autres appareils sur Internet, donc pour éviter toute confusion, le routeur utilise le NAT pour les remplacer par une adresse IP publique qui n'est reproduite nulle part ailleurs. (Le FAI peut également attribuer dynamiquement ces adresses IP publiques.)
Le NAT est également utilisé comme mesure de sécurité visant à préserver la confidentialité des adresses IP. Un appareil peut éviter de révéler sa véritable adresse IP en dehors du réseau (ou simplement au sein du réseau) et utiliser le NAT pour diffuser une adresse IP publique et se connecter à d'autres appareils.
Le problème est que certains protocoles de la couche applicative ne fonctionnent pas bien avec le NAT, à l'instar d'une adresse de transfert qui ne parvient pas à transférer certains types de courrier (les gros colis, par exemple).
Un serveur TURN assure la connectivité même dans des environnements réseau très restreints qui utilisent le NAT et des pare-feu pour dissimuler les adresses IP. Il permet aux communications en temps réel de fonctionner lorsque les connexions normales ne sont pas possibles et que les serveurs STUN ne peuvent pas les prendre en charge. Les serveurs TURN améliorent la fiabilité des services de téléphonie ou de chat sur Internet.
Cloudflare Calls est un service qui permet aux développeurs de créer des applications audio, vidéo et données en temps réel. Cloudflare Calls comprend un serveur TURN mondial, ce qui facilite le développement d'applications en temps réel, rapides et fiables. Pour en savoir plus sur le service TURN de Cloudflare, consultez les documents pour développeurs.