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

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

Το αστέρι είναι απάντηση που λείπει, όχι άλμα που λείπει

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

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

Η μέθοδος του ανιχνευτή καθορίζει ποιο φίλτρο θα συναντήσετε

Η προεπιλεγμένη μέθοδος στο Linux είναι συνήθως θύρα προορισμού UDP με υψηλό αριθμό, το tracert των Windows στέλνει ηχώ ICMP, και το Linux μπορεί να πάρει εντολή να χρησιμοποιήσει ICMP ή TCP αντί γι' αυτό. Καθένα από αυτά μοιάζει με διαφορετικό είδος κίνησης για ένα τείχος προστασίας με κατάσταση ή για μια ομάδα ασφαλείας cloud. Το να συγκρίνετε ένα ίχνος UDP από τη μία πλευρά με ένα ίχνος ICMP από την άλλη συγκρίνει δύο διαφορετικά πειράματα. Καρφιτσώστε τη μέθοδο, την οικογένεια διευθύνσεων, τη διεύθυνση πηγής και το χρονικό όριο πριν ονομάσετε τα αποτελέσματα διαφορά.

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

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

Η διαδρομή επιστροφής είναι δική της διαδρομή

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

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

Επιβεβαιώστε τη σήραγγα με πραγματικό αίτημα

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

traceroute -I -n -w 2 203.0.113.40
traceroute -T -p 443 -n -w 2 203.0.113.40
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' --max-time 5 http://203.0.113.40:8080/health
ss -tan state established

Διαβάστε πρώτα τις δύο εκτελέσεις traceroute: αν η εκτέλεση ICMP δείχνει άλματα και η εκτέλεση TCP όχι, η διαφορά είναι στη μέθοδο, όχι στο μονοπάτι. Μετά πάρτε το αποτέλεσμα του curl ως απάντηση σε επίπεδο εφαρμογής, γιατί μια ολοκληρωμένη ανταλλαγή με λογικό κωδικό κατάστασης σημαίνει ότι η εμπρόσθια και η διαδρομή επιστροφής δουλεύουν για πραγματική κίνηση. Η λίστα υποδοχών δείχνει αν η σύνδεση έχει καθιερωθεί καθόλου, κάτι που κανένα ίχνος δεν μπορεί να σας πει.

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

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