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

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

Οι μετρητές περιγράφουν όγκο, όχι την κατεύθυνση της βλάβης

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

Το χρήσιμο πρώτο γεγονός είναι αν η χειραψία είναι πρόσφατη. Χωρίς αυτήν δεν κρυπτογραφήθηκε τίποτα για αυτόν τον ομότιμο και ο μετρητής λήψης δεν έχει λόγο να κινηθεί.

Επιλογή ομοτίμου ή διαδρομή απάντησης: δύο εξηγήσεις

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

ObservationPoints to
No handshake while transmit climbsPeer selection or endpoint
Handshake current, request visible on the serverReply path or far-side route
Request never visible on the serverAllowed prefixes or local route
Both packets visible, nothing reaches the clientReturn filter or translation

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

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

Πού εξαφανίζονται οι απαντήσεις

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

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

Δοκιμάστε έναν προορισμό από άκρη σε άκρη

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

wg show wg0 latest-handshakes
wg show wg0 transfer
ip route get 10.60.9.5
sudo tcpdump -ni wg0 host 10.60.9.5

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

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

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