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

Τι κάνει κάθε οικογένεια

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

BehaviourIPv4IPv6
Router fragments an oversized packetAllowed while DF is clearNever
Signal returned to the senderICMP Fragmentation NeededICMPv6 Packet Too Big
Size that must always work68 bytes1280 bytes
Fragmentation possibleRouters or sourceSource only

Το IPv6 δεν έχει κατακερματισμό κατά τη διέλευση ούτε σημαία DF για να καθαριστεί, άρα δεν υπάρχει τίποτα να επιστρέψει κανείς όταν ένα πακέτο είναι υπερβολικά μεγάλο. Πρέπει να ειδοποιηθεί ο αποστολέας, και ο αποστολέας πρέπει να το πιστέψει.

Η σήραγγα στενεύει τη διαδρομή σιωπηλά

Ένα VPN προσθέτει εξωτερικές κεφαλίδες, και στην κρυπτογραφημένη περίπτωση και δεδομένα ακεραιότητας, πριν το πακέτο φύγει από τον υπολογιστή. Το εσωτερικό πακέτο μπορεί να χωρέσει στο MTU της διεπαφής που βλέπει, ενώ το εξωτερικό πακέτο υπερβαίνει το όριο του επόμενου ζεύγους, και γι' αυτό αυτό εμφανίζεται πρώτα σε μια σήραγγα. Χαμηλώστε σκόπιμα το MTU της διεπαφής σήραγγας, ή σφίξτε το TCP MSS στη διαδρομή, και σημειώστε ποιον αριθμό επιλέξατε και γιατί.

Το κόστος του ESP εξαρτάται από τη λειτουργία και τους αλγορίθμους, άρα το σωστό MTU σήραγγας είναι υπολογισμός και όχι σύμβαση. Ό,τι κι αν επιλέξετε, πρέπει να αφήνει χώρο για ένα πλήρες εσωτερικό πακέτο IPv6 1280 byte, γιατί κάθε ζεύξη IPv6 οφείλει να μεταφέρει τόσο. Μια σήραγγα που δεν μπορεί να μεταφέρει 1280 byte IPv6 δεν είναι πρόβλημα ρύθμισης· είναι σπασμένη διαδρομή για αυτή την οικογένεια. Αυτός ο περιορισμός είναι που εξαφανίζεται όταν μια τιμή MTU αντιγράφεται από εγκατάσταση μόνο με IPv4.

Γιατί το σύμπτωμα είναι κόλλημα

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

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

Μην απενεργοποιείτε τα μηνύματα από τα οποία εξαρτάται η δική σας διαδρομή και μετά περιγράφετε το αποτέλεσμα ως βλάβη του IPv6. Το ίδιο επιχείρημα ισχύει για τα μηνύματα Fragmentation Needed του IPv4, που είναι εξίσου αντιδημοφιλή στους συντάκτες τειχών προστασίας και εξίσου απαραίτητα.

Μετρήστε το όριο και μετά διορθώστε το επίπεδο

Ελέγξτε αντί να μαντέψετε: χρησιμοποιήστε τη σημαία don't-fragment στο IPv4 και σταθερά μεγέθη ωφέλιμου φορτίου στο IPv6, και καταγράψτε πού σταματούν οι απαντήσεις. ping -M do -s 1472 και ping -6 -s 1400 αρκούν για να καθορίσουν τη μορφή του προβλήματος, και tracepath αναφέρει το ανακαλυφθέν MTU διαδρομής στην πορεία.

Μετά διορθώστε το επίπεδο που κατέχει τον αριθμό: το MTU της διεπαφής σήραγγας, το σφίξιμο MSS για το TCP, ή την ίδια τη διαδρομή. Το RFC 8200 είναι η αναφορά για τον κανόνα του IPv6, και διαβάζεται γρηγορότερα από το περιστατικό που αποτρέπει.

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

Αντιμετωπίστε το όριο μεγέθους ως απόδειξη

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

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

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