Είναι η χαμηλή διαμεταγωγή του VPN πρόβλημα εντροπίας; Συνήθως όχι
Μια καθυστέρηση εκκίνησης που περιμένει τυχαίους αριθμούς και ένα αργό τούνελ είναι διαφορετικές βλάβες. Μετρήστε ποια έχετε πριν αλλάξετε την αρχικοποίηση ή τα buffer.
Η χαμηλή διαμεταγωγή μέσα από ένα τούνελ και ένα μηχάνημα που έχει κολλήσει περιμένοντας τυχαίους αριθμούς παράγουν πολύ διαφορετικές εμπειρίες, αλλά καταγράφονται κάτω από το ίδιο παράπονο. Το ένα εμφανίζεται ως παύση πριν λειτουργήσει οτιδήποτε. Το άλλο εμφανίζεται ως σύνδεση που λειτουργεί και μετακινεί δεδομένα αργά όσο την παρακολουθείτε. Το να αποφασίσετε ποιο έχετε παίρνει δέκα λεπτά και γλιτώνει μια εβδομάδα εικασιών.
Δύο συμπτώματα που μοιάζουν
Μια υπηρεσία που κολλάει μετά από μια φρέσκια εκκίνηση, πριν δεχτεί έστω μία σύνδεση, περιμένει κάτι. Ένα τούνελ που στήνεται γρήγορα και μετά μεταφέρει με ένα κλάσμα του αναμενόμενου ρυθμού περιορίζεται από κάτι άλλο. Η λέξη κρυπτογράφηση εμφανίζεται και στις δύο ιστορίες, γι’ αυτό συγχωνεύονται. Χωρίστε τις πριν αγγίξετε ένα αρχείο ρυθμίσεων.
Βάλτε χρονοσημάνσεις γύρω από την εκκίνηση, την πιστοποίηση, την επαναδιαπραγμάτευση κλειδιών και την ίδια τη μεταφορά. Μια μεγάλη καθυστέρηση πριν το τούνελ γίνει χρησιμοποιήσιμο δεν είναι χαμηλός σταθερός ρυθμός, και ο μέσος όρος των δύο σε έναν αριθμό καταστρέφει την απόδειξη.
systemd-analyze blame | head -10 journalctl -u [email protected] -o short-precise | head -40 cat /proc/sys/kernel/random/entropy_avail
Οι δύο πρώτες εντολές βάζουν την εργασία εκκίνησης σε χρονογραμμή. Η τρίτη εκτυπώνει την τιμή λογιστικής εντροπίας του πυρήνα, που είναι χρήσιμη ως ένα σημείο δεδομένων και άχρηστη ως μετρητής εύρους ζώνης.
Πώς μοιάζει στην πραγματικότητα μια αναμονή για τυχαίους αριθμούς
Ένα αίτημα για ασφαλή τυχαία byte μπορεί να μπλοκάρει μέχρι ο πυρήνας να αρχικοποιήσει την τυχαία πηγή του. Αυτό έχει τη μεγαλύτερη σημασία σε εικονικές μηχανές και μικρές ενσωματωμένες πλακέτες νωρίς στην εκκίνηση, όταν έχει συλλεχθεί λίγος περιβαλλοντικός θόρυβος. Δεν έπεται ότι κάθε κρυπτογραφημένο byte καταναλώνει φρέσκια εντροπία.
Οι σύγχρονες γεννήτριες αρχικοποιούνται μία φορά και μετά παράγουν έξοδο από μια ντετερμινιστική κατασκευή, επαναρχικοποιούμενες με το δικό τους πρόγραμμα. Η μαζική μεταφορά δεν αποστραγγίζει μια δεξαμενή byte προς byte, οπότε μια χαμηλή τιμή δεξαμενής κατά τη διάρκεια μιας αργής μεταφοράς δεν αποδεικνύει τίποτα για την αιτία.
strace -f -e trace=getrandom -p $(pidof openvpn) 2>&1 | head -20 dmesg | grep -i 'random\|crng'
Η πρώτη εντολή δείχνει αν η διεργασία κάθεται σε κλήση τυχαίων αριθμών όσο παρακολουθείτε. Η δεύτερη δείχνει τα δικά της μηνύματα αρχικοποίησης του πυρήνα, και εκεί γίνεται ορατό ένα κόλλημα πρώιμης εκκίνησης.
Καταγράψτε την έκδοση του πυρήνα και τη βιβλιοθήκη με την οποία η υπηρεσία συνδέεται πραγματικά, γιατί η συμπεριφορά διαφέρει μεταξύ υλοποιήσεων και μεταξύ εκδόσεων. Ένα ίχνος που λαμβάνεται μετά την ανάκαμψη συνήθως χάνει την παύση εντελώς.
Πώς μοιάζει στην πραγματικότητα η επίμονη βραδύτητα
Ένα τούνελ που μεταφέρει αργά καθ’ όλη τη διάρκεια περιορίζεται από τη διαδρομή δεδομένων. Ένα κορεσμένο νήμα, απώλεια εξωτερικών πακέτων, αναμεταδόσεις ή γεμάτες ουρές υποδοχών παράγουν καθένα αυτό το μοτίβο, και καθένα έχει τη δική του διόρθωση. Το συγκεντρωτικό ποσοστό CPU κρύβει ένα μόνο απασχολημένο νήμα, που είναι η πιο συνηθισμένη λανθασμένη ανάγνωση. Κοιτάξτε τον χρόνο ανά νήμα πριν κοιτάξετε το συνολικό φορτίο.
Μετρήστε και προς τις δύο κατευθύνσεις με συγκρίσιμη βάση και παρακολουθήστε τους μετρητές της διεπαφής αντί για την αναφορά της ίδιας της εφαρμογής.
ss -tin dst 203.0.113.10 nstat -az | grep -i 'drop\|retrans' ethtool -S eth0 | grep -i 'drop\|error'
Η πρώτη εντολή δείχνει την κατάσταση ουράς και συμφόρησης για έναν ομότιμο. Η δεύτερη και η τρίτη αναφέρουν απορρίψεις και αναμεταδόσεις στη στοίβα και στη διεπαφή, όπου η αιτία συνήθως εμφανίζεται πρώτα.
Διαλέξτε τη διόρθωση για το σημείο συμφόρησης που μετρήσατε
Αν τα στοιχεία δείχνουν πρώιμη αρχικοποίηση εκκίνησης, κοιτάξτε την υποστηριζόμενη διαδρομή αρχικοποίησης της πλατφόρμας, που σε μια εικονική μηχανή μπορεί να περιλαμβάνει μια τυχαία συσκευή που παρέχει ο οικοδεσπότης. Ένα είδωλο σπόρου που αντιγράφεται αναλλοίωτο σε πολλούς επισκέπτες δεν υποκαθιστά την ανεξάρτητη αρχικοποίηση.
Αν τα στοιχεία δείχνουν τη διαδρομή δεδομένων, ρυθμίστε αυτό στο οποίο δείχνουν οι μετρητές. Τα μεγέθη buffer βοηθούν όταν οι ουρές ξεχειλίζουν και δεν κάνουν τίποτα όταν ένα νήμα είναι κορεσμένο. Η εγκατάσταση ενός δαίμονα εντροπίας για να ανέβει ένας μετρητής δεν είναι επισκευή διαμεταγωγής, και η αλλαγή υποθέσεων αρχικοποίησης για να φαίνεται καλύτερο ένα γράφημα ανταλλάσσει μια ιδιότητα ασφάλειας με έναν αριθμό.
Δεχτείτε την αλλαγή μόνο όταν η ίδια μέτρηση βελτιώνεται υπό τις ίδιες συνθήκες. Ένας μεγαλύτερος μετρητής δεν είναι αποτέλεσμα· μια συντομότερη μετρημένη αναμονή ή μια ταχύτερη μεταφορά με αναγνωρισμένη αιτία είναι.