Utiliser deux VPN n’est pas une seule demande. Cela peut vouloir dire joindre deux organisations l’une après l’autre, séparer les applications professionnelles des personnelles, ou faire tourner un tunnel à l’intérieur d’un autre. Android traite ces trois cas de manières totalement différentes, et le nombre d’applications VPN installées sur le téléphone n’est pas l’architecture. La question qui les sépare est simple : deux chemins doivent-ils exister au même instant pour la même application ?

Trois agencements, une question

Si la réponse est non, parce que les deux réseaux sont utilisés à des moments différents, vous voulez une bascule délibérée. Si la réponse est non parce que les applications elles-mêmes sont séparées, vous voulez une séparation de profils, où chaque application siège dans le contexte qui possède son tunnel. Si la réponse est oui et qu’un chemin doit physiquement porter l’autre, vous voulez une chaîne, et c’est la seule des trois où l’ordre fait partie de la conception.

Tout le reste découle de ce choix. La bascule a une fenêtre de transition, la séparation a une frontière de politique, et une chaîne a un coût de surcharge et de dépendance. Choisir la mauvaise n’échoue pas proprement ; elle produit un téléphone qui paraît connecté et une application qui n’atteint rien.

Basculer à l’intérieur d’un seul contexte utilisateur

Android autorise un seul service VPN actif par utilisateur. Lancer une seconde application VPN dans le même contexte remplace la première ou est refusé d’emblée ; elle ne compose jamais les deux ensembles de routes et n’empile certainement pas leur chiffrement. À l’intérieur d’un utilisateur, deux tunnels sont une séquence, pas une somme.

C’est praticable quand l’accès est réellement séquentiel. Nommez les profils pour que l’actif soit évident, terminez tout ce qui est sensible avant de basculer, et attendez-vous à une courte fenêtre où aucun des deux chemins n’est pleinement établi. Fermer un onglet de navigateur n’est pas la même chose que terminer une session : l’onglet peut conserver l’état de son compte et simplement envoyer la requête suivante sur le réseau nouvellement choisi, et c’est exactement la fuite que les gens remarquent ensuite.

Ce que la bascule ne peut pas vous donner, c’est une machine qui soit sur les deux réseaux à la fois. Si une application a besoin d’une adresse privée de chaque côté, aucune discipline du client ne la produira.

Séparer par profil

Un profil professionnel géré est un utilisateur distinct avec ses propres applications, son magasin de clés et sa politique réseau. Un client de messagerie professionnel peut utiliser le tunnel de l’organisation pendant qu’un navigateur personnel utilise un tunnel personnel, et les deux peuvent être connectés en même temps parce qu’ils ne sont pas dans le même contexte à se disputer la place.

La séparation est aussi la limite. Le navigateur personnel n’emprunte pas le tunnel professionnel, ne voit pas les suffixes DNS professionnels et n’atteint pas le réseau professionnel simplement parce que les deux services s’affichent comme connectés. Quand quelqu’un signale qu’un lien ne s’ouvre pas, vérifiez quelle copie de l’application l’a traité et quel profil possède ce compte avant de toucher à l’un ou l’autre VPN.

Traitez la frontière comme fixe. Créer un second profil ou retirer un profil professionnel pour contourner une décision de routage d’un employeur détruit précisément la séparation qui faisait fonctionner l’agencement, et sur un appareil géré c’est généralement une violation de politique plutôt qu’un réglage de configuration.

Une chaîne, où l’ordre est la conception

Une chaîne est l’agencement que les gens veulent généralement dire quand ils disent les deux à la fois : le tunnel du téléphone circule à l’intérieur du tunnel du routeur. Cela peut fonctionner, et les contraintes sont précises. Le fournisseur extérieur doit autoriser un chemin fonctionnel vers le point de terminaison VPN du téléphone, ce qui, pour les protocoles fondés sur UDP, signifie que le service extérieur ne doit pas bloquer ni limiter ce trafic.

Comprenez qui voit quoi. Le fournisseur extérieur voit une connexion vers le point de terminaison intérieur. Le fournisseur intérieur reçoit le trafic du téléphone depuis la sortie extérieure et le transmet plus loin. La destination finale voit normalement la sortie du service intérieur, et aucun fournisseur le long de la chaîne n’est aveugle ; les comptes des applications identifient toujours l’utilisateur quel que soit le chemin.

Attendez-vous à des coûts pratiques. Chaque couche ajoute de l’encapsulation, donc le MTU effectif baisse et une valeur qui convenait à un tunnel fragmente ou se bloque désormais jusqu’à ce que le MTU du tunnel intérieur soit réglé de façon prudente. Deux couches signifient aussi deux dépendances de panne et deux jeux de messages de maintien, et un tunnel intérieur fondé sur TCP sur une liaison extérieure avec pertes peut se bloquer d’une manière qui ressemble à un serveur mort.

Plus important encore, une chaîne ne fusionne pas deux réseaux privés. Les routes, les préfixes qui se chevauchent, la résolution DNS et les règles d’accès restent des décisions distinctes, et un routeur qui porte un VPN pendant qu’un téléphone en porte un autre ne donne pas au téléphone les deux espaces d’adresses.

Vérifiez la conception avant de la déboguer

Écrivez l’agencement en une phrase et testez-le face à l’application qui a échoué. Un accès séquentiel devrait montrer un tunnel à la fois ; la séparation de profils devrait montrer chaque application dans son propre utilisateur ; une chaîne devrait montrer le tunnel intérieur s’établissant sur une interface extérieure plutôt que sur la physique.

adb shell ip -br addr
adb shell ip route get 10.20.0.8
adb shell dumpsys connectivity | grep -i vpn

Si la recherche de route nomme l’interface physique alors qu’une application attend le tunnel, la conception et le contexte de l’application ne sont pas d’accord, et aucune application VPN supplémentaire ne les réconciliera. La documentation sur les profils gérés couvre les règles de séparation si vous avez besoin du détail de politique plutôt que de celui du routage.

Articles similaires