Un test di fuga solo IPv4 torna pulito, un test IPv6 mostra il vostro indirizzo di casa e il tunnel è nominalmente connesso. Questa combinazione è comune sulle reti a doppio stack, perché la VPN ha cambiato il percorso di una famiglia e ha lasciato l'altra in pace. Il tunnel esterno e il traffico al suo interno sono due decisioni di indirizzamento separate. Testare una delle due non dice nulla sull'altra.

Controllate sia ciò che il client riporta sia quale famiglia la richiesta ha effettivamente usato, perché un nome host può restituire entrambi i tipi di risposta.

Due famiglie, due percorsi diversi

Il sistema operativo mantiene una tabella di routing per ogni famiglia di indirizzi. Installare una rotta predefinita per IPv4 non ne installa una per IPv6, e un endpoint del tunnel raggiungibile via IPv4 non dice nulla sull'ingresso del traffico IPv6 al suo interno. Quando non esiste una rotta predefinita IPv6 attraverso il tunnel, l'host usa il percorso IPv6 che ha, spesso il collegamento fisico. Dal punto di vista dell'applicazione, la connessione è semplicemente diretta.

Un nome host che restituisce sia record A sia AAAA rende più difficile vederlo, perché le applicazioni possono provare le famiglie in ordini diversi. Una richiesta che riesce non dimostra quale percorso abbia preso. Usate un test che nomini la famiglia che ha esercitato.

Raggiungere il server non è trasportare il traffico

I fornitori usano l'espressione supporto IPv6 per diverse capacità. L'endpoint può accettare una connessione su IPv6 mentre il tunnel trasporta ancora solo IPv4. Il tunnel può trasportare pacchetti interni IPv6 mentre il trasporto esterno resta IPv4. Oppure il client può bloccare del tutto IPv6 così che nulla esca fuori dal tunnel. Sono tre comportamenti distinti, e una pagina che dice solo IPv6 supportato non li distingue.

Chiedete quale serve al progetto. Una rete che deve raggiungere servizi solo IPv6 ha bisogno del trasporto. Una rete che deve impedire il traffico IPv6 diretto ha bisogno del blocco o del trasporto completo, non di un'etichetta su una pagina di marketing.

Decidete tra trasportare e bloccare

Trasportare significa che il tunnel ha un indirizzo IPv6, una rotta predefinita al suo interno e una politica che consente il traffico a entrambe le estremità. Bloccare significa che il client impedisce deliberatamente a IPv6 di uscire fuori dal tunnel, il che è sicuro e inutile per raggiungere destinazioni IPv6. Entrambe sono legittime; nessuna è un valore predefinito che potete dare per scontato. Scegliete prima il requisito, poi verificate che il client lo implementi davvero.

Una rete ospiti solo IPv4 non può esercitare un percorso IPv6, quindi un test eseguito lì non dice nulla della rete di casa dove esistono entrambe le famiglie. Testate dove la famiglia pertinente è realmente offerta.

Il kill switch ha bisogno della stessa copertura

Un kill switch che copre solo IPv4 lascia l'altra famiglia libera di uscire direttamente, ed è esattamente la fuga che doveva impedire. Esaminate le sue regole per entrambe le famiglie e per i momenti di transizione, mentre il tunnel sale o scende. Disattivare IPv6 a livello di sistema non è un sostituto: può rompere servizi non correlati e nasconde un problema di politica del client dietro un cambiamento a livello di macchina.

Tenete il DNS separato da tutto questo. Il DNS riguarda chi risponde alla query e come la query viaggia; la connessione applicativa che segue ha il proprio percorso. Una può essere corretta mentre l'altra non lo è, e diagnosticarle insieme produce conclusioni confuse.

Annotate quale famiglia ha esercitato ogni test e quale capacità dichiara il client. Quella coppia di fatti risponde alla domanda a cui un'etichetta di supporto non risponderà mai.

Articoli correlati