NetworkManager ή wg-quick: ποιος κατέχει τις διαδρομές WireGuard σας;
Δύο διαχειριστές μπορούν να διεκδικήσουν την ίδια σύνδεση WireGuard, και η ρύθμιση που επεξεργαστήκατε μπορεί να μην είναι αυτή που ισχύει. Βρείτε τον ιδιοκτήτη από τις διαδρομές, τους κανόνες και την κατάσταση της διεπαφής.
Αλλάζετε το AllowedIPs στο αρχείο WireGuard, επανεκκινείτε το τούνελ και ο πίνακας δρομολόγησης φαίνεται ακριβώς όπως πριν. Η συνήθης αντίδραση είναι να διαγράψετε την ενοχλητική διαδρομή και να προχωρήσετε, κάτι που λειτουργεί μέχρι η επόμενη επανασύνδεση να την επαναφέρει. Το αρχείο που επεξεργαστήκατε δεν είναι απαραίτητα το αντικείμενο που παρήγαγε την κατάσταση που βλέπετε. Δύο διαχειριστές μπορούν να τρέχουν το ίδιο πρωτόκολλο σε ένα μηχάνημα, και μόνο ένας από αυτούς κατέχει τη διεπαφή κάθε στιγμή.
Μύθος: υπάρχει μία ρύθμιση WireGuard στο μηχάνημα
Το wg-quick διαβάζει ένα αρχείο κάτω από /etc/wireguard/ και χτίζει τη διεπαφή όταν την ανεβάζετε. Το NetworkManager αποθηκεύει ένα προφίλ σύνδεσης στη δική του μορφή keyfile και το αποδίδει κατά την ενεργοποίηση, και η εισαγωγή ενός αρχείου wg-quick αντιγράφει τις τιμές σε αυτό το προφίλ αντί να συνδέεται με αυτό. Η επεξεργασία του πρωτοτύπου μετά δεν αλλάζει τίποτα, γιατί το προφίλ δεν το διαβάζει πλέον. Η ίδια λίστα ομοτίμων και κλειδιών μπορεί επομένως να υπάρχει δύο φορές, με το δεύτερο αντίγραφο σε ισχύ.
Ένα σημάδι που αξίζει να θυμάστε: οι αλλαγές που επιβιώνουν από επανεκκίνηση αλλά όχι από νέα εισαγωγή προήλθαν από έναν χώρο αποθήκευσης, και οι αλλαγές που εξαφανίζονται στην επανεκκίνηση προήλθαν από τον άλλο.
Ένα πρακτικό παράδειγμα κάνει τον διαχωρισμό προφανή. Συγκρίνετε nmcli connection show με systemctl status wg-quick@wg0, και μετά ελέγξτε σε ποια διεπαφή κρέμονται πραγματικά οι διαδρομές. Αν η υπηρεσία είναι νεκρή και η διεπαφή είναι πάνω, το προφίλ κάνει τη δουλειά, ό,τι κι αν λέει το αρχείο.
Μύθος: οι κανόνες δρομολόγησης είναι μέρος του WireGuard
Η συσκευή WireGuard του πυρήνα γνωρίζει ομότιμους και κλειδιά και δεν γνωρίζει τίποτα για δρομολόγηση πολιτικής. Οι ip rule εγγραφές και οι πρόσθετοι πίνακες που βλέπετε τους εγκατέστησε το εργαλείο που ανέβασε τη διεπαφή. Το wg-quick μπορεί να προσθέσει ένα fwmark και έναν ειδικό πίνακα μαζί με κανόνες που δείχνουν σε αυτόν, ενώ το NetworkManager εγκαθιστά διαδρομές μέσω των δικών του ρυθμίσεων ipv4 και αφήνει το DNS σε όποιο backend resolver χρησιμοποιεί το σύστημα. Ίδιο τούνελ, διαφορετικές παρενέργειες.
Διαβάστε ip rule και ip route show table all πριν αλλάξετε οτιδήποτε, και σημειώστε σε ποιον πίνακα ζει κάθε διαδρομή. Ένας αριθμός πίνακα που δεν ρυθμίσατε είναι ισχυρή ένδειξη για το εργαλείο που τον δημιούργησε.
Μύθος: η διαγραφή της διαδρομής είναι διόρθωση
Μια διαδρομή που διαγράφεται κατά την εκτέλεση είναι μια διαδρομή που ο ιδιοκτήτης θα επανεγκαταστήσει στην επόμενη ενεργοποίηση, και η ενεργοποίηση μπορεί να συμβεί χωρίς εσάς: επαναφορά φορητού, αναλαμπή ζεύξης, επανεκκίνηση υπηρεσίας ή αυτόματη σύνδεση του NetworkManager. Γι’ αυτό επιστρέφει η ίδια διαδρομή και γι’ αυτό η λύση ανάγκης φαίνεται αναξιόπιστη αντί για λάθος. Προσδιορίστε πρώτα τον διαχειριστή και μετά αλλάξτε την είσοδο που διαβάζει πραγματικά εκείνος ο διαχειριστής.
Η επανασύνδεση και η επανεκκίνηση της σχετικής υπηρεσίας είναι η δοκιμή που χωρίζει την αληθινή διόρθωση από εκείνη που απλώς φαίνεται τακτοποιημένη.
Διαλέξτε έναν ιδιοκτήτη και αφαιρέστε τον άλλο
Διαλέξτε τον διαχειριστή που υποστηρίζει η ανάπτυξή σας και μετά απενεργοποιήστε την ανταγωνιστική ενεργοποίηση μέσω του τεκμηριωμένου ελέγχου της, αντί να ελπίζετε ότι θα μείνει αδρανής. Μια καλυμμένη υπηρεσία wg-quick ή ένα διαγραμμένο προφίλ NetworkManager είναι ρητό· το να αφήσετε και τα δύο ενεργά και να τα βάλετε να συναγωνίζονται δεν είναι. Διατηρήστε την λειτουργική πρόσβαση πριν απενεργοποιήσετε οτιδήποτε, γιατί η διεπαφή που μεταφέρει την απομακρυσμένη σας συνεδρία μπορεί να είναι αυτή που πρόκειται να αφαιρέσετε.
Μετά την αλλαγή, επαληθεύστε την συμπεριλαμβανόμενη και την εξαιρούμενη κίνηση, μετά το DNS και μετά επανεκκινήστε μία φορά. Αν η κατάσταση επιβιώσει από επανεκκίνηση με έναν μόνο διαχειριστή, έχετε ιδιοκτήτη αντί για σύμπτωση.
Ο γενικός κανόνας αξίζει να κρατηθεί και πέρα από το WireGuard: όταν μια ρύθμιση επιστρέφει ξανά και ξανά, σταματήστε να διαγράφετε το αποτέλεσμα και βρείτε τη διεργασία που συνεχίζει να το παράγει.