Menu Fermer

Qu’est-ce que UPnP (Universal Plug and Play) : comment ça marche

Universal Plug and Play (UPnP) est un protocole réseau présents sur votre routeur internet ou box internet très utile pour l’utilisation de différents services internet et périphériques réseau au quotidien.
Lorsque l’on s’intéresse au fonctionnement de son réseau LAN et de sa connexion internet ou pour faire fonctionner des jeux ou autres services, on peut entendre du protocole UPnP.

Dans ce tutoriel, je vous explique ce qu’est UPnP, à quoi il sert et comment ça marche.

Qu'est-ce que UPnP (Universal Plug and Play) : comment ça marche

Qu’est-ce que UPnP ?

Pour commencer, décomposons le nom UPnP avec le terme Plug & Play.

Si vous avez déjà branché un clavier USB, souris USB ou autre périphérique sur un ordinateur qui s’est installé automatiquement dans le système d’exploitation, vous avez vécu «l’expérience de plug and play».

UPnP est un protocole qui vise à autoriser les équipements réseaux à trouver d’autres appareils sur votre réseau et, si nécessaire, modifiez la configuration de votre routeur internet pour permettre l’accès des appareils à l’extérieur de votre réseau.
A partir du protocole de périphérique Internet Gateway, un client UPNP peut obtenir l’adresse IP externe de votre réseau et ajouter de nouveaux mappages de transfert de port réseau dans le cadre de son processus de configuration.

UPnP est donc utile dans de cas :

  • L’ajout et l’installation d’un nouvel équipement réseau
  • Faire fonctionner un service internet qui joue le rôle de serveur dans un réseau LAN (derrière du NAT). Cela se nomme Internet Gateway Device Protocol (IGD Protocol)

Par exemple, vous ramenez à la maison un nouvel appareil, le connectez au réseau et soudain tous les autres appareils de ce réseau sont en mesure de communiquer automatiquement avec lui.
UPnP effectue les opérations suivantes automatiquement :

  • L’appareil rejoint le réseau
  • Le périphérique saisit une adresse IP
  • L’appareil attrape un nom et apparaît sous ce nom sur le réseau
  • L’appareil atteint d’autres appareils sur le réseau et communique

Il est important de noter qu’une adresse IP n’est pas une prérequis pour l’UPNP, car de nombreux appareils liés à l’Internet des objets (IoT) peuvent communiquer sur Bluetooth de l’identification par radiofréquence (RFID).

Quelles sont les utilisations d’UPnP ?

Les utilisations essentielles sont :

  • Jeu – Connexion Xbox et autres consoles de jeu comme le Nintendo Switch pour diffuser des jeux en ligne. Par exemple Teredo utilisé pour les jeux en réseau XBox utilise UPnP lorsque l’appareil est derrière un NAT
  • P2P – un client P2P peut agir en tant que serveur et nécessite UPnP pour effectuer un transfert de ports
  • Surveillance des maisons à distance. Vous pouvez utiliser UPnP pour vous connecter à vos caméras à domicile pendant votre absence;
  • Des assistants à domicile numériques comme Echo Dots;
  • Configuration automatique de réseau sans fil
  • Les appareils Internet des objets pour la domotique sans fil comme l’éclairage intelligent, les thermostats contrôlés sur Internet et les verrous intelligents
  • Un serveur multimédia et Streaming de vidéos via des appareils TV.

Un serveur de médias UPnP AV est le serveur UPNP (périphérique “maître”) qui fournit des informations de bibliothèque de médias et diffuse des données multimédias (comme audio / vidéo / image / fichiers) aux clients UPNP sur le réseau. Il s’agit d’un système informatique ou d’un appareil numérique similaire qui stocke les médias numériques, tels que des photographies, des films ou de la musique et les partage avec d’autres appareils.

Enfin UPnP facilite certainement l’expérience de jeu. Au lieu de devoir identifier manuellement votre numéro de port pour chaque appareil ou jeu en ligne, UPnP le fait pour vous.

Internet Gateway Device Protocol (IGD Protocol) et UPnP

Le périphérique UPNP Internet Gateway (IGD) aborde les problèmes causés par le pare-feu et NAT en fournissant un soutien à de NAT Traversal. L’IGD peut être détecté et contrôlé en utilisant Protocoles UPNP depuis un client du LAN.
Le client d’application peut déterminer si un pare-feu et / ou un appareil NAT sont présents, obtenir l’adresse IP traduite et configurer les mappages de port dans l’IGD.

Ainsi, Internet Gateway Device (IGD) est un protocole de contrôle de périphérique standardisé pour le transfert de ports dans la configuration de traduction d’adresses réseau (NAT). Il étend les fonctions UPnP.

IGD peut réaliser les opérations suivantes :

  • Récupérer l’adresse IP publique (Adresse WAN)
  • Demandez une nouvelle adresse IP publique
  • Énumérer les mappages de port existants
  • Ajouter et supprimer les mappages de port
  • Attribuer des temps de location aux mappages

UPnP : Comment ça marche ?

UPnP fonctionne essentiellement avec le protocole Simple Service Discovery Protocol – SSDP par UDP.

L’équipement réseau doit donc posséder un client UPnP qui implémente le protocole.
Dans Windows, c’est le service découverte SSDP qui fait office de client UPnP.

Lle service découverte SSDP dans Windows

Ainsi, il utilise un protocole de découverte connu sous le nom de protocole de découverte de services simples (Simple Service Discovery Protocol – SSDP).
Ce protocole de service utilise le protocole UDP qui répond sur le port 1900 et peut être énuméré en diffusant un message M-Search via l’adresse de multidiffusion 239.255.255.250.

Message M-Search par  le protocole UDP qui répond sur le port 1900 pour initialiser UPnP

Le routeur internet répond au message M-Search par la méthode Notify.
Il renvoie une URL avec un fichier XML. Le nom du fichier XML diffère d’un routeur internet à l’autre, il peut s’agir de rootDesc.xml ou encore gatedesc.xml ici dans le cas d’une LiveBox.

Réponse Notify par UPnP

Ce fichier XML donne des informations du périphérique, y compris l’URL et le numéro de port pour le fichier de description du périphérique.

Mais le fichier fournit surtout l’URL de communication wanipconnection.
Cette communication se fait en HTTP avec du contenu XML.
L’hôte du LAN effectue des requêtes POST de fichiers XML sur l’URL wanipconnection avec les actions suivantes :

  • AddPortMapping
  • GetExternalIPAddress
  • DeletePortMapping
  • GetStatusInfo
  • GetGenericPortMappingEntry
  • GetSpecificPortMappingEntry

Sous chacune de ces actions sera une liste d’arguments. Cette liste d’arguments spécifie les valeurs d’argument qui peuvent être envoyées via Simple Object Access Protocol (SOAP) à l’URL de contrôle, qui est utilisé pour configurer les paramètres ou récupérer l’état sur le dispositif de routeur.
SOAP est une spécification de messagerie qui utilise un format de langage de balisage extensible (XML) pour échanger des informations.

Par exemple ci-dessous, le périphérique réseau demande l’adresse IP publique à travers l’action GetExternalIPAddress :

GetExternalIPAddress  pour obtenir l'adresse IP WAN du routeur internet

Un autre exemple avec un nouveau mappage et transfert de ports :

Configuration d'un transfert de ports par UPnP
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:GetSpecificPortMappingEntryResponse xmlns:u="urn:schemas-upnp-org:service:WANPPPConnection:1">
<NewInternalPort>8621</NewInternalPort>
<NewInternalClient>192.168.1.11</NewInternalClient>
<NewEnabled>1</NewEnabled>
<NewPortMappingDescription>AceStream port 8621 to 8621 (e6c885)</NewPortMappingDescription>
<NewLeaseDuration>0</NewLeaseDuration>
</u:GetSpecificPortMappingEntryResponse>
</s:Body> </s:Envelope>

UPnP et les problèmes de sécurité

UPnP permettant la modification de la configuration du routeur internet par de simples messages, des malwares peuvent l’utiliser à des fins malveillantes.
Les aspects de sécurité sont décrites dans le tutoriel suivant :