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

Τι μετρά ο αριθμός

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

systemctl show -p ActiveEnterTimestamp --value openvpn-server@server
uptime -s
systemctl is-active openvpn-server@server

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

Μια διεργασία μπορεί να τρέχει ενώ η διαδρομή είναι κάτω

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

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

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

Φρεσκάδα: η αναφορά είναι παλαιότερη από την προσπάθειά σας

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

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

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

Τι να δοκιμάσετε αντ’ αυτού

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

nc -vz -w 5 vpn.example.net 1194
curl -sS -o /dev/null -w '%{time_connect} %{time_appconnect} %{time_total}\n' https://vpn.example.net/
mtr -rwc 20 vpn.example.net

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

Διαβάζοντας δημόσιες λίστες κόμβων χωρίς να παραπλανηθείτε

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

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

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

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