Οι απαντήσεις DNS64 περιγράφουν μια διάταξη δικτύου και όχι μια ιδιότητα του διακομιστή. Ο resolver συνθέτει μια διεύθυνση IPv6 από μια IPv4, και το αποτέλεσμα λειτουργεί μόνο εκεί όπου ένας μεταφραστής βρίσκεται στο τέλος αυτού του προθέματος. Βάλτε ένα VPN στη διαδρομή και αυτή η διάταξη μπορεί να κρατήσει, να αλλάξει ή να πάψει να ισχύει ανάλογα με τρεις συνθήκες.

Αυτές οι συνθήκες είναι ο resolver που απάντησε, η διαδρομή που έχει η συσκευή σας προς το συντεθειμένο πρόθεμα και το αν κάτι σε αυτή τη διαδρομή εκτελεί τη μετάφραση. Καθεμία είναι παρατηρήσιμη, και αυτό είναι που κάνει τη βλάβη διαγνώσιμη.

Σε τι δείχνει πραγματικά μια συντεθειμένη εγγραφή AAAA

Ένας resolver DNS64 απαντά σε ερώτημα AAAA για όνομα με μόνο IPv4 ενσωματώνοντας τη διεύθυνση IPv4 μέσα σε ένα πρόθεμα που έχει ρυθμιστεί να χρησιμοποιεί, και το γνωστό πρόθεμα για αυτή τη δουλειά είναι 64:ff9b::/96 όπως περιγράφεται στο RFC 6147. Η εγγραφή φαίνεται στην εφαρμογή σαν κάθε άλλη εγγραφή AAAA, και αυτό είναι το νόημα: ένας πελάτης με μόνο IPv6 μπορεί να δοκιμάσει σύνδεση χωρίς να ξέρει ότι ο προορισμός δεν είχε ποτέ IPv6. Στη συνέχεια αυτή η σύνδεση εξαρτάται από μια λειτουργία NAT64 που μεταφράζει κάπου στη διαδρομή ανάμεσα στις δύο οικογένειες. Χωρίς αυτόν τον μεταφραστή, η συντεθειμένη διεύθυνση είναι ένας προορισμός που φαίνεται πιθανός και δεν οδηγεί πουθενά.

Η εγγραφή λοιπόν κωδικοποιεί δύο πράγματα μαζί: την αρχική διεύθυνση IPv4 και την παραδοχή ότι ένας μεταφραστής είναι προσπελάσιμος. Μόνο το πρώτο είναι ορατό στην ίδια την απάντηση.

Τρεις συνθήκες αποφασίζουν αν λειτουργεί ακόμη

Η πρώτη συνθήκη είναι ποιος resolver παρήγαγε την εγγραφή, αφού ένας χωρίς ρυθμισμένο DNS64 δεν επιστρέφει τίποτα για αυτό το όνομα και η εφαρμογή αποτυγχάνει με άλλον τρόπο. Η δεύτερη είναι αν η συσκευή σας έχει διαδρομή προς το συντεθειμένο πρόθεμα, γιατί μια απάντηση μπορεί να είναι έγκυρη ενώ λείπει η διαδρομή προς αυτήν. Η τρίτη είναι αν ο μεταφραστής που κατέχει αυτό το πρόθεμα βρίσκεται στη διαδρομή που θα χρησιμοποιούσατε, γιατί μια σήραγγα που μεταφέρει το 64:ff9b::/96 αλλού φτάνει σε άλλη λειτουργία ή σε τίποτα. Και οι τρεις μπορούν να ισχύουν πριν από τη σήραγγα και να αποτυγχάνουν μετά, και γι' αυτό το σύμπτωμα μοιάζει με ξαφνική υποχώρηση.

Ελέγξτε τις με αυτή τη σειρά. Μια απούσα απάντηση και μια απούσα διαδρομή φαίνονται ίδιες σε έναν περιηγητή και εντελώς διαφορετικές στο αρχείο καταγραφής του resolver.

Όταν αλλάζει ο resolver, αλλάζει η απάντηση

Ένας πελάτης VPN συχνά επιβάλλει τον δικό του resolver ή αναλαμβάνει ολόκληρη τη διαδρομή του ερωτήματος, και αυτός ο resolver μπορεί να μη συνθέτει τίποτα. Τα ερωτήματα για ονόματα με μόνο IPv4 τότε δεν επιστρέφουν εγγραφή AAAA, κάτι που ένας πελάτης με μόνο IPv6 το βιώνει ως όνομα που δεν μπορεί να φτάσει. Συμβαίνει και το αντίστροφο: ένας resolver που πράγματι συνθέτει μπορεί να σας δώσει πρόθεμα που η σηραγγοποιημένη διαδρομή σας δεν μεταφέρει.

Η προσωρινή μνήμη κάνει αυτό δυσκολότερο να φανεί. Μια συντεθειμένη εγγραφή που αποκτήθηκε στο δίκτυο του γραφείου μπορεί να επιβιώσει από το πλαίσιο που την παρήγαγε, οπότε ο πελάτης συνεχίζει να συνδέεται σε μια διεύθυνση της οποίας ο μεταφραστής δεν είναι πλέον προσπελάσιμος. Κοιτάξτε τον resolver που απαντά τώρα και όχι εκείνον που απάντησε όταν αποθηκεύτηκε η καταχώριση. Το άδειασμα της μνήμης χωρίς καταγραφή της παλιάς και της νέας απάντησης καταστρέφει την απόδειξη που χρειάζεστε.

Δοκιμάστε το ερώτημα και τη διαδρομή χωριστά

Ρωτήστε το όνομα απευθείας πριν μπλέξετε την εφαρμογή, και σημειώστε ποιος διακομιστής απάντησε. Οι εντολές παρακάτω δείχνουν την εγγραφή AAAA, τον resolver που χρησιμοποιείται και αν υπάρχει διαδρομή προς το συντεθειμένο πρόθεμα. Εκτελέστε τις με τη σήραγγα κλειστή και ξανά με ανοιχτή.

dig AAAA ipv4only.example.com +short
dig AAAA ipv4only.example.com | grep -E '^;; SERVER'
ip -6 route get 64:ff9b::c000:0216
curl -6 -sS -o /dev/null -w '%{http_code} %{time_connect}\n' --max-time 8 http://ipv4only.example.com/

Διαβάστε τα αποτελέσματα ως αλυσίδα. Μια απούσα εγγραφή AAAA σημαίνει ότι ο resolver μπροστά σας δεν συνθέτει, άρα μια διαδρομή με μόνο IPv6 δεν θα δουλέψει για αυτό το όνομα, ό,τι κι αν κάνει ο πελάτης. Εγγραφή παρούσα χωρίς διαδρομή σημαίνει ότι το πρόθεμα δεν μεταφέρεται από την τρέχουσα διαδρομή, και αυτό είναι απόφαση δρομολόγησης και όχι σφάλμα resolver. Διαδρομή παρούσα ενώ το αίτημα εξακολουθεί να αποτυγχάνει δείχνει στον ίδιο τον μεταφραστή, και αυτό ανήκει σε άλλον ιδιοκτήτη.

Καταγράψτε τον resolver, το πλαίσιο δικτύου και την οικογένεια διευθύνσεων δίπλα σε κάθε αποτέλεσμα. Αυτή η σημείωση είναι που επιτρέπει στην επόμενη σύγκριση να ξεχωρίσει μια αλλαγή resolver από μια αλλαγή δρομολόγησης.

Σχετικά άρθρα