Vous avez monté le tunnel, le minuteur de rekey décompte, et les deux directions affichent toujours zéro paquet. Cette paire de chiffres ne dit pas que le pair a rejeté votre tunnel : une CHILD SA installée avec des compteurs inactifs est l’état normal d’une association que rien n’a encore atteinte. Le travail consiste à prouver qu’un paquet aurait dû correspondre, puis à trouver le point où il a quitté le chemin que décrivent les sélecteurs. Faites-le une fois, dans l’ordre, et gardez la requête identique entre les exécutions.

Ce que prouve réellement un compteur à zéro

Une CHILD SA est une paire de sélecteurs plus les clés et les SPI qui chiffrent le trafic tombant dans ces plages. L’installer signifie seulement que les deux pairs se sont accordés sur ces plages et sur les clés dérivées ; le noyau la conservera pendant des heures sans qu’un seul paquet n’arrive. La question n’est donc jamais de savoir si le tunnel existe, mais si un paquet de votre test est tombé dans les plages négociées par les deux pairs. Si aucun ne l’a fait, les compteurs restent à zéro et l’association expire sans usage au terme de sa durée de vie.

Cette distinction change ce que vous inspectez d’abord. Une proposition rejetée, un échec d’authentification ou une IKE SA mourante apparaissent dans le journal ou dans la liste des SA, pas comme un zéro silencieux. Un tunnel qui négocie proprement puis reste inactif pointe plutôt vers la correspondance, le routage ou l’origine du trafic de test.

Envoyez un flux que vous pouvez décrire avant de l’envoyer

Choisissez une destination dans le sous-réseau protégé et ouvrez une nouvelle connexion vers elle ; une page chargée il y a une heure peut être servie depuis le cache, et une réponse en cache ne touche jamais le tunnel. Notez ensuite quatre valeurs tant que la requête reste hypothétique : l’adresse source que l’application va lier, la destination, la famille d’adresses et le nom ou la paire de sélecteurs de l’enfant que vous surveillez. Cette fiche est ce qui transforme un compteur plat en affirmation vérifiable.

L’adresse source est la valeur que les gens sautent, et c’est elle qui casse le test le plus souvent. Un portable avec une adresse filaire, une adresse Wi-Fi et une adresse de tunnel peut lier n’importe laquelle selon la recherche de route, et une seule peut se trouver dans la plage négociée. Utilisez un outil qui permet d’épingler la source, comme ping -I 10.1.0.5 10.2.0.9 ou curl --interface 10.1.0.5, pour que le paquet ne puisse pas choisir silencieusement une autre adresse. Quand l’exécution épinglée déplace les compteurs et que l’exécution non épinglée ne le fait pas, vous avez trouvé un problème de routage et non un problème IPsec.

Quels chiffres lire, et où ils habitent

Sous Linux, ip -s xfrm state imprime chaque association avec une ligne lifetime current: dont le total d’octets et de paquets n’appartient qu’à cette SA, suivie d’une ligne stats: pour les compteurs de rejeu et d’erreurs. Chez un pair strongSwan, swanctl --list-sas affiche une ligne in et une ligne out par enfant installé, chacune se terminant par un nombre d’octets et un nombre de paquets ; les anciens outils stroke nomment la même paire bytes_i et bytes_o. Lisez les deux directions séparément, car celle qui est restée plate est le constat. Les additionner masque exactement l’asymétrie que vous cherchez.

Les deux vues sont par association, donc un rekey installe une nouvelle paire de SPI et votre référence revient à zéro sans que rien ne soit cassé. Notez le SPI que vous surveillez avant que le minuteur de rekey ne se déclenche, sinon vous comparerez une nouvelle SA à un ancien chiffre. Si la sortie monte pendant que l’entrée reste plate, le sélecteur a correspondu et la réponse n’est jamais revenue, ce qui déplace l’enquête vers le transfert du pair et sa propre politique. La documentation de configuration IKEv2 de strongSwan couvre le cycle de vie de la SA enfant et le calendrier de rekey derrière ces chiffres.

Le point d’observation est une variable distincte de l’origine du paquet. Un délestage matériel peut incrémenter les compteurs de l’association alors qu’une capture logicielle sur l’interface ne montre rien, car les paquets délestés sautent le point d’ancrage où se place la capture, et l’entrée peut diverger de la même manière. Quand les deux ne concordent pas, servez-vous des compteurs pour répondre si quelque chose a correspondu et de la capture pour répondre à quoi ressemblait le paquet.

Route, sélecteurs et où le paquet est né

Comparez trois choses côte à côte : la route que le noyau choisit pour votre destination, la politique qui dirige le trafic vers le tunnel et la paire de sélecteurs négociée par l’enfant. ip route get 10.2.0.9 from 10.1.0.5 nomme l’interface et la source que le noyau utiliserait, et ce n’est souvent pas la paire que vous supposiez. ip xfrm policy montre les modèles et les sélecteurs installés localement, tandis que swanctl --list-sas montre ce que le pair a accepté. Une recherche qui envoie le paquet par l’interface physique n’atteint jamais la politique, donc les compteurs ne peuvent pas bouger.

Les discordances prennent plusieurs formes qui, vues d’un compteur, semblent identiques. Une destination IPv6 hors d’un sélecteur IPv4, une adresse source du mauvais sous-réseau et une politique plus étroite que l’enfant produisent le même zéro. Corrigez d’abord la cause la plus étroite, car élargir un sélecteur juste pour déplacer un chiffre change ce que le tunnel protège.

Vient ensuite l’origine du paquet, le piège qu’une passerelle tend à son propre opérateur. Le trafic que la passerelle génère elle-même est comparé à la politique de sortie, tandis qu’un paquet qu’elle transfère pour un client est comparé à la politique de transfert, si bien qu’un ping depuis la machine peut réussir sur un chemin qu’aucun client n’emprunte jamais.

Un changement réversible et un rapport qui résiste à la relecture

Changez un seul élément, répétez la requête identique et lisez les mêmes compteurs. Effacer toutes les règles du pare-feu ou remplacer tous les sélecteurs d’un coup déplacera un chiffre et détruira la preuve qui vous a dit pourquoi. Si la seconde exécution affiche encore zéro, vous avez éliminé une hypothèse au lieu de perdre l’après-midi.

Écrivez le constat sous une forme que quelqu’un d’autre peut reproduire : nom de l’enfant, plages acceptées, la source que vous avez épinglée, la destination testée, la direction restée à zéro et le SPI que vous lisiez. Cette phrase sépare une association que personne n’a utilisée d’une application distante qui a reçu le trafic et l’a refusé. Annulez le changement quand il n’a pas déplacé les compteurs et conservez la fiche ; la personne suivante commence là où vous vous êtes arrêté. Rien dans le tunnel n’a eu besoin d’être reconstruit pour cela, et c’est tout l’intérêt de vérifier la correspondance avant de toucher à la configuration.

Articles similaires