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

Η μερική κατάσταση είναι η συνήθης αποτυχία

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

Αυτό που δεν υπάρχει ακόμη είναι ό,τι ακολούθησε το βήμα που απέτυχε. Αν η αποτυχία ήταν στο στάδιο του resolver, οι διευθύνσεις και οι διαδρομές υπάρχουν και το DNS όχι. Αν ήταν διαδρομή, το τούνελ έχει διεύθυνση και κανένα μονοπάτι μέσα από αυτό.

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

Βρείτε το πρώτο βήμα που αποτυγχάνει

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

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

systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager | tail -40
wg show
ip -4 addr show dev wg0

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

Τρεις συνθήκες που καθορίζουν την επιδιόρθωση

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

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

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

Καθαρίστε πριν δοκιμάσετε ξανά

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

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

Αποδείξτε το τούνελ, όχι τη μονάδα

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

Στείλτε ένα αίτημα μέσα από το τούνελ και διαβάστε την κατάσταση που το παρήγαγε:

systemctl is-active wg-quick@wg0
wg show wg0 latest-handshakes
ping -c 3 10.63.0.1
resolvectl query internal.example.net

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

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