Αλλαγή παρόχου VPN: σχεδιάστε το όνομα κεντρικού υπολογιστή, όχι μόνο τη διεύθυνση IP
Μια νέα εγγραφή DNS δεν μετακινεί τις υπάρχουσες συνεδρίες. Σχεδιάστε ποιος ελέγχει το όνομα, πότε το επιλύει κάθε πελάτης και πώς θα αποσύρετε το παλιό τελικό σημείο.
Η εγγραφή DNS σας είναι σωστή, το αντικαταστάτη είναι υγιές, και παρ' όλα αυτά ορισμένοι πελάτες περνούν ώρες καλώντας την παλιά διεύθυνση. Μερικοί αποτυγχάνουν αμέσως σε ένα όνομα που επιλύεται και δεν απαντά ποτέ. Και τα δύο αποτελέσματα προέρχονται από ένα κενό: ένα όνομα κεντρικού υπολογιστή αλλάζει τι αναζητά ένας πελάτης, όχι πότε το αναζητά, ούτε σε τι βασίζεται όταν φτάνει η απάντηση.
Το σύμπτωμα: σωστή εγγραφή, παρωχημένες σήραγγες
Ένα προφίλ που αποθηκεύει ένα όνομα δεν είναι πελάτης που το επιλύει συνεχώς. Οι περισσότεροι το επιλύουν μία φορά, κατά την εφαρμογή της διαμόρφωσης ή όταν ανεβαίνει η σήραγγα, και στη συνέχεια επαναχρησιμοποιούν αυτή τη διεύθυνση μέχρι να τελειώσει η συνεδρία. Ένα μεγάλο TTL από πάνω είναι ο λόγος που η μετάβαση πρέπει να σχεδιαστεί γύρω από τις επανασυνδέσεις και όχι γύρω από την επεξεργασία του DNS.
Καμία από τις δύο συμπεριφορές δεν είναι ελάττωμα, και αυτό ακριβώς κάνει το σύμπτωμα μπερδεμένο. Ο πελάτης εργάζεται με μια απάντηση που έλαβε νωρίτερα, και τίποτα στην πλευρά του διακομιστή δεν δείχνει ποια απάντηση ήταν αυτή. Σχεδιάστε την επανασύνδεση μέσα στο παράθυρο συντήρησης και πείτε στους χρήστες τι θα δουν, ή περάστε το παράθυρο απαντώντας σε αιτήματα. Μια ουρά πανομοιότυπων αναφορών είναι το συνηθισμένο αποτέλεσμα.
Ποιος ελέγχει το όνομα και τι επαληθεύει ο πελάτης
Ο έλεγχος της ζώνης καθορίζει πόσο γρήγορα μπορεί να κινηθεί μια μετεγκατάσταση. Κρατήστε την εγγραφή σε έναν καταχωρητή στον οποίο μπορείτε να συνδεθείτε, και σημειώστε ποιος άλλος μπορεί να την αλλάξει.
Η εμπιστοσύνη δεν ακολουθεί το όνομα. Ένας πελάτης βασισμένος σε TLS μπορεί να ελέγχει την ταυτότητα ενός πιστοποιητικού ή ένα καρφιτσωμένο όνομα, ενώ το WireGuard επαληθεύει το δημόσιο κλειδί του ομότιμου και αγνοεί εντελώς το όνομα κεντρικού υπολογιστή. Αυτή η διαφορά καθορίζει αν αρκεί μια επεξεργασία DNS ή αν κάθε προφίλ χρειάζεται νέο αποτύπωμα. Μια αλλαγή εγγραφής δεν πρέπει ποτέ να εξουσιοδοτεί ένα τελικό σημείο που κανείς δεν ενέκρινε.
Κρατήστε τη διαχειριστική πρόσβαση και την πρόσβαση ανάκτησης μακριά από το δημόσιο όνομα του πελάτη. Η απώλεια ενός λογαριασμού φιλοξενίας δεν πρέπει να σας κοστίσει και την εγγραφή που ανακατευθύνει τους πελάτες. Αποθηκεύστε τη διαδρομή ανάκτησης κάπου που δεν εξαρτάται από τον πάροχο που εγκαταλείπετε.
Πότε κάθε πελάτης ξαναδιαβάζει το όνομα
Ο χρόνος επίλυσης είναι ιδιότητα κάθε πελάτη, οπότε ελέγξτε την υλοποίηση που πραγματικά διανέμετε πριν υποσχεθείτε ένα παράθυρο μετάβασης. Το wg-quick επιλύει το τελικό σημείο όταν ανεβαίνει η διεπαφή και κρατά αυτή τη διεύθυνση μέχρι να επανεκκινήσει η σήραγγα. Ένας πελάτης OpenVPN αναζητά το όνομα όταν συνδέεται, και το αν θα κοιτάξει ξανά κατά την επανασύνδεση εξαρτάται από τις επιλογές του.
| Client | When it resolves | What it verifies |
|---|---|---|
| wg-quick | At interface start, cached for the session | Peer public key, not the name |
| OpenVPN 2.6 | On connect, possibly again on reconnect | Certificate identity or pinned name |
| Mobile clients | May hold the answer across sleep or a network change | Platform trust store, same certificates |
Οι κινητοί πελάτες είναι η συνηθισμένη έκπληξη, επειδή μπορούν να κρατήσουν μια επιλυμένη διεύθυνση κατά τη διάρκεια ύπνου ή αλλαγής δικτύου. Δημοσιεύστε εγγραφές A και AAAA μόνο αν το αντικαταστάτη απαντά και στις δύο οικογένειες. Μια διεύθυνση που απαντά σε μία οικογένεια δεν αποδεικνύει τίποτα για την άλλη, και μια νεκρή εγγραφή AAAA προσθέτει χρονικό όριο σε κάθε προσπάθεια. Τεκμηριώστε τη συμπεριφορά επίλυσης για κάθε πελάτη που υποστηρίζετε και μετά δοκιμάστε στις συσκευές που χρησιμοποιούν πραγματικά οι άνθρωποι.
Η επανασύνδεση είναι ενέργεια του χρήστη στους περισσότερους πελάτες και ο διακομιστής δεν μπορεί να την επιβάλει. Βάλτε αυτό το βήμα στη σημείωση συντήρησης, με μια γραμμή για το τι θα δει ο χρήστης όταν συμβεί.
Μεταβείτε με αποδείξεις και μετά αποσύρετε το παλιό τελικό σημείο
Πριν από την αλλαγή, αποδείξτε κάθε επίπεδο στο αντικαταστάτη: ο ακροατής απαντά, το τείχος προστασίας περνά τη θύρα, οι διαδρομές επιστρέφουν σωστά, το όνομα επιλύεται στη νέα διεύθυνση και μια γνωστή ταυτότητα γίνεται δεκτή. Ένας ακροατής που δέχεται μια σύνδεση δεν είναι το ίδιο με έναν που ολοκληρώνει μια χειραψία, οπότε δοκιμάστε τη χειραψία και όχι τη θύρα. Κρατήστε την τρέχουσα λίστα ανάκλησης δίπλα στη διαμόρφωση, επειδή ένα αντίγραφο ασφαλείας που επαναφέρεται δημιουργεί ξανά τη λίστα ομότιμων όπως ήταν και θα άνοιγε ξανά πρόσβαση που έχετε ήδη κλείσει. Καταγράψτε με ποια ταυτότητα δοκιμάσατε, επειδή το «λειτουργεί» δεν είναι απόδειξη που μπορεί να επαναλάβει κανείς.
getent hosts vpn.example.com
ss -lunp | grep 51820
wg show wg0 latest-handshakes
Κατά τη μετάβαση, παρακολουθήστε τις προσπάθειες σύνδεσης και στα δύο τελικά σημεία για την ίδια ταυτότητα. Ένας πελάτης που εξακολουθεί να πιστοποιείται στην παλιά διεύθυνση είναι ένα προφίλ ή μια αποθηκευμένη απάντηση που δεν μετακινήθηκε ποτέ. Αποσύρετε το παλιό τελικό σημείο με χρονολογημένο σχέδιο, επειδή δύο υπηρεσίες που δέχονται μία ταυτότητα αφήνουν δύο πόρτες ανοιχτές.
Η δοκιμή μετάβασης είναι μια συνεδρία εφαρμογής μέσω του νέου τελικού σημείου, όχι ένα ping. Μόλις αυτή η συνεδρία λειτουργήσει και το παλιό τελικό σημείο δεν καταγράφει εξουσιοδοτημένες προσπάθειες σε έναν πλήρη κύκλο επανασύνδεσης, η μετακίνηση έχει ολοκληρωθεί.