Aller au contenu principal

Bases du Réseau et de la VoIP

Protocoles VoIP

Les protocoles SIP et RTP sont responsables de la communication VoIP. Ils fonctionnent sur les couches 5(-7) du modèle OSI.

SIP (Session Initiation Protocol)

Le protocole Session Initiation Protocol est utilisé pour transmettre des messages de signalisation permettant d'établir des relations de communication (« sessions ») dans le domaine de la VoIP. Les formes multimédias dans le cadre d'une session (VoIP, « vidéo sur IP » ou autres applications multimédias) ainsi que les paramètres nécessaires à l'encodage et au décodage des données multimédias (ex. codec utilisé) sont également transmis via les messages SIP, tout comme les informations relatives aux participants et à la signalisation. SIP fournit - avec l’aide du protocole complémentaire SDP - toute l'infrastructure de communication nécessaire à l'établissement, à la modification et à la fermeture d'une session, offrant ainsi - par rapport à la suite de protocoles H.323 (ISDN) - l'avantage décisif d'une manipulation plus simple, d'une extensibilité accrue et d'une meilleure clarté.

Transport SIP

SIP peut être transporté soit par UDP, soit par TCP. Étant donné que SIP, en tant que protocole de signalisation et de négociation, met en œuvre ses propres mécanismes de handshake, de répétition et de timeout pour garantir la communication, il n'est pas nécessaire d'utiliser un protocole de transport orienté connexion. Pour cette raison, UDP, qui est sans connexion, est généralement privilégié comme protocole de transport pour SIP. Contrairement aux protocoles orientés connexion comme TCP et SCTP, UDP ne nécessite ni établissement préalable de connexion avant l'échange des messages SIP, ni contrôle de flux pendant la transmission. Cela permet des gains en termes de temps et de volume de trafic en utilisant UDP comme protocole de transport pour SIP. Étant donné que SIP est largement basé sur la norme HTTP pour sa structure de message et que les messages SIP sont transmis en utilisant le jeu de caractères UTF-8 compatible ASCII (Universal Character Set Transformation Format), aucun décodeur particulier n'est nécessaire pour leur lecture.

RTP (Real-time Transport Protocol)

RTP est un protocole utilisé pour la transmission en temps réel d'audio et de vidéo sur les réseaux IP.

Autres protocoles

Pour que les appels téléphoniques puissent être effectués via Internet, la VoIP dépend d'autres protocoles réseau.

DNS

Le système de noms de domaine (DNS) est un système de noms hiérarchique et distribué utilisé pour traduire des noms de domaine (ex. example.com) en adresses IP (ex. 192.0.2.1) et vice versa. Il joue un rôle clé en permettant aux utilisateurs d'accéder aux ressources Internet en utilisant des noms de domaine lisibles par l'humain au lieu d'adresses IP numériques.

Dans le processus de résolution DNS, lorsqu'un utilisateur saisit un nom de domaine dans un navigateur Web ou une autre application réseau, une requête DNS est envoyée à un résolveur DNS, qui est généralement fourni par le fournisseur d'accès Internet (FAI) de l'utilisateur ou un service public de résolution DNS. Le résolveur lance alors le processus de résolution en interrogeant les serveurs DNS faisant autorité afin d'obtenir l'adresse IP correspondante au nom de domaine spécifié.

L'architecture DNS comprend plusieurs types de serveurs DNS, notamment :

  • Serveurs DNS racine : Ces serveurs se trouvent au sommet de la hiérarchie DNS et renvoient vers les serveurs DNS des domaines de premier niveau (TLD).
  • Serveurs DNS de domaine de premier niveau (TLD) : Ces serveurs sont responsables de la gestion des noms de domaine dans certains TLD spécifiques, tels que .com, .org, .net et les TLD nationaux comme .ch, .at, .de, etc.
  • Serveurs DNS faisant autorité : Ces serveurs stockent les enregistrements DNS (comme les enregistrements A, AAAA, MX, etc.) pour des noms de domaine spécifiques et sont responsables de fournir des réponses faisant autorité aux requêtes DNS.

DNS fonctionne via UDP ou TCP sur le port 53. UDP est généralement utilisé pour les requêtes DNS, tandis que TCP est utilisé pour les grandes réponses DNS ou les transferts de zones.

Dans l'ensemble, DNS est un composant fondamental de l'infrastructure Internet, fournissant des services essentiels de résolution de noms qui permettent une communication fluide et un accès aux ressources en ligne.

NAT/PAT

NAT (Network Address Translation)

Network Address Translation (NAT) est une technique utilisée en ingénierie réseau pour modifier les informations d'adresse réseau dans les en-têtes des paquets IP lorsqu'ils transitent par un routeur ou un pare-feu. Son objectif principal est d'économiser les adresses IPv4 publiques et non d'assurer la sécurité du réseau.

Dans un scénario NAT typique, un réseau privé connecte des appareils utilisant des adresses IP privées (comme celles définies dans la RFC 1918 : 10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16) à Internet via un routeur ou une passerelle. Lorsqu'un appareil du réseau privé envoie un paquet vers Internet, le routeur remplace l'adresse IP source du paquet par sa propre adresse IP publique avant de l'envoyer à Internet. Cela permet à plusieurs appareils du réseau privé de partager une seule adresse IP publique.

NAT effectue également la traduction inverse lorsque des paquets provenant d'Internet sont destinés à des appareils du réseau privé. Il traduit l'adresse IP de destination du paquet entrant de l'adresse IP publique à l'adresse IP privée correspondante en fonction de la table de correspondance NAT.

NAT permet de limiter l'épuisement des adresses IPv4 et offre un certain niveau de sécurité en masquant la structure interne du réseau à l'extérieur. Cependant, il peut introduire des complexités pour certaines applications réseau, telles que la communication peer-to-peer et les protocoles IP qui nécessitent une connectivité de bout en bout.

PAT (Port Address Translation)

Port Address Translation (PAT), également connue sous le nom de surcharge NAT, est une variante de la traduction d'adresses réseau (NAT) qui permet d'associer plusieurs adresses IP privées à une seule adresse IP publique. Cela est possible en utilisant différents numéros de port source pour distinguer les connexions.

Dans un scénario PAT, un réseau privé connecte des appareils utilisant des adresses IP privées à Internet via un routeur ou une passerelle. Lorsqu'un appareil du réseau privé envoie un paquet vers Internet, le routeur remplace l'adresse IP source du paquet par sa propre adresse IP publique et attribue un numéro de port source unique à partir d'un pool de ports disponibles. Cette combinaison d'adresse IP publique et de numéro de port unique est utilisée pour identifier la connexion.

PAT maintient une table de correspondance qui associe chaque adresse IP privée et numéro de port à l'adresse IP publique et au numéro de port correspondant. Lors de la réception de paquets provenant d'Internet à destination d'appareils du réseau privé, le routeur utilise cette table de correspondance pour traduire l'adresse IP et le port de destination en l'adresse IP et le port privés correspondants.

Les avantages de PAT incluent l'utilisation efficace des adresses IP publiques et une sécurité réseau améliorée grâce au masquage de la structure interne du réseau. Cependant, il peut entraîner des limitations, telles que l'épuisement des ports lors du traitement d'un grand nombre de connexions simultanées, ainsi que des problèmes potentiels avec certaines applications réseau nécessitant des configurations de port spécifiques.

Dans l'ensemble, PAT est une technique largement utilisée pour fournir un accès Internet aux réseaux privés tout en préservant les adresses IP publiques et en améliorant la sécurité du réseau.

NAT/PAT Keepalive

Les tables NAT (Network Address Translation) et PAT (Port Address Translation) sont des structures de données utilisées par les routeurs et les pare-feux pour suivre les traductions entre les adresses IP privées et publiques ainsi que les numéros de port. Ces tables sont des composants essentiels des mécanismes NAT et PAT, permettant l'acheminement des paquets entre les réseaux privés et Internet.

Dans une configuration NAT/PAT typique, l'appareil NAT/PAT effectue une traduction d'adresse et de port sur les paquets sortants lorsqu'un appareil d'un réseau privé communique avec une destination sur Internet, avant de les transmettre à la destination. Il enregistre ces correspondances dans sa table de traduction.

La table NAT/PAT contient généralement les informations suivantes pour chaque entrée de traduction :

  • Adresse IP privée : L'adresse IP source d'origine du paquet dans le réseau privé.
  • Numéro de port privé : Le numéro de port source d'origine utilisé par l'application ou le service sur l'appareil du réseau privé.
  • Adresse IP publique : L'adresse IP publique traduite, attribuée par l'appareil NAT/PAT pour la communication avec la destination sur Internet.
  • Numéro de port public : Le numéro de port public traduit, attribué par l'appareil NAT/PAT pour identifier de manière unique la connexion.

En outre, certaines implémentations NAT/PAT incluent des fonctionnalités pour maintenir les entrées de traduction actives. Les mécanismes Keepalive sont utilisés pour actualiser ces entrées et empêcher leur expiration prématurée en raison d'une inactivité ou d'un dépassement du délai d'inactivité.

Avec la fonctionnalité Keepalive, l'appareil NAT/PAT envoie régulièrement des messages Keepalive ou des sondes aux points de terminaison impliqués dans les connexions actives. Si une réponse est reçue d'un point de terminaison indiquant que la connexion est toujours active, l'entrée de traduction dans la table NAT/PAT est mise à jour et le délai d'inactivité est réinitialisé. Cela garantit que la traduction reste active et ne se termine pas prématurément.

Les avantages des tables NAT/PAT avec fonctionnalité Keepalive incluent :

  • Fiabilité améliorée : Les mécanismes Keepalive aident à maintenir les connexions actives et à empêcher l'expiration prématurée des entrées de traduction en raison d'une inactivité, assurant ainsi une connectivité continue pour les applications et services réseau.
  • Réduction des interruptions : En mettant à jour les entrées de traduction avant leur expiration, la fonctionnalité Keepalive minimise le risque d'interruptions ou de perturbations de la communication réseau.
  • Expérience utilisateur améliorée : Les utilisateurs bénéficient d'une connectivité réseau plus fluide et plus fiable avec une latence réduite et moins de connexions interrompues.

Cependant, il est important de noter que les mécanismes Keepalive peuvent introduire une surcharge supplémentaire et un trafic réseau, ce qui peut affecter les performances dans les environnements à haut débit. De plus, les messages Keepalive peuvent être filtrés ou bloqués par des pare-feux ou des dispositifs de sécurité réseau, ce qui peut entraîner des problèmes potentiels de connectivité et de maintenance de la table de traduction.

Dans l'ensemble, les tables NAT/PAT avec fonctionnalité Keepalive jouent un rôle essentiel dans le maintien d'une communication réseau stable et ininterrompue, en particulier dans les environnements avec des affectations d'adresses dynamiques, des connexions inactives et des appareils VoIP.

CGNAT (Carrier-Grade NAT)

CGNAT, également connu sous le nom de large-scale NAT ou NAT444, est une technique de traduction d'adresses réseau (NAT) utilisée par les fournisseurs d'accès Internet (FAI) pour gérer la pénurie d'adresses IPv4 publiques et prendre en charge le nombre croissant d'appareils connectés à Internet.

Dans une implémentation CGNAT, plusieurs clients au sein d'un réseau FAI reçoivent des adresses IP privées à partir d'un pool d'adresses communes (généralement dans la plage définie par la RFC 1918 : 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) ou dans la plage définie par la RFC 6598 (100.64.0.0/10). Ces adresses IP privées sont utilisées pour la communication au sein du réseau du FAI, mais ne peuvent pas être directement atteintes depuis Internet.

Lorsqu'un appareil au sein du réseau du FAI initie une communication avec une destination sur Internet, par exemple en accédant à un site Web ou en se connectant à un serveur, l'appareil CGNAT effectue une traduction d'adresse sur les paquets sortants. Il remplace l'adresse IP source privée du paquet par une adresse IP publique du pool du FAI et maintient une table de correspondance pour suivre la traduction.

Les inconvénients du CGNAT incluent :

  • Disponibilité limitée des ports, ce qui peut poser problème pour certaines applications.
  • Impact sur la communication peer-to-peer, en limitant les connexions entrantes.
  • Complexité accrue, rendant le dépannage plus difficile.

Dans l'ensemble, CGNAT joue un rôle clé dans l'extension de la durée de vie d'IPv4 et permet aux FAI de fournir un accès Internet à un nombre croissant d'abonnés.