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

Ο κωδικός λειτουργίας δηλώνει θέση στο πρωτόκολλο

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

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

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

Τι κάνει στην πραγματικότητα ο πελάτης εκείνη τη στιγμή

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

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

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

Πού κρύβεται η αληθινή βλάβη μετά το reset

Διαβάστε τα δύο αρχεία καταγραφής δίπλα-δίπλα και βρείτε το πρώτο γεγονός που δεν είναι reset. Στον πελάτη, μια αποτυχία επικύρωσης πιστοποιητικού αναφέρεται με τον συγκεκριμένο λόγο: ληγμένο πιστοποιητικό, αναντιστοιχία ονόματος ή άγνωστος εκδότης. Στον διακομιστή, μια απόρριψη διαπιστευτηρίων αναφέρεται ως αποτυχία ταυτοποίησης με τον δικό της λόγο. Και τα δύο είναι πολύ πιο συγκεκριμένα από την επαναλαμβανόμενη εικόνα του διακομιστή για τις νέες απόπειρες.

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

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

grep -nE 'VERIFY|AUTH_FAILED|TLS Error|SIGUSR1' /var/log/openvpn*.log

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

Γιατί η απενεργοποίηση της επαλήθευσης είναι λάθος αντίδραση

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

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

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

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