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

Επιβεβαιώστε τον βρόχο πριν αλλάξετε διαδρομή

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

sudo wg show wg1 endpoints
ip route get 198.51.100.20
ip rule show

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

Διαβάστε τη διαδρομή του τελικού σημείου, όχι τη διαδρομή της σήραγγας

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

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

Επαναφέρετε τη διαδρομή του τελικού σημείου με μία συνεκτική αλλαγή

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

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

sudo ip route replace 198.51.100.20/32 via 192.0.2.1 dev eth0
ip route get 198.51.100.20
sudo ip route add default dev wg1

Επαληθεύστε και μετά κρατήστε δρόμο επιστροφής

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

sudo wg show wg1 latest-handshakes
sudo wg-quick down wg1
ip route show default
ip route get 198.51.100.20

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

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