Les commutateurs de passage du routeur sont des concessions de réacheminement pour un appareil situé derrière, pas des services VPN. Ils n’inscrivent pas le routeur comme client, ne conservent pas d’identifiants et ne font pas passer chaque appareil de la maison par une sortie distante. Ce qu’ils font, c’est façonner la manière dont un protocole traverse la traduction d’adresses et les filtres. Une fois cela clair, le commutateur devient facile à tester et facile à laisser désactivé.

Ce que le routeur fait réellement

Le routeur se tient entre un client et un pair IPsec et réachemine des paquets qu’il n’a jamais été conçu pour comprendre. Les fabricants implémentent la fonction d’au moins trois manières : un assistant de protocole qui suit ou réécrit l’état, une exception de filtre qui cesse de supprimer l’ESP, ou un mode de compatibilité destiné aux clients plus anciens. L’étiquette dans l’interface web dit rarement laquelle des trois vous avez. Seules les notes du firmware ou une capture de paquets le diront.

Un assistant peut aussi aggraver les choses. Une aide écrite pour un flux plus ancien interfère parfois avec un client qui gère déjà correctement la traduction. Quand un client moderne fonctionne avec l’option désactivée, la laisser désactivée est la meilleure configuration.

Le passage ne donne jamais au routeur les clés des pairs. Il voit toujours les adresses et les ports externes, et il applique toujours sa propre politique de réacheminement à ceux-ci.

NAT et NAT-T décident du chemin

IPsec n’a pas été conçu pour survivre à la traduction d’adresses, c’est pourquoi les normes ont ajouté une enveloppe. Le NAT traversal encapsule l’ESP dans UDP, ce qui permet à une table NAT ordinaire de transporter le flux, et la négociation s’accorde sur ce basculement pendant IKE (RFC 3948). IKE lui-même utilise UDP 500, tandis que le chemin encapsulé utilise généralement UDP 4500.

C’est pourquoi une règle de pare-feu qui n’autorise que le protocole 50 ne suffit pas sur un chemin traduit. Bloquer 4500 casse le cas pour lequel l’enveloppe existe, et bloquer 500 arrête la négociation avant qu’aucun tunnel ne se forme. Les deux sens comptent, car un routeur à état n’autorise généralement la réponse qu’après avoir vu la demande. Atteindre un port n’est pas la même chose que terminer l’authentification, ni que réacheminer du trafic protégé.

Les arrangements plus anciens diffèrent assez pour qu’un guide écrit pour eux puisse induire en erreur. Quand un client propose les deux modes, testez celui que votre pair documente plutôt que celui qui a le plus de résultats de recherche.

Trouvez l’étape qui échoue

Divisez le problème en négociation, authentification, protection enfant et réacheminement interne, puis rassemblez des preuves pour une étape à la fois. Un redémarrage qui modifie temporairement le résultat ne prouve qu’une chose : qu’un certain état était impliqué.

sudo tcpdump -ni any 'udp port 500 or udp port 4500'
ip xfrm state list
ip xfrm policy list

La capture montre si l’échange atteint le pair et si des réponses reviennent, ce qui sépare un problème de filtrage d’un problème d’identifiants. La liste d’états montre les associations de sécurité établies, donc une liste vide après une tentative pointe vers la négociation plutôt que vers le routage. La liste de politiques montre quels sélecteurs sont installés, et c’est là qu’une destination hors du sous-réseau est exclue. Lisez les deux sorties xfrm avant de toucher au routeur, car elles décrivent ce que l’hôte croit et non ce que le routeur autorise.

Si les paquets sortent et que rien ne revient, déplacez la capture du côté WAN du routeur. Comparer les deux captures localise la perte sans deviner.

Désactivez ce dont vous n’avez pas besoin

Un seul ordinateur portable qui fonctionne ne prouve pas que le routeur gère plusieurs clients à la fois. Chaque client crée son propre état de traduction et sa propre négociation, et certains assistants ne suivent qu’un seul flux. Testez le nombre de sessions simultanées dont vous avez réellement besoin, depuis les réseaux que vous utilisez réellement. Si le second client échoue alors que le premier prospère, c’est là le constat, et non un tunnel instable.

Ne laissez l’option activée que lorsqu’une capture montre qu’elle est nécessaire. Notez la version du firmware à côté du résultat, car ces comportements changent d’une version à l’autre. L’objectif est un tunnel client que vous avez vérifié, pas un commutateur activé avec espoir.

Articles similaires