Τι περιμένει στην πραγματικότητα το gateway-ping-timeout στο NetworkManager
Ακολουθήστε μια ενεργοποίηση από το nmcli μέσα από την αναμονή: μια απάντηση ή το χρονικό όριο την τερματίζει, και κανένα από τα δύο δεν αποδεικνύει ότι το τούνελ ή η εφαρμογή είναι έτοιμα.
Βρίσκετε connection.gateway-ping-timeout σε ένα νήμα για φορητό υπολογιστή που ξεκινά πριν το δίκτυο γίνει χρησιμοποιήσιμο, το αυξάνετε, και κάτι αλλάζει. Το αν η αλλαγή βοήθησε για τον λόγο που νομίζετε είναι ξεχωριστό ερώτημα. Η απάντηση ξεκινά με το τι κάνει στην πραγματικότητα η ενεργοποίηση όσο τρέχει αυτό το χρονόμετρο, και με το γεγονός ότι η αναμονή έχει δύο πιθανά τέλη.
Ακολουθήστε μια σύνδεση από τη γραμμή εντολών και η σημασιολογία γίνεται συγκεκριμένη.
Ακολουθήστε μια ενεργοποίηση
Ξεκινήστε κοιτάζοντας την αποθηκευμένη σύνδεση αντί για μια καθολική προεπιλογή, γιατί αυτή είναι ιδιότητα ανά σύνδεση. Προσθέστε --show-secrets μόνο αν το χρειάζεστε πραγματικά· η ίδια η ρύθμιση δεν είναι μυστικό.
nmcli -f connection.id,connection.gateway-ping-timeout connection show
nmcli connection show "Wired connection 1" | grep gateway-ping
Με την ιδιότητα στο μηδέν, που είναι η τεκμηριωμένη προεπιλογή, η ενεργοποίηση προχωρά μόλις ολοκληρωθεί η διευθυνσιοδότηση. Ορίστε τη σε θετική τιμή και η ενεργοποίηση της διαμόρφωσης IP περιμένει είτε να φτάσει απάντηση από την πύλη είτε να λήξει το χρονικό όριο.
Στη συνέχεια κατεβάστε και ανεβάστε τη σύνδεση παρακολουθώντας τη ροή γεγονότων. Η σειρά που βλέπετε είναι η ρύθμιση να κάνει τη δουλειά της: κατάσταση συσκευής, διευθυνσιοδότηση, η αναμονή και τέλος η ενεργοποιημένη κατάσταση κατά την οποία συνήθως ταξινομούνται οι εξαρτημένες υπηρεσίες.
Η αναμονή έχει δύο τέλη
Και τα δύο τέλη έχουν σημασία, και οι περισσότεροι θυμούνται μόνο το ένα. Μια απάντηση από την πύλη τελειώνει νωρίτερα την αναμονή, και το χρονικό όριο την τελειώνει επίσης, είτε απάντησε κάτι είτε όχι. Η ιδιότητα δεν απαιτεί επιτυχημένο ping για να ολοκληρωθεί η ενεργοποίηση.
Αυτή η μία πρόταση ξεκαθαρίζει πολλή σύγχυση γύρω από φορητούς σε ξενοδοχεία και συνεδριακά κέντρα, όπου μια πύλη σύνδεσης αρνείται συχνά το ICMP μέχρι να συνδεθείτε. Η σύνδεση ενεργοποιείται παρόλα αυτά μετά τη λήξη του χρονικού ορίου· απλώς το κάνει αργότερα απ’ όσο χρειαζόταν, και κάθε υπηρεσία που ταξινομείται μετά τη σύνδεση περιμένει μαζί της.
Δεν είναι ούτε έλεγχος ζωτικότητας. Τίποτα στην περιγραφή δεν αρχίζει να κάνει ping σε μια πύλη αφού ανέβει η σύνδεση, και τίποτα δεν αποσυνδέει ένα ενεργό προφίλ επειδή ένα μεταγενέστερο ping αποτυγχάνει. Αν χρειάζεστε ανίχνευση απωλειών, αυτό ανήκει στο πρωτόκολλο ή στον ιδιοκτήτη του τούνελ, όχι σε μια ιδιότητα που έτρεξε μία φορά κατά την ενεργοποίηση.
Δύο αντικείμενα, μία ρύθμιση
Το ενσύρματο βασικό προφίλ και ένα προφίλ VPN είναι ξεχωριστά αντικείμενα διαμόρφωσης, και ο ορισμός της ιδιότητας στο ένα δεν επηρεάζει το άλλο. Ένα προφίλ VPN που ονομάζει μια βασική σύνδεση δεν κληρονομεί καμία από τις ρυθμίσεις ενεργοποίησής της, γι’ αυτό η τιμή που αλλάξατε μπορεί να φαίνεται ότι δεν έχει κανένα αποτέλεσμα σε αυτό που παρακολουθούσατε.
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show "Office VPN" | grep gateway-ping
Διαβάστε τα UUID και όχι τα ονόματα. Τα ονόματα διπλασιάζονται μετά από επανεγκατάσταση ή επαναφορά προφίλ, και δύο συνδέσεις με το ίδιο εμφανές όνομα θα σας βάλουν να επεξεργάζεστε το λάθος αρχείο ενώ η πραγματική μένει αμετάβλητη.
Η εγκατεστημένη έκδοση του NetworkManager έχει επίσης σημασία. Η συμπεριφορά του πρόσθετου και το πώς ένας τύπος σύνδεσης αντιστοιχίζει αυτή την ιδιότητα στα δικά του βήματα ενεργοποίησης ποικίλλουν, γι’ αυτό δοκιμάστε στην έκδοση που αναπτύσσετε αντί να υποθέτετε ότι ένα άρθρο που βρήκατε ισχύει αναλλοίωτο.
Τι δεν μπορεί να πιστοποιήσει η αναμονή
Εδώ είναι το μέρος που κοστίζει τον περισσότερο χρόνο. Μια απάντηση από τον τοπικό δρομολογητή αποδεικνύει ότι ένας υπολογιστής απάντησε σε μία ηχώ ICMP κατά την ενεργοποίηση. Δεν αποδεικνύει ότι επιλύεται ένα τελικό σημείο VPN, ότι γίνεται αποδεκτή η ταυτότητα του πελάτη, ότι εγκαταστάθηκαν ιδιωτικές διαδρομές, ότι απαντά ο resolver του γραφείου ή ότι θα λειτουργήσει η εφαρμογή που σας ενδιαφέρει.
Αυτές είναι ξεχωριστές εξαρτήσεις με ξεχωριστές αποδείξεις. Μια πύλη μπορεί να απαντά ενώ το DNS αποτυγχάνει, και μια πύλη μπορεί να απορρίπτει σιωπηλά το ICMP κατά πολιτική ενώ κάθε διαδρομή εφαρμογής λειτουργεί. Το να εξαρτάτε τα πάντα από αυτή την ιδιότητα είναι επομένως μια εικασία για το ποιο επίπεδο αργεί, όχι μέτρησή του.
Αν περιμένετε μια εξαρτημένη υπηρεσία, ονομάστε τι χρειάζεται. Μια εκχωρημένη διεύθυνση απαντιέται από τη διευθυνσιοδότηση. Ένα τούνελ απαντιέται από την κατάσταση του ίδιου του τούνελ. Ένα ιδιωτικό όνομα απαντιέται από ένα ερώτημα. Μια εφαρμογή απαντιέται από την εφαρμογή, και καμία από αυτές τις απαντήσεις δεν προέρχεται από χρονόμετρο που ονομάστηκε από την πύλη.
Αν το αλλάξετε, γράψτε γιατί
Καταγράψτε την προηγούμενη τιμή και τον λόγο πριν από μια εγκεκριμένη αλλαγή, και μετά ορίστε τη στη συγκεκριμένη σύνδεση αντί παντού. Μια μεγαλύτερη αναμονή μετατοπίζει τον χρόνο ενεργοποίησης για ό,τι ταξινομείται μετά από αυτή τη σύνδεση, κάτι που μπορεί να κάνει ένα αργό σύστημα να φαίνεται καλό και ένα γρήγορο χαλασμένο.
Μια ιστορική παγίδα αξίζει να αναφερθεί: μια τέτοια τιμή μερικές φορές αλλάζει για να δεχτεί ένας παλαιότερος επεξεργαστής ένα προφίλ. Αν αυτή είναι η πραγματική ιστορία, έχετε δύο γεγονότα, όχι ένα. Ο επεξεργαστής αποθήκευσε και μια ζωντανή πολιτική δικτύου άλλαξε. Διορθώστε τον επεξεργαστή ή το πρόσθετο και επαναφέρετε το χρονόμετρο.
Ο πηγαίος κώδικας του NetworkManager ορίζει την ιδιότητα ως καθυστέρηση της επιτυχίας της διευθυνσιοδότησης IP έως μια απάντηση πύλης ή το χρονικό όριο, με προεπιλογή μηδέν, και ο ορισμός της ρύθμισης σύνδεσης είναι η αναφορά που πρέπει να διαβάσετε πριν βασιστείτε σε οποιαδήποτε συμπεριφορά περιγράφεται από δεύτερο χέρι.