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

Τι ξαναγράφει η επιλογή

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

Δεν μικραίνει τα πακέτα UDP και δεν ορίζει το MTU της σήραγγας. Δύο διαφορετικά προβλήματα δίνουν το ίδιο σύμπτωμα: ένας αποστολέας TCP που αγνοεί το όριο της διαδρομής και μια διαδρομή που ρίχνει σιωπηλά μεγάλα πακέτα σε οποιοδήποτε μέγεθος. Το mssfix ασχολείται με το πρώτο και δεν κάνει τίποτα για το δεύτερο.

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

Η εμβέλεια είναι το TCP μέσα στη σήραγγα

Μόνο η κίνηση TCP ξαναγράφεται. Μια συνεδρία QUIC, ένα παιχνίδι ή μια εφαρμογή που στέλνει μεγάλα πακέτα UDP θα κρατήσει τα δικά της μεγέθη πακέτων, και αν αυτές είναι οι μεταφορές που κολλάνε, η διόρθωση ανήκει μάλλον στο MTU της σήραγγας ή της διαδρομής. Διαβάστε ποιο πρωτόκολλο χρησιμοποιεί η αποτυχημένη μεταφορά πριν φτάσετε σε μια επιλογή TCP, γιατί το λάθος επίπεδο έχει τη δική του διόρθωση.

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

Ο αριθμός και η λέξη-κλειδί δεν είναι φορητά

Η κοινοτική έκδοση του OpenVPN 2.6 δέχεται μια προαιρετική λέξη-κλειδί μετά την τιμή. Με το mtu, ο αριθμός περιγράφει το μέγεθος του εξωτερικού πακέτου μαζί με τις κεφαλίδες IP και UDP· χωρίς αυτό, το όρισμα ακολουθεί διαφορετική λογιστική σύμβαση. Μια γραμμή που αντιγράφεται μεταξύ εκδόσεων δεν περιγράφει επομένως τον ίδιο προϋπολογισμό πακέτων. Ελέγξτε τη σελίδα εγχειριδίου που συνοδεύει την έκδοση που εκτελείτε πραγματικά, αντί για ένα φροντιστήριο για άλλη έκδοση.

Η σύνταξη μοιάζει έτσι:

mssfix 1400 mtu

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

Επιβεβαιώστε πρώτα στον έναν πελάτη

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

ping -M do -s 1472 10.8.0.1
ping -M do -s 1400 10.8.0.1

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

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

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