Το VPN συνδέεται, δουλεύει για λίγο και μετά σταματά να περνά κίνηση ενώ ο πελάτης εξακολουθεί να δείχνει συνεδρία. Η επανασύνδεση το διορθώνει, και έτσι φαίνεται σαν σφάλμα του πελάτη. Συνήθως είναι ένα τείχος προστασίας ή μια συσκευή NAT που έριξε μια ανενεργή αντιστοίχιση UDP και δεν έχει ιδέα ότι η σήραγγα υπάρχει ακόμη.

Το σύμπτωμα είναι αρκετά σταθερό για διάγνωση: εμφανίζεται μετά από αδράνεια, όχι υπό φόρτο.

Πώς φαίνεται μια ακινησία αδράνειας

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

Και τα δύο σχετίζονται με την αδράνεια, και χρειάζονται διαφορετικές διορθώσεις.

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

Βρες τη συσκευή που ξέχασε

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

Μην υποθέτεις ότι η τεκμηριωμένη προεπιλογή είναι το όριο χρόνου στη διαδρομή σου. Είναι η προεπιλογή μίας συσκευής.

  • Οικιακός δρομολογητής: συχνά λεπτά, μερικές φορές πολύ λιγότερο.
  • NAT νέφους ή εξισορροπητής φόρτου: αναζήτησε το τεκμηριωμένο όριο αδράνειας ειδικά για UDP.
  • Τείχος προστασίας κεντρικού υπολογιστή: οι χρονοδιακόπτες παρακολούθησης του netfilter ισχύουν ανά ροή.

Έλεγξε τους χρονοδιακόπτες στην πραγματική διαδρομή

Στο Linux, οι χρονοδιακόπτες παρακολούθησης του netfilter είναι ορατοί και ρυθμιζόμενοι: sysctl net.netfilter.nf_conntrack_udp_timeout και net.netfilter.nf_conntrack_udp_timeout_stream. Ο δεύτερος ισχύει μόλις φανεί κίνηση και προς τις δύο κατευθύνσεις, γι' αυτό μια εγκατεστημένη σήραγγα μπορεί να επιβιώσει από ένα γυμνό δοκιμαστικό πακέτο.

RFC 4787 καθορίζει τη συμπεριφορά του UDP NAT και τα συνιστώμενα ελάχιστα. Είναι η αναφορά που επικαλείσαι όταν μια προεπιλογή κατασκευαστή φαίνεται ασυνήθιστα μικρή.

Το keepalive και η επανασύνδεση είναι διαφορετικά εργαλεία

Ένα keepalive κρατά ζωντανή μια αντιστοίχιση· μια επανασύνδεση ξαναχτίζει μια νεκρή συνεδρία. Λύνουν διαφορετικές βλάβες και δεν είναι ανταλλάξιμες ρυθμίσεις ταχύτητας. Η επιλογή PersistentKeepalive του WireGuard στέλνει πακέτο σε σταθερό διάστημα για να κρατά ανοιχτή τη σύνδεση NAT. Η επιλογή keepalive του OpenVPN κάνει την ίδια δουλειά με τον δικό της τρόπο. Καμία δεν βοηθά αν η συσκευή στη μέση έχει ήδη ξεχάσει τη ροή και ρίχνει και τις δύο κατευθύνσεις.

Οι εξαιρετικά συχνές δοκιμές προσθέτουν δουλειά χωρίς να διορθώνουν το λάθος σύνορο.

Επαλήθευσε με νέο αίτημα, όχι με ανανέωση σελίδας

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

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

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