Aller au contenu

TUN : Tunnel (interface réseau virtuelle TUN/TAP)

Réseau

TUN : interface réseau virtuelle de type tunnel, qui remet les paquets IP à un programme au lieu de les envoyer sur un câble ; sa jumelle TAP fait de même avec des trames Ethernet. « Une carte réseau sans carte », par analogie avec la boîte aux lettres que le facteur ne vide jamais, parce qu'un coursier privé passe la relever pour en faire ce qu'il veut.

Principe : Sous Linux, un programme ouvre le périphérique /dev/net/tun et crée une interface, par exemple tun0 ou tap0. Ce que le noyau route vers cette interface est lu par le programme ; ce que le programme y écrit apparaît au noyau comme reçu du réseau. Les systèmes BSD et macOS disposent de mécanismes équivalents.

TUN ou TAP : TUN travaille en couche 3 et ne voit que des paquets IP : c'est le choix naturel d'un VPN (Virtual Private Network) routé. TAP travaille en couche 2 et transporte des trames Ethernet complètes, diffusion comprise : il sert à étendre un réseau local ou à raccorder une machine virtuelle à un pont.

Qui s'en sert : OpenVPN propose les deux modes, QEMU branche ses machines virtuelles sur des interfaces TAP, et l'implémentation de WireGuard en espace utilisateur passe par une interface TUN ; le module WireGuard du noyau Linux crée en revanche sa propre interface, sans TUN.

Coût : Chaque paquet franchit deux fois la frontière entre noyau et espace utilisateur, ce qui limite le débit et charge le processeur. C'est le prix de la souplesse, et la raison pour laquelle les tunnels les plus rapides finissent par déménager dans le noyau.

Ce qui arrive si on s'en passe

Sans interface TUN ou TAP, un logiciel de VPN ou de virtualisation devrait s'insérer dans le noyau lui-même pour faire passer ses paquets, avec les risques d'un module tiers exécuté au plus haut niveau de privilège. L'interface virtuelle a ses propres pièges : elle reçoit le trafic que les routes lui confient, et un VPN qui tombe sans que le pare-feu interdise la sortie par l'interface physique laisse le trafic repartir en clair par le chemin ordinaire. Une interface TAP pontée sur le réseau local place en outre la machine distante dans le même domaine de diffusion que les postes, avec les annonces ARP (Address Resolution Protocol) et DHCP (Dynamic Host Configuration Protocol) et les abus qui vont avec.

Explication de la marmotte

Un ordinateur envoie normalement ses données par sa prise réseau ou son Wi-Fi. Une interface TUN est une fausse prise réseau, créée par un logiciel : l'ordinateur croit envoyer ses données sur un réseau, mais c'est un programme qui les récupère. Les logiciels de VPN s'en servent pour emballer et chiffrer ces données avant de les envoyer pour de vrai. Sa variante TAP fait la même chose avec des messages plus complets, ce qui permet par exemple de brancher une machine virtuelle comme si elle était un vrai ordinateur.

Où ce terme est utilisé

← Tout le glossaire