Το VPN επανασυνδέθηκε, αλλά η συνεδρία της εφαρμογής εξακολουθεί να αποτυγχάνει
Μια επανασύνδεση αποκαθιστά διαδρομές, όχι την κατάσταση της υποδοχής. Ανοίξτε ένα νέο αίτημα όσο το παλιό κρέμεται ακόμη και θα ξέρετε ποιο από τα δύο απέτυχε.
Το τούνελ επιστρέφει, ο πελάτης λέει ότι είναι συνδεδεμένος και ο περιηγητής γυρίζει ακόμη σε μια σελίδα που φόρτωνε πριν από τη διακοπή. Μια επανασύνδεση VPN αποκαθιστά μια διαδρομή και δεν αποκαθιστά την κατάσταση σύνδεσης που συσσώρευσαν οι εφαρμογές και η απομακρυσμένη πλευρά πάνω στην παλιά. Αυτά είναι δύο διαφορετικά πράγματα για επισκευή, και η σύγχυσή τους σας στέλνει πίσω στις ρυθμίσεις VPN χωρίς λόγο.
Μία δοκιμή τα χωρίζει καθαρά, και διαρκεί δέκα δευτερόλεπτα. Στείλτε ένα νέο αίτημα στον ίδιο προορισμό όσο το παλιό κρέμεται.
Τι επιβιώνει από μια επανασύνδεση και τι όχι
Ένα τούνελ είναι ένα σύνολο διαδρομών, κλειδιών και διευθύνσεων, και μια επανασύνδεση μπορεί να αποκαταστήσει και τα τρία ενώ κάθε εγκατεστημένη ροή μένει νεκρή. Το λειτουργικό σύστημα κρατά μια υποδοχή ανοιχτή επειδή το ζήτησε η εφαρμογή, και το χρονικό όριο αυτής της υποδοχής μπορεί να απέχει λεπτά ή ώρες. Από κάτω, ο ομότιμος έχει ξεχάσει τη ροή, μια καταχώριση μετάφρασης έχει λήξει, ή η διαδρομή περνά τώρα από ένα άκρο που δεν είδε ποτέ τη χειραψία. Τίποτα στην ακολουθία της επανασύνδεσης δεν περνά τις υποδοχές της εφαρμογής και δεν τις επισκευάζει.
Μερικοί πελάτες προσθέτουν ένα άγκιστρο που πετά τις παλιές συνδέσεις στην επανασύνδεση, και οι περισσότεροι όχι. Η συμπεριφορά εδώ ποικίλλει ανά πελάτη, πλατφόρμα και έκδοση.
Η απομακρυσμένη πλευρά σας ξέχασε κι εσάς
Το μακρινό άκρο κρατά δική του κατάσταση· μια συνεδρία TLS, ένα μπλοκ ελέγχου TCP και ίσως μια καταχώριση αντιστοίχισης που δένει τη διεύθυνση και τη θύρα σας με τη ροή. Μια συσκευή μετάφρασης στη διαδρομή μπορεί να αφήσει αυτή την αντιστοίχιση να λήξει κατά το κενό ακόμη και όταν το τούνελ αποκαθίσταται γρήγορα. Μόλις χαθεί η αντιστοίχιση, φτάνουν πακέτα για μια ροή που ο διακομιστής δεν αναγνωρίζει πια, και η απάντηση μπορεί να είναι ένα reset που ο πελάτης δεν εμφανίζει ποτέ. Οι εφαρμογές το αναφέρουν ως κόλλημα και όχι ως σφάλμα, επειδή περιμένουν ακόμη μια υποδοχή που δεν θα απαντήσει ποτέ.
Τα χρονικά όρια αδράνειας στην πλευρά του διακομιστή κάνουν το ίδιο με το δικό τους πρόγραμμα, γι’ αυτό μια συνεδρία μπορεί να πεθάνει χωρίς κανένα γεγονός δικτύου. Μια σύνδεση που έμεινε αδρανής περισσότερο απ’ όσο περιμένει ο διακομιστής έχει ήδη φύγει πριν προσέξετε ότι το τούνελ μετακινήθηκε.
Ένα νέο αίτημα είναι η δοκιμή που τα χωρίζει
Στείλτε ένα νέο αίτημα στον ίδιο κεντρικό υπολογιστή όσο το παλιό κρέμεται ακόμη, και παρατηρήστε και τα δύο. Αν το νέο αίτημα πετύχει, τότε το τούνελ, η διαδρομή και η επίλυση ονομάτων λειτουργούν, και η βλάβη περιορίζεται στην παλιά ροή. Αν αποτύχει και το νέο αίτημα, έχετε πρόβλημα διαδρομής και η κατάσταση συνεδρίας της εφαρμογής είναι ψευδής ένδειξη.
Κρατήστε οποιοδήποτε μπλοκ άμεσης κίνησης στη θέση του κατά τη δοκιμή. Ένα αίτημα που πετυχαίνει μέσα από μια τυχαία εφεδρική διαδρομή δεν αποδεικνύει τίποτα για το τούνελ.
Επιβεβαιώστε με νέα σύνδεση, όχι με την παλιά
Οι παρακάτω εντολές δείχνουν τις υποδοχές που είναι ακόμη ανοιχτές, ξεκινούν ένα νέο αίτημα και ελέγχουν αν ο πίνακας συνεδριών κρατά ακόμη καταχώριση για τη ροή. Εκτελέστε την πρώτη πριν και μετά την επανασύνδεση ώστε να φαίνεται η διαφορά. Αντικαταστήστε τον κεντρικό υπολογιστή και τη θύρα με τη δική σας υπηρεσία.
ss -tanp | grep -E ':(443|8443)'
curl -sS -o /dev/null -w '%{http_code} %{time_connect}\n' --max-time 8 https://intranet.example.com/
conntrack -L 2>/dev/null | grep 8443
dig +short intranet.example.com
Μια εγκατεστημένη υποδοχή χωρίς κίνηση είναι το σημάδι που ψάχνετε, και ένα νέο αίτημα που επιστρέφει κωδικό κατάστασης δείχνει ότι η διαδρομή είναι ζωντανή. Ο πίνακας συνδέσεων απαντά αν κάτι αντιστοιχίζει ακόμη τη ροή, και αυτό είναι το μέρος που ο πελάτης δεν βλέπει. Το ερώτημα στον επιλυτή καλύπτει το άλλο μισό της φόρτωσης σελίδας, αφού μια αποτυχία ονόματος και μια κολλημένη σύνδεση φαίνονται ίδιες σε έναν περιηγητή. Μαζί, αυτές οι τέσσερις έξοδοι χωρίζουν μια παλιά συνεδρία από ένα σπασμένο τούνελ.
Καταγράψτε τον χρόνο διακοπής, τον χρόνο επανασύνδεσης και τη διαφορά ανάμεσα στο παλιό και το νέο αίτημα. Αυτή η καταγραφή μετατρέπει ένα αόριστο παράπονο σε αναφορά πάνω στην οποία μπορεί κάποιος να δράσει.