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

Όταν το πρόβλημα είναι η αντιστοίχιση

Μια σήραγγα που πεθαίνει μόνο μετά από λεπτά σιωπής συνήθως χάνει μια καταχώριση μετάφρασης και όχι έναν ομότιμο. Το PersistentKeepalive του WireGuard υπάρχει για κατάσταση NAT και τείχους προστασίας, και οι ίδιες οι σημειώσεις του έργου το περιγράφουν έτσι και όχι ως έλεγχο υγείας. Ένα διάστημα λίγων δεκάδων δευτερολέπτων κρατά μια καταχώριση ζεστή, ενώ ένα πακέτο κάθε δευτερόλεπτο είναι απόφαση μπαταρίας και όχι αξιοπιστίας. OpenVPN φτάνει στο ίδιο σημείο μέσω ping και ping-restart , που αντιλαμβάνονται πρώτα τη σιωπή και μετά ενεργούν.

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

Όταν η σχέση έχει χαθεί

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

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

Τι δεν αποδεικνύει κανένα από τα δύο

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

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

Ο αποκλεισμός της άμεσης κίνησης είναι ξεχωριστή απόφαση

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

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

Γράψτε την πολιτική, όχι μόνο τον αριθμό

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

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

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