Le fonctionnement d’un VPN sous macOS peut être observé directement à l’aide des outils système natifs. Contrairement à une abstraction théorique, le tunnel VPN modifie explicitement l’état du système : création d’interfaces virtuelles, modification de la table de routage et redirection du trafic. Ces modifications peuvent être mesurées, vérifiées et corrélées avec le comportement réseau réel.
Cette analyse empirique repose sur l’observation des composants suivants :
La première étape consiste à observer les interfaces réseau actives :
ifconfig
Sans tunnel actif, seules les interfaces physiques et système sont présentes :
en0
lo0
awdl0
Après activation d’un tunnel, une nouvelle interface apparaît :
utun0
Exemple :
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST>
inet 10.0.0.2 --> 10.0.0.1 netmask 0xffffffff
Cette interface correspond au tunnel.
Les détails de l’interface peuvent être examinés :
ifconfig utun0
Paramètres observables :
Cette interface agit comme un point de transit logique.
La table de routage détermine le chemin du trafic :
netstat -rn
Avant activation :
default 192.168.1.1 en0
Après activation :
default 10.0.0.1 utun0
Le tunnel devient la route par défaut.
Pour vérifier la route vers une destination spécifique :
route -n get 8.8.8.8
Exemple :
interface: utun0
Le trafic vers cette destination utilise le tunnel.
Le trafic peut être capturé avec :
sudo tcpdump -i utun0
Exemple :
IP 10.0.0.2 > 8.8.8.8: ICMP echo request
IP 8.8.8.8 > 10.0.0.2: ICMP echo reply
Ces paquets correspondent au trafic logique transitant par le tunnel.

Observation :
sudo tcpdump -i en0
Exemple :
IP 192.168.1.10 > 203.0.113.5: UDP, length 128
Ce trafic correspond au transport du tunnel.
Le contenu original n’est pas visible car encapsulé.
Le tunnel fonctionne comme suit :
Application
↓
utun0
↓
Encapsulation
↓
en0
↓
Internet
utun transporte les paquets logiques.
en0 transporte les paquets encapsulés.
Observer DNS sur tunnel :
sudo tcpdump -i utun0 port 53
Observer DNS sur interface physique :
sudo tcpdump -i en0 port 53
Cela permet de déterminer le chemin réel des requêtes DNS.
Identifier les processus réseau :
lsof -i
Ou :
ps aux
Le tunnel correspond à un processus actif.
Afficher configuration DNS :
scutil --dns
Identifier :
Ces paramètres influencent la résolution.
Afficher table IPv6 :
netstat -rn -f inet6
Identifier interface utilisée :
Un tunnel actif implique :
Ces éléments peuvent être observés indépendamment.
Le tunnel VPN sous macOS constitue une modification observable du système réseau :
Ces mécanismes peuvent être mesurés directement via les outils système.
Le tunnel VPN n’est pas une abstraction invisible, mais une composante réseau intégrée à la stack système.