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

1. Γράψτε τον προορισμό και την προέλευση

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

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

2. Ρωτήστε τον πυρήνα ποια διαδρομή διάλεξε

Μην διαβάσετε τον πίνακα διαδρομών και μην συμπεράνετε την απάντηση. Κάντε την ίδια ερώτηση που κάνει η στοίβα, με την ίδια διεύθυνση προέλευσης: ip route get 10.20.4.10 from 10.8.0.2 σε Linux ή Find-NetRoute -RemoteIPAddress 10.20.4.10 σε PowerShell. Η έξοδος ονομάζει τη διαδρομή που θα χρησιμοποιούνταν πραγματικά, και συχνά δεν είναι αυτή που περιμένατε διαβάζοντας τον πίνακα.

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

3. Ελέγξτε αν ένας κανόνας πολιτικής ανακατεύθυνε την αναζήτηση

Πριν εξεταστεί ο πίνακας διαδρομών, ο πυρήνας διατρέχει τους κανόνες πολιτικής του. Ένας κανόνας μπορεί να στείλει την κίνηση από δεδομένη προέλευση, χρήστη ή σήμανση τείχους προστασίας σε εντελώς άλλον πίνακα, οπότε το νικητήριο πρόθεμα στον κύριο πίνακα μπορεί να μην εξεταστεί ποτέ για αυτή τη ροή. Η εντολή ip rule show τους απαριθμεί με σειρά αξιολόγησης, και η εντολή ip route show table 100 δείχνει τι περιέχει πραγματικά ο επιλεγμένος πίνακας.

Εδώ κρύβονται δύο παγίδες. Ένας κανόνας που δείχνει σε κενό πίνακα παράγει αναζήτηση που πέφτει στον επόμενο κανόνα, οπότε ο κανόνας φαίνεται να μην κάνει τίποτα. Η άλλη είναι ο ίδιος ο αριθμός προτεραιότητας: οι κανόνες διαβάζονται αύξοντα, και οι ενσωματωμένες τιμές είναι 0 local, 32766 main και 32767 default. Ένας κανόνας με αριθμό κάτω από 32767 εξετάζεται πριν από τον προεπιλεγμένο κανόνα που πιάνει τα πάντα. Ένας κανόνας με αριθμό πάνω από 32767 βρίσκεται πίσω του και φτάνει μόνο όταν κανένας προηγούμενος πίνακας δεν απαντήσει, κάτι που μια κανονική προεπιλεγμένη διαδρομή στο main εμποδίζει, οπότε στην πράξη δεν φτάνει ποτέ και σιωπηλά δεν κάνει τίποτα ενώ φαίνεται εγκατεστημένος. Αν ο πελάτης έγραψε κανόνα και διαδρομή, ελέγξτε και τα δύο, και ελέγξτε τα ξανά μετά από επανασύνδεση, γιατί ένα ξαναγραμμένο προφίλ μπορεί να προσθέσει δεύτερο κανόνα με διαφορετική προτεραιότητα.

4. Διαχωρίστε μια ισοπαλία δρομολόγησης από ένα διπλό σχέδιο διευθύνσεων

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

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

5. Επιβεβαιώστε ότι ο επιλυτής συμφωνεί με τη διαδρομή

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

Ρωτήστε τον επιλυτή απευθείας και σημειώστε τον διακομιστή που απάντησε. Μια αποθηκευμένη απάντηση με σύντομο TTL μπορεί επίσης να εξηγήσει γιατί το πρώτο αίτημα μετά από επανασύνδεση συμπεριφέρεται διαφορετικά από το πέμπτο.

6. Επανασυνδεθείτε, εξετάστε την εφαρμοσμένη κατάσταση και μετά δοκιμάστε και τις δύο ροές

Μετά από μια διόρθωση, επανασυνδεθείτε και εξετάστε τι εγκατέστησε πραγματικά ο πελάτης αντί να εμπιστευτείτε τον επεξεργαστή προφίλ. Διαβάστε ξανά τους κανόνες, τους πίνακες και την απάντηση ip route get που προκύπτει. Ένας δεύτερος πελάτης μπορεί να επανεγκαταστήσει τη δική του διαδρομή κατά τη σύνδεση και να αναδημιουργήσει τη σύγκρουση, γι’ αυτό ο έλεγχος κατάστασης πρέπει να γίνεται αφού συνδεθεί ο τελευταίος πελάτης, όχι πριν.

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

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