Πακέτο IPv6 πολύ μεγάλο: γιατί κολλούν οι μεγάλες μεταφορές VPN
Μικρές απαντήσεις φτάνουν και οι μεγάλες μεταφορές κολλούν μέσα από το ίδιο τούνελ. Ο αποστολέας δεν έμαθε ποτέ το μέγεθος της διαδρομής, και ένα φιλτραρισμένο μήνυμα ελέγχου το εξηγεί.
Το ping λειτουργεί, ο περιηγητής φορτώνει μια μικρή σελίδα και η μεταφορά αρχείου κολλάει, όλα πάνω από IPv6 μέσα από το ίδιο τούνελ. Αυτό το μοτίβο συνήθως σημαίνει ότι ο αποστολέας δεν έμαθε ποτέ το πραγματικό μέγεθος της διαδρομής, όχι ότι το τούνελ είναι αργό. Το IPv6 περιμένει από τους δρομολογητές να αναφέρουν το πρόβλημα με μήνυμα Packet Too Big, και η ενθυλάκωση προσθέτει επιπλέον κόστος πριν το πακέτο φτάσει στο εξωτερικό δίκτυο. Αν αυτό το μήνυμα φιλτράρεται, ο αποστολέας επαναλαμβάνει ένα μέγεθος που δεν μπορεί να περάσει.
Μικρά αιτήματα, μεγάλα κολλήματα
Ένα τούνελ τυλίγει κάθε πακέτο σε μια ακόμη κεφαλίδα, άρα το χρησιμοποιήσιμο μέγεθος μέσα είναι μικρότερο από το μέγεθος έξω. Ένα πακέτο που είχε διαστασιολογηθεί για τον φυσικό σύνδεσμο πριν από την ενθυλάκωση γίνεται μετά πολύ μεγάλο. Οι δρομολογητές IPv4 μπορούν να κατακερματίζουν στη διαδρομή, ενώ οι δρομολογητές IPv6 δεν το κάνουν για λογαριασμό του αποστολέα, οπότε ο αποστολέας πρέπει να προσαρμοστεί ο ίδιος. Και αυτή η προσαρμογή εξαρτάται εξ ολοκλήρου από τη λήψη της ανατροφοδότησης.
Ένα μόνο χαμένο μήνυμα αρκεί για το κλασικό σύμπτωμα: οι χειραψίες και οι μικρές απαντήσεις πετυχαίνουν, και μια λίστα καταλόγου ή ένα ανέβασμα κολλάει στο ίδιο σημείο κάθε φορά. Οι χρήστες το περιγράφουν ως αργό VPN, και τα αρχεία καταγραφής δεν δείχνουν τίποτα λάθος στην ταυτοποίηση. Και οι δύο παρατηρήσεις είναι ακριβείς και καμία από τις δύο δεν εντοπίζει τη βλάβη.
Το Packet Too Big είναι ανατροφοδότηση, όχι κίνηση
Ένα μήνυμα ICMPv6 Packet Too Big μεταφέρει το μέγεθος που μπορεί να δεχτεί το επόμενο άλμα, και ο αποστολέας το χρησιμοποιεί για να μειώσει την εκτίμησή του. Το να το φιλτράρεις ισοδυναμεί με το να αφαιρέσεις μια πινακίδα δρόμου και μετά να κατηγορήσεις τους οδηγούς. Ένας κανόνας που ρίχνει όλο το ICMPv6 φαίνεται αυστηρός ενώ σπάει την ανακάλυψη διαδρομής σε κάθε ζεύξη που τη χρειάζεται. Το μήνυμα είναι πληροφορία ελέγχου για τη διαδρομή, όχι ωφέλιμο φορτίο εφαρμογής.
Το επιλεκτικό φιλτράρισμα εξακολουθεί να είναι λογικό. Τα αιτήματα ηχούς και η ανακάλυψη γειτόνων παίζουν διαφορετικό ρόλο από τα μηνύματα σφάλματος, και μια πολιτική μπορεί να τα αντιμετωπίζει διαφορετικά. Ακολουθήστε τις τεκμηριωμένες οδηγίες φιλτραρίσματος της πλατφόρμας αντί να δέχεστε ή να απορρίπτετε ολόκληρο το πρωτόκολλο, γιατί το RFC 8201 καθορίζει πώς αυτή η ανατροφοδότηση οδηγεί την ανακάλυψη.
Δοκιμάστε και τις δύο οικογένειες διευθύνσεων χωριστά
Δοκιμάστε το IPv6 μόνο του, γιατί μια επιτυχημένη μεταφορά IPv4 δεν αποδεικνύει τίποτα για τη διαδρομή IPv6. Στη συνέχεια καταγράψτε μηνύματα ελέγχου όσο η μεγάλη μεταφορά κολλάει. Οι δύο καταγραφές μαζί είτε δείχνουν ότι η ανατροφοδότηση φεύγει είτε αποδεικνύουν ότι δεν έφτασε ποτέ.
ping -6 -M do -s 1400 host.internal
ip -6 route get 2001:db8:2::10
sudo tcpdump -ni any 'icmp6 and ip6[40] == 2'
Ο ανιχνευτής στέλνει ένα πακέτο με το bit do-not-fragment ενεργό και αναφέρει το μέγεθος στο οποίο αποτυγχάνει, που είναι ο αριθμός που πρέπει να χωρέσει το τούνελ. Το ερώτημα διαδρομής ονομάζει τη διεπαφή που θα μετέφερε τον προορισμό, ώστε να ξέρετε ποιο MTU ζεύξης ισχύει. Η καταγραφή φιλτράρει το ICMPv6 τύπου 2, το μήνυμα Packet Too Big, και δείχνει αν φτάνει καθόλου σε αυτόν τον κεντρικό υπολογιστή. Αν το μήνυμα εμφανίζεται στην καταγραφή και η μεταφορά ακόμη κολλάει, ο αποστολέας το αγνοεί, κάτι που μεταφέρει την έρευνα στη στοίβα αντί στο δίκτυο.
Ρυθμίστε το μέγεθος του τούνελ μόνο μετά τα στοιχεία
Η μείωση του MTU του τούνελ μπορεί να κρύψει ένα φιλτραρισμένο μήνυμα και να εξαφανίσει το σύμπτωμα, με κόστος περισσότερου επιπλέον φόρτου σε κάθε πακέτο. Είναι παράκαμψη και όχι διάγνωση, και πρέπει να ακολουθεί την καταγραφή αντί να την αντικαθιστά. Μια αυθαίρετα χαμηλή τιμή επίσης δεν σπάει τίποτα ορατό, γι’ αυτό επιβιώνει σε ρυθμίσεις για χρόνια. Αλλάξτε την συνειδητά, καταγράψτε την τιμή και σημειώστε ποια μέτρηση τη δικαιολόγησε.
Όταν ελέγχετε την πύλη, εξετάστε τον κανόνα που ρίχνει το μήνυμα αντί να απενεργοποιήσετε το τείχος προστασίας. Ένας διορθωμένος κανόνας είναι στενότερος από μια εξαίρεση πολιτικής και πολύ ευκολότερος να υπερασπιστείς αργότερα. Η ίδια λογική ισχύει και για τα χρονικά όρια: δεν είναι κάθε κόλλημα πρόβλημα μεγέθους, και η καταγραφή είναι αυτό που ξεχωρίζει τα δύο.