Ποιος επιλέγει το MTU του WireGuard: το wg-quick, ο πυρήνας ή εσείς
Το WireGuard δεν διαπραγματεύεται κανένα MTU. Το εργαλείο ρύθμισης, ένας διαχειριστής δικτύου ή η γραμμή ρυθμίσεών σας αποφασίζει, και η προεπιλογή είναι μια εικασία για τη διαδρομή, όχι μέτρηση.
Το WireGuard δεν έχει καμία διαπραγμάτευση MTU. Κρυπτογραφεί ό,τι του δώσει η διεπαφή και στέλνει το αποτέλεσμα, και αν το ενθυλακωμένο πακέτο ξεπεράσει τη διαδρομή, απορρίπτεται ή κατακερματίζεται κάπου που δεν μπορείτε να δείτε. Κάποιος πρέπει να επιλέξει το MTU της διεπαφής, και αυτός ο κάποιος είναι το εργαλείο που ανέβασε τη διεπαφή.
Υπάρχουν τρεις υποψήφιοι, και είναι εύκολο να τους μπερδέψετε.
Τρία σημεία από τα οποία μπορεί να προέλθει η τιμή
Η τιμή μπορεί να οριστεί ρητά στη διαμόρφωση της διεπαφής, να υπολογιστεί από το εργαλείο ρύθμισης βάσει πληροφοριών δρομολόγησης, ή να οριστεί από όποιον διαχειριστή δικτύου κατέχει τη διεπαφή. Μια συνηθισμένη κλήση wg δεν κάνει τίποτα από αυτά, επειδή το wg διαχειρίζεται μόνο κλειδιά και ομοτίμους. Το MTU ζει στη διεπαφή δικτύου, γι’ αυτό το ip link show wg0 είναι εκεί όπου το διαβάζετε.
Αν δεν είστε σίγουροι ποια περίπτωση ισχύει, διαβάστε πρώτα το MTU και μετά βρείτε ποιος ξεκίνησε τη διεπαφή.
Αποφασίστε με βάση το ποιος τρέχει τη διεπαφή
Αν την ξεκινά το wg-quick, κερδίζει μια ρητή γραμμή MTU, αλλιώς υπολογίζει μια τιμή. Αν την ξεκινά ένας διαχειριστής δικτύου, αποφασίζει το προφίλ εκείνου του διαχειριστή. Αν την ξεκινά ένα περιβάλλον εκτέλεσης κοντέινερ ή ένας πελάτης παρόχου, διαβάστε την τεκμηρίωσή τους αντί να υποθέσετε τη συμπεριφορά του wg-quick.
Η απόφαση δεν είναι ποιος αριθμός είναι καλύτερος αφηρημένα. Είναι ποιο στοιχείο μπορείτε πραγματικά να ρυθμίσετε.
Τι κάνει ο προεπιλεγμένος υπολογισμός
Το wg-quick αναζητά τη διαδρομή προς το τελικό σημείο του ομοτίμου, παίρνει το MTU εκείνης της εξερχόμενης διεπαφής και αφαιρεί το κόστος ενθυλάκωσης. Με εξωτερική κεφαλίδα IPv4 αυτό είναι περίπου 60 byte, με IPv6 περίπου 80. Το αποτέλεσμα περιορίζεται ώστε μια διαδρομή 1500 byte να δίνει 1420 αντί για μια τιμή που λειτουργεί μόνο σε μία οικογένεια διευθύνσεων. Αυτή είναι μια λογική προεπιλογή, όχι μέτρηση της διαδρομής σας.
Δεν μπορεί να γνωρίζει για μεταγενέστερη σήραγγα, κινητό σύνδεσμο ή φιλτραρισμένη διαδρομή ICMP.
Το όριο κρύβει ένα πραγματικό ερώτημα. Αν η διαδρομή σας είναι πραγματικά 9000 byte από άκρη σε άκρη, το 1420 αφήνει επιδόσεις στο τραπέζι, και αν η διαδρομή είναι 1400, το 1420 είναι ήδη πολύ μεγάλο. Η προεπιλογή είναι συμβιβασμός, και έτσι πρέπει να αντιμετωπίζεται.
Όταν η διαδρομή αλλάζει κάτω από εσάς
Ένας φορητός υπολογιστής που περιπλανιέται από το Ethernet στο Wi-Fi και μετά σε hotspot κινητού κρατά το MTU της διεπαφής με το οποίο ξεκίνησε. Η εξωτερική διαδρομή μπορεί τώρα να είναι μικρότερη, και τίποτα δεν επαναδιαπραγματεύεται. Οι ένθετες σήραγγες το χειροτερεύουν, γιατί κάθε επίπεδο αφαιρεί το δικό του κόστος από τον ίδιο προϋπολογισμό. Η τιμή που δούλευε στο γραφείο δεν είναι η τιμή που δουλεύει στο αεροδρόμιο.
Μια πρόσφατη χειραψία αποδεικνύει ότι τα κλειδιά δουλεύουν. Δεν αποδεικνύει τίποτα για το αν χωρούν τα μεγάλα πακέτα.
Δοκιμάστε έναν αριθμό κάθε φορά
Κρατήστε την ίδια εφαρμογή και προορισμό, αλλάξτε μία τιμή και μετρήστε. Το ping -M do -s 1372 δοκιμάζει ένα πακέτο 1400 byte με το bit DF ενεργό, και αυτή είναι η μορφή δοκιμής που θέλετε. Αν τα μικρά αιτήματα δουλεύουν και τα μεγάλα κολλάνε, έχετε πρόβλημα μεγέθους και όχι δρομολόγησης.
Αλλάξτε μόνο το MTU. Η ταυτόχρονη ρύθμιση πολλών επιλογών πακέτου δεν σας λέει ποια είχε σημασία.
Και μην περιμένετε μια αλλαγή MTU να διορθώσει μια απούσα διαδρομή επιστροφής, έναν κανόνα προώθησης ή μια αποτυχία DNS. Κι αυτά παράγουν συμπτώματα χωρίς κίνηση, και έχουν τις δικές τους δοκιμές. Το εγχειρίδιο του wg-quick τεκμηριώνει την αυτόματη επιλογή.