Maison  >  Article  >  interface Web  >  Protocole d'étourdissement, port et trafic

Protocole d'étourdissement, port et trafic

Patricia Arquette
Patricia Arquetteoriginal
2024-10-11 10:30:02161parcourir

STUN est un protocole conçu pour surmonter les barrières de communication introduites par NAT.

Le protocole STUN permet aux appareils qui se trouvent derrière un NAT de découvrir leur propre adresse IP publique et leur propre numéro de port.

Les appareils communiquent avec un serveur STUN qui se trouve sur Internet, et le serveur STUN fournit ces informations à l'appareil client

L'appareil peut ensuite partager ces informations avec un ou plusieurs autres appareils sur Internet avec lesquels il souhaite communiquer

Cela permet aux appareils externes de communiquer directement entre eux, en traversant efficacement le NAT

STUN est important pour faciliter la communication peer-to-peer en temps réel.

Si vous souhaitez en savoir plus sur ce qu'est un serveur STUN, alors vous pouvez vous référer à notre article : Stun Server : Qu'est-ce que les utilitaires de traversée de session pour NAT ?


Stun Protocol, Port and Traffic

Comprendre le problème NAT

Explication de la traduction d'adresses réseau (NAT) et de son utilisation généralisée.

Les routeurs mappent plusieurs adresses IP privées à une seule adresse IP publique IP à l'aide d'une technique appelée NAT ou Network Address Translation

Cela permet à plusieurs appareils présents sur le réseau local de se connecter à Internet en utilisant une seule adresse IP publique.

Conservant ainsi le nombre limité d'adresses IPv4.

Le NAT s'est répandu en raison de la croissance exponentielle du nombre d'appareils connectés à Internet et de l'adoption tardive d'IPv6, qui offre un espace d'adressage plus grand.

Problèmes introduits par NAT dans la communication peer-to-peer

NAT bloque la communication directe entre les appareils en bloquant le trafic entrant, en modifiant les mappages de ports et en masquant l'adresse IP publique des appareils qui se trouvent derrière le NAT

Il est donc important de surmonter les barrières créées par NAT pour permettre une communication directe entre les appareils qui se trouvent sur différents réseaux sur Internet

Les solutions transversales NAT comme le protocole STUN permettent aux appareils de découvrir leur propre adresse IP publique et de négocier des connexions via des routeurs NAT

Souvent, les serveurs STUN ne suffisent pas pour la traversée NAT et vous devez vous rabattre sur les serveurs TURN

Si vous mettez en œuvre une communication individuelle et avez besoin de serveurs STUN et TURN fiables, vous pouvez envisager

Projet Open Relay : Serveurs TURN/STUN gratuits

Serveurs TURN de Metered.ca : Serveurs TURN premium avec une portée mondiale

Les services tels que la VoIP et la vidéoconférence nécessitent des serveurs STUN et TURN.


Protocole STUN : Solution pour la traversée NAT

Qu'est-ce que STUN ?

STUN ou Session Traversal Utilities for NAT est un protocole standardisé défini dans la RFC 5389 qui permet aux appareils situés derrière un NAT ou un pare-feu de découvrir leur propre adresse IP publique et leur numéro de PORT

STUN permet également aux appareils et aux applications de découvrir quel type de NAT ils se trouvent derrière et d'obtenir les informations nécessaires pour établir un canal de communication direct avec d'autres appareils sur Internet

Les fonctionnalités de base de STUN incluent :

  1. Découverte d'adresse IP publique : STUN permet à un appareil client d'apprendre son adresse IP publique

  2. Mappage des ports : STUN aide le périphérique client à savoir quel numéro de port lui a été attribué par le périphérique NAT

  3. Détection du type NAT : Le serveur STUN aide l'appareil client à savoir quel type d'appareil NAT il se trouve derrière. Les types de NAT incluent le NAT à cône complet, le NAT à cône restreint, le NAT symétrique, etc.

  4. Faciliter la communication peer-to-peer : Ainsi, le serveur STUN facilite la communication peer-to-peer entre les appareils


Comment fonctionne STUN

Comment STUN aide les appareils à découvrir leur propre adresse IP publique et leur propre numéro de port

Lorsqu'un appareil client envoie une requête au serveur STUN, qui se trouve sur Internet. Le serveur STUN peut voir l'adresse IP publique et le numéro de port d'où provient la demande.

Le serveur STUN renvoie ensuite ces informations au client. C'est ainsi que le serveur STUN aide les appareils à découvrir leur propre adresse IP publique et le numéro de port qui leur est attribué par le routeur NAT.

Le processus permet au client de

  • Découvrez son point de terminaison public : comprenez comment les autres appareils le voient sur Internet

  • Partager les détails de la correction avec ses pairs : une fois que l'appareil client obtient les détails du serveur STUN, il peut ensuite les partager avec d'autres appareils sur Internet avec lesquels il souhaite démarrer la communication

  • Adapter le comportement du NAT : ajustez les stratégies sur la façon de parcourir le NAT en fonction du type de NAT derrière lequel se trouve l'appareil client

Comment fonctionne STUN étape par étape

  1. Initiation client

    1. L'appareil client envoie une requête au serveur STUN en utilisant le protocole UDP pour connaître sa propre adresse IP publique et son numéro de port
    2. Il envoie une demande de liaison STUN via le protocole de datagramme utilisateur UDP
  2. Réception du serveur STUN

    1. Le serveur STUN accepte la demande et note l'adresse IP source et le numéro de port d'où provient la demande.
    2. Le serveur STUN répond ensuite avec l'adresse IP et le numéro de port, au client
  3. Réponse contraignante

    1. Le serveur STUN contracte un message de réponse de liaison STUN
    2. Cette réponse inclut un attribut MAPPED-ADDRESS, l'adresse IP publique et le port du client.
  4. Reçu client

    1. L'appareil client reçoit ensuite la réponse de liaison du serveur
    2. L'appareil client récupère ensuite l'adresse IP publique et le numéro de port de l'attribut MAPPED-ADDRESS
  5. Découverte du type NAT (facultatif) :

    1. Le client peut ensuite effectuer des tests supplémentaires à partir de différents serveurs STUN pour déterminer quel type de NAT se trouve derrière le client
    2. Cela implique d'envoyer différentes requêtes depuis différents ports et d'évaluer la réponse
  6. Établir la communication

    1. Avec l'adresse IP publique et le numéro de port, l'appareil client peut ensuite partager ces informations avec d'autres appareils sur Internet pour établir la communication

Stun vs TURN et protocole ICE

STUN vs autres méthodes de traversée NAT

  1. STUN (Utilitaires de traversée de session pour NAT)

    1. Objectif : permet aux appareils clients de découvrir leur adresse IP publique et leur numéro de port
    2. Cas d'utilisation : idéal lorsque le NAT et les pare-feu permettent une communication directe peer-to-peer une fois que les adresses IP publiques sont connues.
    3. Limitations : ne fonctionne pas lorsque les règles NAT et de pare-feu sont restrictives.
  2. TURN (Traversée utilisant des relais autour du NAT)

    1. Objectif : fournit un mécanisme de secours en relayant les données via un serveur TURN lorsque la communication directe peer to peer n'est pas possible
    2. Cas d'utilisation : essentiel lorsque les règles restrictives de NAT et de pare-feu ne permettent pas la communication directe entre les appareils sur Internet
    3. Fonctionnement : Tout le trafic est crypté de bout en bout et envoyé via le serveur TURN, qui relaie les données à chaque client
    4. Compromis : vous devez placer les serveurs à proximité des appareils clients, afin de réduire la latence et d'améliorer la communication
  3. ICE (Établissement de connectivité interactive)

    1. Objectif :ICE est un framework qui combine STUN et TURN pour établir la meilleure connexion possible entre les clients.
    2. Cas d'utilisation : utilisé dans WebRTC et d'autres systèmes de communication en temps réel afin de gérer diverses configurations réseau
    3. Fonctionnement

      1. Rassemblement de candidats : les clients rassemblent d'abord les candidats pour voir les connexions possibles aux points de terminaison, celles-ci sont trouvées à l'aide de l'hôte, de manière réflexive via STUN et TURN
      2. Vérifications de connectivité : les clients effectuent ensuite des vérifications pour voir à l'aide de quels candidats ils peuvent établir une connexion
      3. Sélection des candidats : Le chemin optimal qui est celui avec la latence la plus faible est sélectionné par le framework ICE pour établir la communication
    4. Avantages : maximise les chances d'établir une connexion tout en optimisant pour de meilleures performances

Quand utiliser STUN par rapport à d'autres méthodes

  1. Utilisez STUN seul lorsque

    1. Les deux clients sont derrière NAT et un pare-feu qui permettent une communication directe après avoir découvert l'adresse IP et le numéro de port
    2. Les deux clients disposent d'une bonne connexion Internet et l'environnement réseau est prévisible, par exemple les appareils ne changent pas de réseau comme dans le cas des téléphones mobiles, etc.
  2. Utilisez STUN TURN et ICE lorsque

    1. Les appareils sont soumis à des règles restrictives de NAT et de pare-feu
    2. L'environnement réseau évolue comme dans le cas des appareils mobiles, etc.
    3. La fiabilité est importante, vous ne pouvez pas laisser des appareils se déconnecter pour une raison ou une autre

Résumé des considérations

  • Performances

    • STUN donne de bonnes performances lors de la connexion de clients à proximité mais il n'est pas non plus fiable, mais c'est une option gratuite
    • TURN offre les meilleures performances mais nécessite un serveur plus proche des appareils clients pour réduire la latence. De nos jours, vous disposez de services de serveur tournants mondiaux tels que metered.ca qui fonctionnent plutôt bien
  • Complexité :

    • STUN est assez simple à mettre en œuvre et à utiliser
    • TURN : C'est assez simple et facile à utiliser
  • Taux de réussite :

    • STUN : il échouera dans les règles restrictives de NAT et de pare-feu
    • TURN : Plus fiable et fonctionne avec des règles restrictives de NAT et de pare-feu

Ports STUN et gestion du trafic

Port par défaut utilisé par STUN

Les ports UDP et TCP couramment utilisés sont 3478 et 5349

Le protocole STUN utilise des ports réseau spécifiques pour communiquer entre les clients et les serveurs STUN

  • Ports UDP

    • Port 3478 : il s'agit du port par défaut pour STUN pour le protocole UDP, STUN fonctionne généralement sur le protocole UDP en raison de sa faible surcharge et le port 3478 est généralement utilisé
    • Port 5349 : Il s'agit généralement du port pour UDP sur DTLS, qui assure le cryptage de la communication UDP
  • Ports TCP

    • Port 3478 : STUN : STUN peut fonctionner sur le même port qui est le 3478 pour TCP lorsque UDP n'est pas adapté ou bloqué
    • Port 5349 : ceci est utilisé pour STUN avec TLS qui est Transport Layer Security offrant des connexions TCP
  • Ports alternatifs

    • Bien qu'il s'agisse des ports par défaut pour le serveur STUN, tout autre port peut également être configuré pour être utilisé pour les serveurs STUN et TURN.
    • Pour des raisons de sécurité, il est souvent conseillé d'exécuter également le serveur STUN sur d'autres ports.

Considérations de sécurité liées à l'utilisation du port

  1. Exposition à la numérisation des ports

    1. Les attaquants recherchent souvent sur Internet les ports par défaut du serveur STUN, garder les serveurs STUN sur le port par défaut peut les rendre plus vulnérables à de telles activités de reconnaissance
  2. Configuration du pare-feu

    1. Trafic entrant

      1. Par défaut, de nombreux pare-feu bloquent le trafic entrant non sollicité sur les ports STUN afin d'empêcher tout accès non autorisé
      2. Les pare-feu n'autorisent le trafic entrant que s'il répond à une demande légitime initiée par un appareil à l'intérieur du réseau
    2. Trafic sortant :

      1. Autoriser le trafic sortant uniquement vers les serveurs STUN et TURN de confiance et sur les ports nécessaires.
  3. Utiliser le cryptage

    1. STUN sur TLS/DTLS (ports 5349) : alors que le trafic du serveur TURN est crypté de bout en bout. Le trafic du serveur STUN ne l'est pas, mais vous pouvez également activer le cryptage STUN.
  4. Mises à jour et correctifs réguliers : lorsque vous utilisez vos propres serveurs STUN/TURN, vous devez les mettre à jour régulièrement et les corriger pour des raisons de sécurité.

  5. Journalisation et surveillance : enregistrez et surveillez toujours les serveurs STUN et TURN si vous utilisez vos propres serveurs STUN/TURN pour détecter les vulnérabilités de sécurité


Serveurs STUN basés sur le cloud vs solutions auto-hébergées

Serveurs TURN basés sur le cloud

  • Serveurs TURN/STUN mesurés : Offre des services STUN et TURN globaux, évolutifs et gérés avec API

  • Serveurs publics STUN de Google : Google propose une liste de serveurs STUN gratuits, vous pouvez obtenir la liste des Serveurs STUN de Google

  • Serveurs Open Relay TURN/STUN : Serveurs TURN gratuits pour le public

Solutions auto-hébergées

  • Serveurs Coturn STUN / TURN : Vous pouvez exécuter votre propre serveur Turn avec le projet open source cotton. Voici le guide sur : Comment installer et configurer le serveur TURN à l'aide de coTURN ?

  • Serveurs AWS TURN : vous pouvez également exécuter Coturn sur AWS : voici le guide à ce sujet : Serveur AWS TURN : en 7 étapes simples

  • Serveurs Azure TURN : vous pouvez également exécuter les serveurs TURN sur Azure. Voici un guide à ce sujet : Azure TURN Server : le guide étape par étape.

  • Coûts du serveur TURN : voici un guide sur les coûts potentiels et les considérations lors de l'exécution de votre propre serveur TURN : Coûts du serveur TURN : un guide complet


Stun Protocol, Port and Traffic

Serveurs TURN mesurés

  1. API: TURN-Serververwaltung mit leistungsstarker API. Sie können beispielsweise Anmeldeinformationen über die API hinzufügen/entfernen, Pro Benutzer/Anmeldeinformationen und Benutzermetriken über die API abrufen, Anmeldeinformationen über die API aktivieren/deaktivieren und Nutzungsdaten nach Datum über die API abrufen.

  2. Globales Geo-Location-Targeting: Leitet den Datenverkehr automatisch an die nächstgelegenen Server weiter, für geringstmögliche Latenz und höchste Leistungsqualität. Weniger als 50 ms Latenz überall auf der Welt

  3. Server in allen Regionen der Welt: Toronto, Miami, San Francisco, Amsterdam, London, Frankfurt, Bangalore, Singapur, Sydney, Seoul, Dallas, New York

  4. Geringe Latenz: weniger als 50 ms Latenz, überall auf der Welt.

  5. Kostengünstig: Pay-as-you-go-Preisgestaltung mit verfügbaren Bandbreiten- und Mengenrabatten.

  6. Einfache Verwaltung: Erhalten Sie Nutzungsprotokolle, E-Mails, wenn Konten Schwellenwerte erreichen, Abrechnungsunterlagen sowie E-Mail- und Telefonsupport.

  7. Standardkonform: Entspricht den RFCs 5389, 5769, 5780, 5766, 6062, 6156, 5245, 5768, 6336, 6544, 5928 über UDP, TCP, TLS und DTLS.

  8. Multi-Tenant-Funktion: Erstellen Sie mehrere Anmeldeinformationen und trennen Sie die Nutzung nach Kunden oder verschiedenen Apps. Erhalten Sie Nutzungsprotokolle, Abrechnungsaufzeichnungen und Schwellenwertwarnungen.

  9. Unternehmenszuverlässigkeit: 99,999 % Betriebszeit mit SLA.

  10. Enterprise Scale: Ohne Begrenzung des gleichzeitigen Datenverkehrs oder des Gesamtdatenverkehrs. Gemessene TURN-Server bieten Unternehmensskalierbarkeit

  11. 5 GB/Monat kostenlos: Mit dem kostenlosen Plan erhalten Sie jeden Monat 5 GB kostenlose TURN-Servernutzung

  12. Läuft auf Port 80 und 443

  13. Unterstützt TURNS SSL, um Verbindungen durch Deep-Packet-Inspection-Firewalls zu ermöglichen.

  14. Unterstützt sowohl TCP als auch UDP

  15. Kostenloser, unbegrenzter STUN

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn