Το IPv6 σταματά να προωθεί κίνηση τη στιγμή που OpenVPN επανεκκινείται, και το IPv4 συνεχίζει να λειτουργεί. Η διεπαφή της σήραγγας δημιουργήθηκε ξανά, και κάτι άλλο που διαχειριζόταν την κατάστασή της για IPv6 έχασε είτε τη διεύθυνση είτε τη διαδρομή που καθιστά το πρόθεμα προσβάσιμο. Εμπλέκονται τρία ξεχωριστά κομμάτια κατάστασης και το καθένα έχει διαφορετικό ιδιοκτήτη: το εκχωρημένο πρόθεμα του παρόχου και η διάρκεια ζωής του, οι διευθύνσεις που δίνονται στους πελάτες VPN, και η διαδρομή ανάντη που στέλνει αυτό το πρόθεμα πελάτη πίσω στον διακομιστή. Προσδιορίστε τον ιδιοκτήτη του καθενός πριν αγγίξετε οποιονδήποτε δαίμονα, γιατί η επανεκκίνηση του λάθος κρύβει το πρόβλημα για μια μέρα και το επαναφέρει στην επόμενη σύνδεση.

Τρία κομμάτια κατάστασης IPv6, τρεις ιδιοκτήτες

StateTypical ownerWhat breaks when it is wrong
Delegated prefix and lifetimeUpstream router or provider via DHCPv6-PDClients keep addresses that the upstream no longer routes
Client addresses inside the tunnelOpenVPN server config or a delegation daemonNo global address, or an address outside the routed prefix
Return route for the client prefixUpstream router, or the server's own routing tableOutbound works, replies never arrive

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

Γι’ αυτό είναι επίσης ριψοκίνδυνο να αντιγράψετε ένα δημόσιο /64 σε μια δεξαμενή σήραγγας. Ένα πρόθεμα που δρομολογείται στον διακομιστή δεν είναι το ίδιο με ένα πρόθεμα που το ανάντη το θεωρεί on-link, και η ανακάλυψη γειτόνων δεν θα καλύψει το κενό.

Διαβάστε την κατάσταση του διακομιστή πριν αλλάξετε οτιδήποτε

Καταγράψτε την κατάσταση δύο φορές, μία όσο λειτουργεί το IPv6 και μία μετά την επανεκκίνηση, και μετά συγκρίνετε. Οι προβολές μόνο για ανάγνωση αρκούν και δεν κοστίζουν τίποτα κατά τη διάρκεια ενός παραθύρου συντήρησης:

ip -6 addr show
ip -6 route show table all
ip -6 rule show
sysctl net.ipv6.conf.all.forwarding

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

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

Αποφασίστε αν το dhcpcd πρέπει να διαχειρίζεται τη σήραγγα

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

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

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

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

Ελέγξτε το IPv6 ξεχωριστά από το NAT του IPv4

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

Η συγκάλυψη IPv4 λύνει διαφορετικό πρόβλημα: τη διαδρομή επιστροφής για ιδιωτικές πηγές. Δεν κάνει τίποτα για ένα αποσυρμένο πρόθεμα IPv6, και η προσθήκη της δεν θα φέρει πίσω το IPv6.

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

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