Traceroute
Το Traceroute είναι το διαγνωστικό εργαλείο που αποκαλύπτει την κρυφή γεωγραφία του Διαδικτύου. Πληκτρολογήστε μία εντολή, λάβετε πίσω μια λίστα με κάθε δρομολογητή που διασχίζουν τα πακέτα σας στο δρόμο προς έναν προορισμό. Λειτουργεί λόγω μιας ασαφής δυνατότητας του πρωτοκόλλου IP - το πεδίο Time To Live - και εντοπίζει προβλήματα δικτύου εδώ και τριάντα χρόνια.
Το πλήρες κείμενο του άρθρου παρέχεται στα Αγγλικά παρακάτω.
Traceroute αποκαλύπτει τη σειρά των άλματα μεταξύ εσάς και ενός προορισμού. Κάθε γραμμή στην έξοδο είναι ένας δρομολογητής. ο χρόνος μετ' επιστροφής σάς λέει την καθυστέρηση σε αυτόν τον δρομολογητή. Όταν κάτι στο Διαδίκτυο είναι αργό ή χαλασμένο, το traceroute είναι συνήθως το πρώτο εργαλείο που κυκλοφορεί.
Πώς λειτουργεί: το τέχνασμα TTL
Κάθε πακέτο IP έχει ένα πεδίο Time To Live (TTL), το οποίο αρχικά προοριζόταν να αποτρέψει τη διαρκή κυκλοφορία πακέτων. Κάθε δρομολογητής μειώνει το TTL κατά ένα. Όταν το TTL φτάσει στο μηδέν, ο δρομολογητής απορρίπτει το πακέτο και στέλνει πίσω ένα μήνυμα ICMP "Υπέρβαση χρόνου" στην πηγή. Το
Traceroute οπλίζει αυτό:
- Στείλτε ένα πακέτο στον προορισμό με TTL=1. Ο πρώτος δρομολογητής το μειώνει στο 0, το ρίχνει, απαντά με "Υπέρβαση χρόνου" — αποκαλύπτεται ως hop 1.
- Send TTL=2. Ο πρώτος δρομολογητής μειώνεται στο 1 και προς τα εμπρός. ο δεύτερος δρομολογητής μειώνεται στο 0, πέφτει, απαντά — αποκαλύπτοντας το hop 2.
- Συνεχίστε να αυξάνετε μέχρι να φτάσετε στον προορισμό, ο οποίος απαντά με κάτι άλλο (μια θύρα που δεν είναι προσβάσιμη ή μια πραγματική απόκριση εφαρμογής). Τρεις ανιχνευτές ανά αναπήδηση είναι η προεπιλογή, γι' αυτό βλέπετε τρεις μετρήσεις RTT ανά γραμμή.
Οι τρεις τύποι ανιχνευτή
Διαφορετικές υλοποιήσεις traceroute αποστέλλουν διαφορετικά είδη ανιχνευτών:
- XPLZ28e
PLZ28eXPLZ2 πακέτα σε υψηλούς αριθμούς θυρών. Ο προορισμός απαντά με "μη προσβάσιμη θύρα". Προεπιλογή σε Linux/macOS.
- ICMP traceroute (Windows tracert): στέλνει πακέτα ICMP Echo Request. Ο προορισμός απαντά με Echo Reply. Καλύτερη συμπεριφορά μέσω ορισμένων τειχών προστασίας.
- TCP traceroute: στέλνει το TCP SYN σε μια συγκεκριμένη θύρα (συνήθως 80 ή 443). Χρήσιμο όταν ένας προορισμός ρίχνει UDP και ICMP αλλά δέχεται TCP σε γνωστή θύρα.
Το σωστό εργαλείο εξαρτάται από το τι ρίχνουν τα τείχη προστασίας της διαδρομής. Το
tcptracerouteσυχνά πετυχαίνει εκεί όπου αποτυγχάνει τοtraceroute.Ανάγνωση της τυπικής γραμμής εξόδου
A:
XPLZ514c.de1. (172.16.50.1) 18.234 ms 18.012 ms 17.998 ms
Ο αριθμός hop, το όνομα του δρομολογητή και η IP και, στη συνέχεια, τρεις μετρήσεις RTT. Οι αστερίσκοι
* * *σημαίνουν ότι ο δρομολογητής δεν ανταποκρίθηκε — είτε έριξε τον ανιχνευτή, απαντήσεις ICMP περιορισμένης ταχύτητας ή έχει διαμορφωθεί έτσι ώστε να μην αναγνωρίζεται. Οι αστερίσκοι είναι φυσιολογικοί και δεν σημαίνουν απαραίτητα πρόβλημα. Πολλοί δρομολογητές κορμού σκόπιμα δεν ανταποκρίνονται στο traceroute.Τι σας λένε τα hops
Τα ονόματα DNS των δρομολογητών έχουν νόημα. Το
ae1.cr1.fra4.deσάς λέει: συνάθροιση Ethernet bundle 1, core router 1, Frankfurt site 4, Germany. Οι μηχανικοί δικτύου μπορούν να διαβάσουν αυτά τα ονόματα όπως πινακίδες κυκλοφορίας και να σας πουν σε ποιον πάροχο ανήκει το μονοπάτι, σε ποια πόλη βρίσκεται το πακέτο και ακόμη και ποιον προμηθευτή εξοπλισμού (Cisco vs Juniper vs Arista) χρησιμοποιεί ο χειριστής. Η υποβέλτιστη δρομολόγηση συμβαίνει συνεχώς και δεν αποτελεί απαραίτητα πρόβλημα.Το πρόβλημα ασύμμετρης διαδρομής
Traceroute δείχνει μόνο τη διαδρομή outbound. Η διαδρομή επιστροφής μπορεί να είναι - και συχνά είναι - εντελώς διαφορετική, επειδή κάθε AS επιλέγει τη δική του εξερχόμενη δρομολόγηση. Ένα υψηλό RTT σε ένα hop θα μπορούσε να σημαίνει έναν αργό σύνδεσμο εκεί ή θα μπορούσε να σημαίνει ότι ο αργός σύνδεσμος βρίσκεται στη διαδρομή επιστροφής από αυτό το hop. Χωρίς το traceroute από τον προορισμό πίσω σε εσάς, δεν μπορείτε να το καταλάβετε. Ο ανιχνευτής εξερευνά τη διαδρομή μία κατεύθυνση κάθε φορά.
Σύγχρονες εναλλακτικές: MTR και εργαλεία τύπου mtr
MTR (My Traceroute) είναι μια συνεχής ιχνηλάτηση — κάνει ping κάθε άλμα σε έναν βρόχο, μέση απώλεια, τρέξιμο. Πολύ πιο χρήσιμο για τη διάγνωση διακοπτόμενων προβλημάτων από ό,τι ένα μονοπάτι traceroute. WinMTR σε Windows, mtr σε Unix, PathPing ως η ενσωματωμένη εναλλακτική λύση των Windows.
Για τη διάγνωση μιας διαδρομής που δεν σας ανήκει, οι RIPE Atlas και οι διακομιστές φανταχτερής που λειτουργούν από μεγάλα δίκτυα σάς επιτρέπουν να εκτελείτε το traceroute από ένα απομακρυσμένο πλεονέκτημα — πολύτιμο για την κατανόηση της ασύμμετρης διαδρομής.
Περιορισμοί και παραξενιές Οι δρομολογητές που γνωρίζουν MPLS μπορούν να αποκρύψουν τα hops μη μειώνοντας το TTL σε ένα σύννεφο MPLS. Τα δίκτυα με ισορροπία φορτίου μπορούν να εμφανίζουν διαφορετικές διαδρομές σε διαδοχικούς ανιχνευτές, κάνοντας την έξοδο να φαίνεται χαοτική. Ο περιορισμός ρυθμού ICMP σε κατειλημμένους δρομολογητές μπορεί να παράγει ψευδείς ενδείξεις "αργού άλματος" που δεν αντικατοπτρίζουν την πραγματική απόδοση του επιπέδου δεδομένων. Το RTT των ενδιάμεσων δρομολογητών μετρά το χρόνο στο εκείνο το επίπεδο ελέγχου του δρομολογητή, το οποίο είναι συχνά πιο αργό από το επίπεδο δεδομένων μέσω του ίδιου δρομολογητή. Χρησιμοποιήστε το traceroute ως υπόδειξη, όχι ως μέτρηση.
- XPLZ28e
Συχνές ερωτήσεις
- Γιατί το traceroute μου χτυπά '* * *' για λίγο λυκίσκο;
- Ο δρομολογητής υπάρχει αλλά δεν απάντησε στο probe. Συνήθεις λόγοι: περιορισμός ρυθμού ICMP, πολιτική τείχους προστασίας που απορρίπτει απαντήσεις υπέρβασης TTL ή απόφαση του χειριστή να κάνει τον δρομολογητή αόρατο. Τα πακέτα περνούν ακόμα. απλά δεν μπορείτε να δείτε αυτούς τους λυκίσκους.
- Λειτουργεί το traceroute μέσω VPN;
- Ναι, αλλά το ίχνος ξεκινά από την έξοδο VPN, όχι από την πραγματική σας τοποθεσία. Τα πρώτα βήματα που βλέπατε κανονικά (ο δρομολογητής του σπιτιού σας, ο ISP σας) αντικαθίστανται από το μεμονωμένο άλμα στη σήραγγα VPN. Το ίχνος γίνεται μια προβολή του δικτύου του παρόχου VPN και της μετέπειτα διαδρομής του.
- Γιατί το traceroute δείχνει διαφορετικά μονοπάτια κάθε φορά που το εκτελώ;
- Πολλά μεγάλα δίκτυα εξισορροπούν την κίνηση σε πολλαπλές διαδρομές ίσου κόστους και το κλειδί εξισορρόπησης φορτίου περιλαμβάνει πεδία πακέτων. Διαφορετικοί ανιχνευτές κατακερματίζονται σε διαφορετικά μονοπάτια και βλέπετε την ένωση. Εργαλεία όπως το Paris-traceroute διατηρούν σταθερό το κλειδί εξισορρόπησης φορτίου για να παράγουν σταθερή απόδοση.
- Τι σημαίνει μια ξαφνική άνοδος του λανθάνοντος χρόνου σε ένα άλμα;
- Θα μπορούσε να είναι ένας συμφορημένος σύνδεσμος, ένα αργό επίπεδο ελέγχου στον συγκεκριμένο δρομολογητή (πιθανότατα) ή ασύμμετρη διαδρομή επιστροφής. Κοιτάξτε τα επόμενα άλματα — αν το RTT τους είναι παρόμοιο, η ακίδα είναι πραγματική συμφόρηση. Εάν το RTT τους πέσει πίσω, η ακίδα ήταν ότι το επίπεδο ελέγχου του δρομολογητή αργούσε να απαντήσει.
- Υπάρχει κάποιο εργαλείο που να συνδυάζει traceroute και συνεχές ping;
- MTR (mtr στο Unix, WinMTR στα Windows). Πραγματοποιεί ping σε κάθε αναπήδηση σε έναν βρόχο και εμφανίζει στατιστικά στοιχεία λειτουργίας — μέσο RTT, ποσοστό απώλειας πακέτων, τυπική απόκλιση. Πολύ πιο χρήσιμο από το traceroute βανίλιας για διαλείποντα προβλήματα.