Ο πελάτης εμφανίζει μια καθολική διεύθυνση IPv6, η χειραψία ολοκληρώθηκε και τίποτα δεν επιστρέφει από το διαδίκτυο. Η ρύθμιση της δεξαμενής φαίνεται σωστή επειδή είναι σωστή· η διεύθυνση είναι έγκυρη και η σήραγγα τη μεταφέρει. Αυτό που αποτυγχάνει είναι η παράδοση, και η παράδοση εξαρτάται από μια απόφαση που λαμβάνεται πάνω από τον διακομιστή VPN και την οποία καμία διαμόρφωση στην πλευρά του πελάτη δεν μπορεί να επηρεάσει.

Ο μύθος: ένα κομμάτι του /64 σας είναι ήδη προσβάσιμο

Η ιστορία είναι ελκυστική: ο διακομιστής έχει ένα δημόσιο /64, κόψτε το στη μέση, δώστε το άλλο μισό στη δεξαμενή VPN και αυτοί οι πελάτες είναι τώρα στο διαδίκτυο. Ο διαχωρισμός του προθέματος πράγματι εκχωρεί διευθύνσεις χωρίς συγκρούσεις. Δεν αλλάζει όμως το πώς το δίκτυο upstream αποφασίζει πού πρέπει να πάει ένα πακέτο για μία από αυτές τις διευθύνσεις.

Το IPv6 δεν έχει προεπιλεγμένο επίπεδο μετάφρασης για να βασιστεί, οπότε η διαδρομή επιστροφής πρέπει να υπάρχει ως δρομολόγηση ή ως παράδοση σε επίπεδο ζεύξης. Ένα πακέτο που απευθύνεται στη διεύθυνση σήραγγας ενός πελάτη φτάνει στον δρομολογητή upstream, και αυτός ο δρομολογητής λαμβάνει απόφαση προώθησης από τον δικό του πίνακα. Αν ο πίνακας δείχνει στη φυσική ζεύξη, το πακέτο πηγαίνει εκεί ανεξάρτητα από το τι πιστεύει ο διακομιστής VPN σας.

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

Τι απαιτεί πραγματικά η παράδοση στη ζεύξη

Όταν το upstream θεωρεί ότι ολόκληρο το /64 βρίσκεται στη φυσική ζεύξη, επιλύει κάθε διεύθυνση προορισμού με ανακάλυψη γειτόνων. Στέλνει ένα αίτημα σε αυτή τη ζεύξη και περιμένει ο κάτοχος της διεύθυνσης να απαντήσει. Ένας πελάτης VPN πίσω από σήραγγα δεν βρίσκεται σε αυτή τη ζεύξη και δεν μπορεί να απαντήσει, οπότε το αίτημα μένει αναπάντητο και το πακέτο απορρίπτεται.

Η αποκοπή ενός /65 δεν αλλάζει αυτή την προσδοκία. Το upstream εξακολουθεί να αντιμετωπίζει το εύρος ως στη ζεύξη, επειδή το μόνο που θα το έκανε να αλλάξει γνώμη είναι μια διαδρομή ή ένα proxy που απαντά για λογαριασμό του πελάτη. Κανένα από τα δύο δεν εμφανίζεται επειδή επεξεργαστήκατε μια διαμόρφωση VPN. Αυτό το κενό εξηγεί γιατί μια δεξαμενή μπορεί να λειτουργεί τέλεια μεταξύ των δικών της πελατών και παρ' όλα αυτά να είναι απρόσιτη από οπουδήποτε αλλού.

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

Τι απαιτεί η δρομολογημένη παράδοση

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

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

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

Δύο ανεξάρτητες διαδρομές που πρέπει να ρυθμιστούν σωστά

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

server-ipv6 2001:db8:42:100::/64
push "redirect-gateway ipv6 !ipv4"

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

Κρατήστε την κίνηση ελέγχου από την οποία εξαρτάται το IPv6 λειτουργική υπό οποιαδήποτε πολιτική εφαρμόζετε. Τα μηνύματα Packet Too Big είναι το κλασικό θύμα ενός τείχους προστασίας που επιτρέπει μόνο TCP και UDP, και η απόρριψή τους παράγει συνδέσεις που εγκαθίστανται και στη συνέχεια κολλάνε σε μεγαλύτερες μεταφορές.

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

Καταγράψτε τον σχεδιασμό ώστε μια ανοικοδόμηση να τον αναπαράγει

Σημειώστε τρία αντικείμενα χωριστά: την εκχώρηση του πελάτη, τη διαδρομή προορισμού του πελάτη και τη μέθοδο παράδοσης της εκχώρησης από το upstream. Ένας αναγνώστης που έχει και τα τρία μπορεί να ανοικοδομήσει την ανάπτυξη· ένας αναγνώστης που έχει μόνο τη ρύθμιση της δεξαμενής θα αναπαράγει το αρχικό σφάλμα.

Στη συνέχεια δοκιμάστε ρητά την αντίστροφη κατεύθυνση, με ένα πακέτο που πρέπει να επιστρέψει από έξω. Το εγχειρίδιο openvpn(8) καλύπτει τις επιλογές server-ipv6 και redirect, και η επιβεβαίωση δρομολόγησης από τον πάροχό σας καλύπτει το μισό που δεν μπορεί το εγχειρίδιο.

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