Το «συνδεδεμένο» είναι το λιγότερο πληροφοριακό στοιχείο σε ένα δελτίο VPN. Καταγράφει ότι δύο κόμβοι ολοκλήρωσαν ένα handshake και τίποτα για το όνομα που ζητήθηκε, τη διεπαφή από την οποία έφυγε το πακέτο, το μέγεθός του ή αν το δέχτηκε το απομακρυσμένο άκρο. Γι’ αυτό μία υπηρεσία μπορεί να αποτυγχάνει ενώ κάθε άλλη εφαρμογή στον ίδιο φορητό υπολογιστή λειτουργεί. Περάστε τα στάδια με τη σειρά και το πρώτο που αποτυγχάνει θα ονομάσει το σφάλμα.

Ξεκινήστε με το όνομα, όχι με το τούνελ

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

resolvectl query host.internal
getent hosts host.internal

Οι περιηγητές με δική τους ρύθμιση ασφαλούς DNS αποτυγχάνουν εδώ ενώ το υπόλοιπο σύστημα λειτουργεί. Γι’ αυτό ένα παράπονο μόνο για τον περιηγητή ανήκει πρώτα σε αυτό το στάδιο, πριν κάποιος αγγίξει μια διαδρομή. Συγκρίνετε και τις δύο εντολές, όχι μία, γιατί το getent ακολουθεί τη διαδρομή NSS και το ερώτημα στον resolver όχι.

Ρωτήστε τον πυρήνα ποια διαδρομή διάλεξε

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

ip route get 10.20.30.40
ip -brief address show

Διαβάστε τα πεδία dev, via και src με αυτή τη σειρά, γιατί το καθένα αποκλείει διαφορετική υποψία. Αυτό το στάδιο κατέχει και την κατάσταση που εγκατέστησε ο πελάτης, αφού κανόνες firewall και διαδρομές μπορούν να παραμείνουν μετά από μη φυσιολογική έξοδο. Γι’ αυτό το «χωρίς internet χωρίς το τούνελ» και το «χωρίς internet αν δεν τρέχει ο πελάτης» είναι μία οικογένεια σφαλμάτων, όχι δύο.

Δοκιμάστε το μέγεθος του πακέτου

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

ping -M do -s 1400 10.20.30.40

Μικροί έλεγχοι περνούν ενώ μια λίστα καταλόγου ή ένα ανέβασμα κολλάει — αυτή είναι η υπογραφή αυτού του σταδίου. Το παράπονο ακούγεται σαν διαπιστευτήρια ή κανόνας firewall, και δεν είναι κανένα από τα δύο.

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

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

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

curl -sv http://10.20.30.41:8080/health
nc -vz -w 3 10.20.30.41 3389
ss -lnt 'sport = :8080'

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

Αντιστοιχίστε το παράπονο σε ένα στάδιο

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

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

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

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