Η κίνηση IPv6 εκτός VPN: βρες τη διαδρομή που διαρρέει
Το IPv4 μέσα από τη σήραγγα και το IPv6 απευθείας είναι κενό δρομολόγησης, όχι μυστήριο. Δοκίμασε αίτημα γνωστής οικογένειας, διάβασε τη διαδρομή που επιλέχθηκε και μετά κλείσε το κενό.
Δύο δοκιμαστικές σελίδες διαφωνούν: η μία αναφέρει τη διεύθυνση του παρόχου μέσα από τη σήραγγα, η δεύτερη αναφέρει το πρόθεμα του σπιτιού σου, και το προφανές συμπέρασμα είναι ότι το VPN διαρρέει. Αυτό το συμπέρασμα παραλείπει ένα βήμα, γιατί οι δύο αναφορές άσκησαν δύο διαφορετικές αποφάσεις δρομολόγησης και μόνο η μία από αυτές έπρεπε να μπει στη σήραγγα. Το κενό συνήθως είναι πραγματικό, και είναι πρόβλημα κάλυψης και όχι σπασμένη σήραγγα. Τρία ερωτήματα το ξεκαθαρίζουν: ποια ροή έφυγε στην πραγματικότητα, ποια διαδρομή επέλεξε ο πυρήνας γι’ αυτήν και ποια συμπεριφορά είχε κατά νου ο πελάτης.
Δούλεψε με αυτή τη σειρά. Αν τα απαντήσεις εκτός σειράς, προκύπτει μια μακρά συζήτηση για το αν ο πελάτης είναι ελαττωματικός, ενώ η σωστή απάντηση είναι ότι ποτέ δεν εγκαταστάθηκε διαδρομή IPv6.
Ποια ροή έφυγε στην πραγματικότητα και από ποια κάρτα δικτύου
Ξεκίνα με μια δοκιμή που ονομάζει την οικογένεια που χρησιμοποίησε, και μετά σημείωσε την εφαρμογή, το δίκτυο πρόσβασης, το προφίλ που ισχύει και αν η σύνδεση προσφέρει καθόλου IPv6. Αυτά τα τέσσερα γεγονότα κάνουν δύο εκτελέσεις συγκρίσιμες, και το τέταρτο είναι αυτό που ξεχνούν: ένα δίκτυο χωρίς πρόθεμα v6 δεν μπορεί να διαρρεύσει v6, και ένα δίκτυο που προσθέτει ένα αργότερα αλλάζει την απάντηση.
Στείλε ένα αίτημα ανά οικογένεια αντί να φορτώσεις μια σελίδα και να διαβάσεις το αποτέλεσμα. Μια σελίδα μπορεί να αναμειγνύει πόρους v6 και v4, μια διεργασία στο παρασκήνιο μπορεί να συμπεριφέρεται διαφορετικά από την καρτέλα μπροστά σου, και μια απάντηση από την κρυφή μνήμη μπορεί να επιβιώσει της αλλαγής δικτύου που προσπαθείς να δοκιμάσεις. Καθήλωσε τον προορισμό που δοκιμάζεις και σημείωσέ τον, ώστε μια επανάληψη να μετρά το ίδιο πράγμα.
Διαβάζοντας τη διαδρομή που επέλεξε ο πυρήνας
Ο πίνακας δρομολόγησης απαντά στην ερώτηση που δεν μπορεί να απαντήσει το πρόγραμμα περιήγησης. Ρώτησε το σύστημα πού θα πάει ένας συγκεκριμένος προορισμός, και συμπερίλαβε τόσο τους κανόνες πολιτικής όσο και την ορατή προεπιλογή, γιατί οποιοδήποτε από τα δύο μπορεί να την υπερισχύσει:
ip -6 route get 2606:4700:4700::1111
ip -6 rule show
ip -6 route show table all
Ένα πιο συγκεκριμένο πρόθεμα είναι ο συνήθης λόγος που ένας προορισμός μένει έξω από τη σήραγγα ενώ όλα τα άλλα μένουν μέσα, και ένας κανόνας πολιτικής μπορεί να κάνει το ίδιο με υψηλότερη προτεραιότητα από οποιαδήποτε διαδρομή. Διάβασε και τη μετρική, αφού δύο καταχωρίσεις για το ίδιο πρόθεμα κρίνονται κατά μετρική και όχι κατά τη σειρά τους στην οθόνη. Στα Windows η αντίστοιχη λίστα είναι Get-NetRoute -AddressFamily IPv6, ταξινομημένη κατά μετρική ώστε να ταιριάζει με τη σειρά απόφασης. Ένας κανόνας που φαίνεται σωστός στον πίνακα μπορεί ακόμη να χάσει από έναν κανόνα πολιτικής με μικρότερο αριθμό, γι’ αυτό η λίστα κανόνων ανήκει στην ίδια ανάσα με τη λίστα διαδρομών.
Από πού προκύπτει η πολιτική IPv6 του πελάτη
Ένας πελάτης μπορεί να είναι φτιαγμένος ώστε να μεταφέρει το v6 μέσα από τη σήραγγα, να το αρνηθεί ή να επιτρέψει μια ονομασμένη εξαίρεση, και αυτές οι τρεις προθέσεις δίνουν τρία διαφορετικά σωστά αποτελέσματα. Διάβασε το προφίλ και την τεκμηρίωση του ίδιου του πελάτη πριν χαρακτηρίσεις μια παρατήρηση διαρροή, γιατί ένας πελάτης που μπλοκάρει το v6 ενώ το λειτουργικό σύστημα στέλνει ακόμη ανακάλυψη γειτόνων στη φυσική ζεύξη συμπεριφέρεται όπως σχεδιάστηκε.
Μια εφαρμογή που εξαιρείται σκόπιμα από τη σήραγγα είναι διαφορετική περίπτωση από μια οικογένεια που η σήραγγα δεν μετέφερε ποτέ. Το πρώτο είναι απόφαση για ένα πρόγραμμα, το δεύτερο είναι κενό στην κάλυψη, και η επισκευή διαφέρει ανάλογα. Διάβασε τη λίστα εξαιρούμενων προγραμμάτων του πελάτη πριν ψάξεις για μια διαδρομή που δεν έπρεπε ποτέ να υπάρξει.
Στενή παρατήρηση, όταν ο πίνακας διαφωνεί
Όταν η αναζήτηση διαδρομής είναι αμφίσημη, μια παρατήρηση διεπαφής στον κεντρικό υπολογιστή μπορεί να το ξεκαθαρίσει, αλλά μόνο αν στοχεύει στην ερώτηση. Η κίνηση προς το ίδιο το άκρο του VPN θα περάσει από τη φυσική κάρτα εκ σχεδιασμού· αυτό που μετρά είναι αν η ροή της εφαρμογής, που απευθύνεται κάπου εντελώς αλλού, εμφανίζεται επίσης εκεί. Φίλτραρε τη σύλληψη στον προορισμό που δοκιμάζεις αντί να συλλέγεις τα πάντα.
Μια ευρεία σύλληψη εκθέτει πολύ περισσότερη προσωπική κίνηση από όση απαιτεί η μία ερώτηση. Απαντά και λιγότερο καθαρά, γιατί η ροή που σε νοιάζει φτάνει θαμμένη μέσα σε ένα ρεύμα άσχετων συνδέσεων. Φίλτραρε στον δοκιμασμένο προορισμό, σταμάτα μετά από μια χούφτα πακέτα και διαγράψε τη σύλληψη.
Τρεις τρόποι να κλείσεις το κενό
Μετέφερε την οικογένεια μέσα από τη σήραγγα, μπλόκαρέ την στον πελάτη όταν η σήραγγα δεν μπορεί να τη μεταφέρει, ή κατέγραψε μια σκόπιμη εξαίρεση με υπεύθυνο και ημερομηνία αναθεώρησης. Κάθε μία υπερασπίζεται, και το μόνο που δεν υπερασπίζεται είναι να αφήσεις την επιλογή άρρητη, γιατί μια άρρητη επιλογή είναι ακριβώς αυτό που είναι η διαρροή. Αν η σήραγγα δεν έχει καθόλου έξοδο v6, το να αρνείσαι το v6 στον πελάτη είναι και ειλικρινές και ελέγξιμο. Αυτό που μετρά είναι η επιλογή να γραφτεί εκεί όπου θα τη βρει ο επόμενος, όχι να συναχθεί από τη συμπεριφορά έξι μήνες αργότερα.
Επανάλαβε τον έλεγχο μετά από επανασύνδεση και μετά από μετακίνηση ανάμεσα σε δίκτυα, αφού μια διαδρομή που εγκαταστάθηκε για την προηγούμενη ζεύξη μπορεί να επιβιώσει της αλλαγής. Μετά κατέγραψε τον προορισμό, τη διαδρομή που επιλέχθηκε, την πολιτική του πελάτη και την οικογένεια που χρησιμοποίησε η δοκιμή, ώστε ο επόμενος να διαβάσει μια απόφαση αντί να την ξαναβγάλει. RFC 7359 τεκμηριώνει τη διαρροή διπλής στοίβας ως πρόβλημα σχεδιασμού και όχι ως σφάλμα, και είναι η αναφορά που επικαλείσαι όταν κάποιος ισχυρίζεται ότι μια λειτουργική σήραγγα v4 καλύπτει τα πάντα.