Ένας χρήστης αναφέρει ότι η εσωτερική εφαρμογή λειτουργεί από έναν υπολογιστή και αποτυγχάνει από έναν άλλο, ενώ το ping που εκτελείτε από την πύλη πετυχαίνει και στις δύο περιπτώσεις. Με πολλές σήραγγες ίσου κόστους, αυτό δεν είναι αντίφαση. Κάθε ροή τοποθετείται στο δικό της επόμενο άλμα, οπότε ο έλεγχός σας και η συνεδρία του χρήστη μπορεί απλώς να χρησιμοποιούν διαφορετικές διαδρομές. Η παρακάτω ανάλυση αναπαράγει αυτή την επιλογή πριν αλλάξει οτιδήποτε.

Ένα ping, πολλές πιθανές διαδρομές

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

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

Πώς η πλατφόρμα διαλέγει επόμενο άλμα

Αναπαράγετε την επιλογή αντί να τη μαντεύετε. Ρωτήστε τον πυρήνα ποια διαδρομή θα χρησιμοποιούσε για την ίδια προέλευση και προορισμό με τη συνεδρία που αποτυγχάνει. Αυτή η αναζήτηση περιλαμβάνει πεδία που μια απλή αναζήτηση προορισμού αγνοεί. Εκτελέστε την και από έναν πελάτη που λειτουργεί και συγκρίνετε τις δύο απαντήσεις:

ip route get 10.20.5.7 from 10.20.0.14

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

ObservationLikely causeFirst check
Ping works, application failsA different flow hash selects another tunnelPer-flow lookup from the client's address
Some users fail, others do notOne tunnel lacks a prefix or selectorCompare both tunnels' installed routes
Fails only at larger sizesTunnels have different effective MTUProbe the same size over each path
Fails after a reconnectStateful asymmetry between pathsSession state on both gateways

Ακολουθήστε τη ροή που αποτυγχάνει, όχι τον πίνακα δρομολόγησης

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

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

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

Συγκρίνετε μία διαδρομή κάθε φορά

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

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

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

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