Η χειραψία είναι φρέσκια στο wg show, το τελικό σημείο είναι σωστό, τα κλειδιά δεν άλλαξαν ποτέ — και το ping λέει ακόμα ότι δεν υπάρχει διαδρομή προς τον ομότιμο. Αλλάξατε το υποδίκτυο της σήραγγας πριν από μία ώρα. Αυτό το σύμπτωμα είναι η υπογραφή μιας αναντιστοιχίας προθέματος και όχι προβλήματος κλειδιού: το WireGuard ολοκλήρωσε τη χειραψία και μετά απέρριψε τα δεδομένα επειδή μια διεύθυνση πηγής δεν ταιριάζει πλέον με αυτό που θα δεχτεί ο ομότιμος παραλήπτης. Υπάρχουν δύο λογικοί τρόποι να γίνει μια αλλαγή υποδικτύου, και αποτυγχάνουν σε διαφορετικά σημεία.

Δύο τρόποι να γίνει η αλλαγή, και τι κοστίζει ο καθένας

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

A: renumber in placeB: parallel interface
DowntimeThe reload window, per hostNone if peers are added to both
RollbackRe-apply the previous filesPoint peers back at the old interface
RiskHalf-applied change: new address, old rangesTwo live interfaces with overlapping intent
EffortSmall, if the deployment has one ownerHigher, and needs a cleanup step
FitsTwo or three peers you controlMany peers, remote sites, or no maintenance window

Η μισοεφαρμοσμένη κατάσταση είναι αυτό που κάνει την επιλογή A επικίνδυνη, γιατί δεν φαίνεται χαλασμένη. Η διεπαφή ανεβαίνει, η χειραψία πετυχαίνει και μόνο η διαδρομή δεδομένων αποτυγχάνει. Η επιλογή B κοστίζει περισσότερη δουλειά αλλά κρατά ζωντανή μια λειτουργική διαδρομή όσο βρίσκετε κάθε αναφορά.

Τι πρέπει να κινηθεί μαζί στο δικό σας άκρο

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

Συγκρίνετε ό,τι έχει διαμορφωθεί με ό,τι είναι ζωντανό αντί να εμπιστεύεστε οποιοδήποτε από τα δύο:

wg show
wg showconf wg0
ip addr show wg0
ip route get 10.90.0.5

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

Για μια διεπαφή που εκτελείται, εφαρμόστε το επεξεργασμένο αρχείο χωρίς να γκρεμίσετε τη σήραγγα:

wg syncconf wg0 <(wg-quick strip wg0)

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

Τι πρέπει να κινηθεί μαζί στο απομακρυσμένο άκρο

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

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

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

Παλιά αντίγραφα που επιβιώνουν της επεξεργασίας σας

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

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

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

Επιλογή ανάμεσα στις δύο, και επαλήθευση της αλλαγής

Διαλέξτε A όταν κατέχετε κάθε ομότιμο, ο αριθμός είναι μικρός και μια σύντομη διακοπή είναι αποδεκτή. Διαλέξτε B όταν οι ομότιμοι είναι απομακρυσμένα χέρια που δεν ελέγχετε, όταν ένας σύνδεσμος τοποθεσίας-σε-τοποθεσία πρέπει να μείνει πάνω, ή όταν δεν μπορείτε να εγγυηθείτε ότι κάθε αντίγραφο θα ενημερωθεί σε ένα πέρασμα. Σε αυτή την περίπτωση προσθέστε το νέο πρόθεμα και στις δύο διεπαφές, μετακινήστε ομοτίμους έναν-έναν, παρακολουθήστε την κίνηση στη νέα και μόνο τότε αφαιρέστε την παλιά διεπαφή και τις διαδρομές της.

Σε όποια επιλογή, η αλλαγή έχει γίνει όταν περάσουν τέσσερις έλεγχοι: η χειραψία είναι πρόσφατη, η αναζήτηση διαδρομής για προορισμό με το νέο πρόθεμα ονομάζει τη σήραγγα, ένα ωφέλιμο φορτίο λίγων εκατοντάδων byte μεταφέρεται και προς τις δύο κατευθύνσεις, και το ίδιο ισχύει μετά από επανεκκίνηση του υπολογιστή ή του διαχειριστή. Το εγχειρίδιο wg(8) είναι η αναφορά για το τι σημαίνει το AllowedIPs σε κάθε κατεύθυνση, και αξίζει να το ξαναδιαβάσετε πριν διευρύνετε ένα εύρος για να εξαφανιστεί ένα σύμπτωμα.

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

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