Pourquoi une capture de VPN routé ne montre jamais l’étiquette VLAN de la branche
Un tunnel TUN routé transporte des paquets IP, pas des trames Ethernet étiquetées, aussi l’ID de VLAN n’atteint-il jamais le capteur. Choisissez le point d’observation dont votre politique a besoin.
Les captures prises sur l’interface du tunnel ne montreront jamais l’ID de VLAN de la branche, et c’est une propriété de la conception plutôt qu’une lacune de l’outil. Un tunnel TUN routé transporte des paquets IP, donc la trame Ethernet étiquetée qui les portait sur la liaison de la branche se termine au routeur qui les a routés. Si la question de votre politique porte sur des segments, la position du capteur doit être choisie pour cette question avant le début de la capture. Le champ VLAN que vous attendiez doit être remplacé par un contexte que vous pouvez défendre.
Regardez ce que transporte réellement l’interface du tunnel
TUN remet des paquets IP à l’hôte ; TAP remet des trames Ethernet. Une conception routée utilise le premier, ce qui signifie que le paquet qui arrive après le déchiffrement n’a aucune en-tête de couche liaison, et donc aucune étiquette 802.1Q à lire. Rien n’a été retiré en transit, car l’étiquette n’est jamais entrée dans le tunnel. Le paquet interne commence à son en-tête IP, si bien que chaque champ qu’une règle consciente du VLAN attend est simplement absent.
Confirmez le type d’interface avant de discuter de la capture, car un périphérique TAP dans le même déploiement se comportera différemment et vous conduira à la mauvaise conclusion.
ip -d link show tun0 tcpdump -i tun0 -nn -e -c 20
La première commande affiche le type de périphérique et ses indicateurs. La seconde affiche les en-têtes de couche liaison des vingt premiers paquets, et sur un périphérique TUN la sortie commence à IP sans bloc Ethernet, ce qui est toute l’explication sur un seul écran.
Choisir TAP ne restaure pas l’étiquette non plus. Un périphérique TAP transmet les trames à un pont, et ce qui arrive à l’étiquette dépend du filtrage VLAN du pont et de l’appartenance configurée du port. C’est une décision de conception distincte avec ses propres modes de défaillance.
Placez-vous à l’un des trois endroits et acceptez ce qu’il peut voir
Sur le segment Ethernet de la branche, l’étiquette est présente, mais le capteur ne voit que le trafic local sur ce segment. Sur le réseau VPN externe le trafic est protégé, si bien qu’un observateur apprend les extrémités et le volume et rien sur le paquet interne. Sur le chemin TUN après le déchiffrement, le paquet IP interne est disponible, avec son adressage et ses ports, et sans la trame de la branche. Une capture sur un trunk et une capture routée du même flux ressemblent donc à deux conversations différentes.
Ces trois positions répondent à trois questions différentes, et une seule capture ne peut pas être toutes à la fois.
tcpdump -i eth0 -nn -e 'vlan' -c 10 tcpdump -i tun0 -nn -c 10
Exécutez la paire et comparez. La première montre des trames étiquetées et leurs ID de VLAN là où la liaison de la branche est en trunk vers l’hôte ; la seconde montre la même conversation en IP simple après le routage. Si la première ne renvoie rien du tout, vérifiez si le port de l’hôte est un port d’accès, car l’étiquette a alors déjà été retirée par le commutateur et aucune capture sur l’hôte ne la montrera jamais.
Remplacez l’étiquette manquante par une correspondance que vous pouvez défendre
Si la politique distingue les segments par préfixe IP, consignez cette correspondance avec ses limites. Des plages d’adresses qui se chevauchent, la traduction de source et une passerelle partagée peuvent chacune rendre un seul préfixe insuffisant pour identifier d’où vient réellement un paquet.
Faites confiance à l’interface et au contexte de routage que vous contrôlez, pas à une étiquette fournie par le client. Un champ d’en-tête qu’un pair peut définir n’est pas une preuve d’appartenance, et une règle d’inspection qui le traite comme tel se contourne trivialement.
ip route get 10.20.30.40 ip -br addr show
La première commande indique l’interface et la source que le noyau utiliserait pour une destination, ce qui est la vue locale du rattachement au segment. La seconde énumère les adresses par interface afin que les préfixes de votre correspondance puissent être vérifiés par rapport à la réalité plutôt qu’au schéma.
Vérifiez le chemin de retour et la charge utile avant de faire confiance au résultat
Un point d’inspection qui ne voit qu’une direction manquera la moitié de la conversation, et le routage asymétrique est courant dès qu’un VPN est impliqué. Confirmez que les réponses traversent le même capteur avant de considérer une capture unilatérale comme complète.
Récupérer le paquet IP interne ne déchiffre pas non plus une session HTTPS à l’intérieur. Si la question de la politique porte sur le contenu plutôt que sur les flux, la position du capteur doit encore changer, et cette décision relève du même document de conception.
Étendre un trunk sans restriction jusqu’à un capteur juste pour faire apparaître un champ VLAN agrandit la frontière du réseau sans répondre à la question d’origine. Choisissez la position pour l’information dont la politique a besoin, notez ce qu’elle ne peut pas voir, et révisez le choix lorsque la question change.