Traceroute - εντολή Linux - εντολή Unix

traceroute - εκτυπώστε τα πακέτα δρομολογίων για να συνδεθείτε στο δίκτυο

Σύνοψη

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g πύλη ]

[ -i iface ] [ -m max_ttl] [ -p θύρα ]

[ -q nqueries ] [ -s src_addr ] [ -t tos ]

[ -w χρόνος αναμονής ] [ -z pausemsecs ]

υποδοχής [ πακέτα ]

Περιγραφή

Το Διαδίκτυο είναι μια μεγάλη και πολύπλοκη συνάθροιση του υλικού δικτύου, που συνδέεται από τις πύλες. Η παρακολούθηση των δρομολογίων που ακολουθούν τα άτομα (ή η εύρεση της εσφαλμένης πύλης που απορρίπτει τα πακέτα σας) μπορεί να είναι δύσκολη. Το Traceroute χρησιμοποιεί το πεδίο 'time to live' του πρωτοκόλλου IP και επιχειρεί να προκαλέσει μια απάντηση ICMP TIME_EXCEEDED από κάθε πύλη κατά μήκος της διαδρομής σε κάποιον κεντρικό υπολογιστή.

Η μόνη υποχρεωτική παράμετρος είναι το όνομα κεντρικού υπολογιστή προορισμού ή ο αριθμός IP . Το προεπιλεγμένο μήκος του datagram ανίχνευσης είναι 40 bytes , αλλά αυτό μπορεί να αυξηθεί με τον προσδιορισμό του μήκους πακέτου (σε bytes) μετά το όνομα του κεντρικού υπολογιστή προορισμού.

Άλλες επιλογές είναι:

-φά

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

-ΦΑ

Ρυθμίστε το κομμάτι "μη θραύσμα".

-ρε

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

-σολ

Καθορίστε μια πύλη διαδρομής χαλαρής πηγής (μέγιστη 8).

-Εγώ

Καθορίστε μια διεπαφή δικτύου για να αποκτήσετε τη διεύθυνση IP προέλευσης για τα εξερχόμενα πακέτα ανίχνευσης. Αυτό κανονικά είναι χρήσιμο μόνο σε πολλούς ξενιστές. (Δείτε τη σημαία -s για έναν άλλο τρόπο.)

-ΕΓΩ

Χρησιμοποιήστε ICMP ECHO αντί για datagrams UDP.

-m

Ρυθμίστε το μέγιστο χρόνο ζωής (μέγιστος αριθμός λυκίσκου) που χρησιμοποιείται στα εξερχόμενα πακέτα ανίχνευσης. Η προεπιλογή είναι 30 λυκίσκοι (η ίδια προεπιλογή χρησιμοποιείται για συνδέσεις TCP).

Η εκτύπωση διευθύνσεων hop προβάλλεται αριθμητικά και όχι συμβολικά και αριθμητικά (αποθηκεύει μια αναζήτηση διευθύνσεων ονόματος-ονόματος για κάθε πύλη που βρίσκεται στη διαδρομή).

Ορίστε τον αριθμό της βασικής θύρας UDP που χρησιμοποιείται στους αισθητήρες (προεπιλογή είναι 33434). Ο Traceroute ελπίζει ότι δεν ακούγεται τίποτα στη βάση των θυρών UDP σε βάση + nhops - 1 στον κεντρικό υπολογιστή προορισμού (έτσι θα επιστραφεί ένα μήνυμα ICMP PORT_UNREACHABLE για να τερματιστεί ο εντοπισμός της διαδρομής). Εάν ακούγεται κάτι σε μια θύρα στο προεπιλεγμένο εύρος, αυτή η επιλογή μπορεί να χρησιμοποιηθεί για να επιλέξει ένα μη χρησιμοποιούμενο εύρος θύρας.

-r

Καταργήστε τους κανονικούς πίνακες δρομολόγησης και αποστείλετε απευθείας σε έναν κεντρικό υπολογιστή σε ένα συνδεδεμένο δίκτυο. Εάν ο κεντρικός υπολογιστής δεν βρίσκεται σε απευθείας συνδεδεμένο δίκτυο, επιστρέφεται σφάλμα. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί για την ανίχνευση ενός τοπικού κεντρικού υπολογιστή μέσω μιας διεπαφής που δεν έχει διαδρομή μέσω αυτού (π.χ. μετά την απομάκρυνση της διεπαφής από δρομολογημένο (8C)).

-μικρό

Χρησιμοποιήστε την ακόλουθη διεύθυνση IP (η οποία συνήθως δίνεται ως αριθμός IP, όχι ως όνομα κεντρικού υπολογιστή) ως διεύθυνση προέλευσης στα εξερχόμενα πακέτα ανίχνευσης. Σε πολλούς κεντρικούς υπολογιστές (αυτούς με περισσότερες από μία διευθύνσεις IP), αυτή η επιλογή μπορεί να χρησιμοποιηθεί για να αναγκάσει τη διεύθυνση προέλευσης να είναι κάτι διαφορετικό από τη διεύθυνση IP της διασύνδεσης που αποστέλλεται το πακέτο ανίχνευσης. Εάν η διεύθυνση IP δεν είναι μια από τις διευθύνσεις διεπαφής αυτού του μηχανήματος, επιστρέφεται σφάλμα και δεν αποστέλλεται τίποτα. (Δείτε τη σημαία -i για έναν άλλο τρόπο.)

-t

Ορίστε τον τύπο υπηρεσίας σε πακέτα ανίχνευσης στην ακόλουθη τιμή (προεπιλεγμένο μηδέν). Η τιμή πρέπει να είναι δεκαδικό ακέραιο στο εύρος 0 έως 255. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί για να δει εάν διαφορετικοί τύποι υπηρεσιών οδηγούν σε διαφορετικές διαδρομές. (Εάν δεν εκτελείτε 4.4bsd, αυτό μπορεί να είναι ακαδημαϊκό δεδομένου ότι οι κανονικές υπηρεσίες δικτύου όπως το telnet και το ftp δεν σας επιτρέπουν να ελέγχετε το TOS). Δεν είναι όλες οι τιμές του TOS νόμιμες ή ουσιαστικές - ανατρέξτε στην προδιαγραφή IP για ορισμούς. Οι χρήσιμες τιμές είναι πιθανώς ` -t 16 '(χαμηλή καθυστέρηση) και` -t 8 ' (υψηλή απόδοση).

-v

Έντονη έξοδος. Έγινε λήψη πακέτων ICMP διαφορετικών από TIME_EXCEEDED και UNREACHABLEs.

-w

Ρυθμίστε την ώρα (σε δευτερόλεπτα) για να περιμένετε μια απάντηση σε έναν αισθητήρα (προεπιλογή 5 δευτ.).

Εναλλαγή ip checksums. Κανονικά, αυτό εμποδίζει το traceroute να υπολογίζει τα ip checksums. Σε ορισμένες περιπτώσεις, το λειτουργικό σύστημα μπορεί να αντικαταστήσει τμήματα του εξερχόμενου πακέτου, αλλά να μην υπολογίσει εκ νέου το άθροισμα ελέγχου (έτσι σε ορισμένες περιπτώσεις η προεπιλογή δεν υπολογίζει τα αθροίσματα ελέγχου και χρησιμοποιώντας το -x προκαλεί τη μετατροπή τους). Σημειώστε ότι τα αθροίσματα ελέγχου απαιτούνται συνήθως για το τελευταίο άλμα κατά τη χρήση των ανιχνευτών ICMP ECHO ( -I ). Συνεπώς, υπολογίζονται πάντα κατά τη χρήση του ICMP.

Ρυθμίστε την ώρα (σε χιλιοστά του δευτερολέπτου) για παύση μεταξύ ανιχνευτών (προεπιλογή 0). Ορισμένα συστήματα όπως το Solaris και οι δρομολογητές, όπως τα μηνύματα Cmpos περιορίζουν τα μηνύματα ICMP. Μια καλή τιμή που πρέπει να χρησιμοποιήσετε είναι 500 (π.χ. 1/2 δευτερόλεπτο).

Αυτό το πρόγραμμα προσπαθεί να ανιχνεύσει τη διαδρομή που θα ακολουθήσει ένα πακέτο IP σε κάποιον διαδικτυακό κεντρικό υπολογιστή, ξεκινώντας πακέτα δοκιμαστών UDP με ένα μικρό ttl (χρόνος για να ζήσει) και στη συνέχεια να ακούσει για μια απάντηση ICMP "time exceeded" από μια πύλη. Ξεκινάμε τους ανιχνευτές μας με ένα ttl ενός και αυξάνουμε κατά ένα έως ότου έχουμε ένα ICMP "λιμάνι απρόσιτο" (που σημαίνει ότι πήραμε το "host") ή χτυπήσαμε ένα max (το οποίο έχει προεπιλεγεί σε 30 hops & μπορεί να αλλάξει με το -m σημαία). Τρεις ανιχνευτές (αλλάζουν με σημαία -q ) αποστέλλονται σε κάθε ρύθμιση ttl και εκτυπώνεται μια γραμμή που δείχνει το ttl, τη διεύθυνση της πύλης και τον χρόνο στρογγυλοποίησης κάθε καθετήρα. Αν οι απαντήσεις του καθετήρα προέρχονται από διαφορετικές πύλες, θα εκτυπωθεί η διεύθυνση κάθε συστήματος που ανταποκρίνεται. Εάν δεν υπάρχει απάντηση μέσα σε 5 δευτερόλεπτα. (που έχει αλλάξει με τη σημαία -w ), εκτυπώνεται ένα "*" για τον ανιχνευτή.

Δεν θέλουμε ο κεντρικός υπολογιστής προορισμού να επεξεργαστεί τα πακέτα ανίχνευσης UDP, έτσι ώστε η θύρα προορισμού να έχει οριστεί σε απίθανη τιμή (εάν κάποιο clod στον προορισμό χρησιμοποιεί αυτή την τιμή, μπορεί να αλλάξει με τη σημαία -p ).

Μία δειγματοληπτική χρήση και έξοδος μπορεί να είναι:

[yak 71]% traceroute nis.nsf.net. traceroute στο nis.nsf.net (35.1.1.48), 30 hops max, 38 bytes πακέτο 1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32. 216.1) 39 ms 39 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms 5 ccn (129.32.168.22) 39 ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms 8 129.140. 70.13 (129.140.70.13) 99 ms 99 ms 80 ms 9 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms 10 129.140.81.7 (129.140.81.7) 220 ms 199 ms 199 ms 11 nic.merit.edu (35.1 .1.48) 239 ms 239 ms 239 ms

Σημειώστε ότι οι γραμμές 2 & 3 είναι οι ίδιες. Αυτό οφείλεται σε έναν πυρήνα buggy στο σύστημα του 2ου hop - lbl-csam.arpa - που προωθεί πακέτα με μηδενικό ttl (σφάλμα στην κατανεμημένη έκδοση του 4.3BSD). Σημειώστε ότι πρέπει να μαντέψετε ποιο είναι το μονοπάτι που ακολουθούν τα πακέτα, δεδομένου ότι το NSFNet (129.140) δεν παρέχει μεταφράσεις address-to-name για τις NSSes.

Ένα πιο ενδιαφέρον παράδειγμα είναι:

[yak 72]% traceroute allspice.lcs.mit.edu. traceroute to allspice.lcs.mit.edu (18.26.0.115), 30 λυκίσκου max 1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms 5 ccn-nerif22 (128.32.168.22) 20 ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 59 ms 119 ms 39 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms 8 129.140.70.13 ( 129.140.70.13) 80 ms 79 ms 99 ms 9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms 10 129.140.81.7 (129.140.81.7) 199 ms 180 ms 300 ms 11 129.140.72.17 (129.140.72.17) 300 ms 239 ms 239 ms 12 * * * 13 128.121.54.72 (128.121.54.72) 259 ms 499 ms 279 ms 14 * * * 15 * * * 16 * * * 17 * * * 18 ALLSPICE.LCS.MIT.EDU (18.26 .0.115) 339 ms 279 ms 279 ms

Σημειώστε ότι οι πύλες 12, 14, 15, 16 & 17 απομακρύνονται είτε δεν στέλνουν ICMP μηνύματα "υπερβαίνουν το χρόνο" είτε τις στέλνουν με πολύ μικρό αριθμό για να μας φτάσουν. 14 - 17 εκτελούν τον κώδικα πύλης MIT C ο οποίος δεν στέλνει "υπέρβαση χρόνου" s. Ο Θεός γνωρίζει μόνο τι συμβαίνει με το 12.

Η σιωπηλή πύλη 12 στα παραπάνω μπορεί να είναι το αποτέλεσμα ενός σφάλματος στο 4. [23] BSD network code (και τα παράγωγά του): 4.x (x <= 3) στέλνει ένα μήνυμα που δεν μπορεί να βρεθεί χρησιμοποιώντας όποια ttl παραμένει στο πρωτότυπο datagram. Δεδομένου ότι, για τις πύλες, το υπόλοιπο ttl είναι μηδέν, ο χρόνος υπέρβασης του ICMP εγγυάται ότι δεν θα το επιστρέψει σε εμάς. Η συμπεριφορά αυτού του σφάλματος είναι λίγο πιο ενδιαφέρουσα όταν εμφανίζεται στο σύστημα προορισμού:

1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) ) 19 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 19 ms 5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms 6 csgw. Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 rip.Berkeley.EDU (128.32.131.22) Κυρία ! 39 ms! 39 ms!

Παρατηρήστε ότι υπάρχουν 12 "πύλες" (13 είναι ο τελικός προορισμός) και ακριβώς το τελευταίο μισό τους "λείπει". Αυτό που συμβαίνει στην πραγματικότητα είναι ότι το rip (ένα Sun-3 που τρέχει Sun OS3.5) χρησιμοποιεί το ttl από το φθάνουν μας datagram ως το ttl στην απάντησή του ICMP. Έτσι, η απάντηση θα διαρκέσει στο δρόμο επιστροφής (χωρίς καμία ειδοποίηση να αποσταλεί σε κανέναν, αφού τα ICMP δεν αποστέλλονται για ICMP) μέχρι να ερευνήσουμε με ένα ttl που είναι τουλάχιστον διπλάσιο από το μήκος διαδρομής. Δηλαδή, rip είναι πραγματικά μόνο 7 λυκίσκο μακριά. Μια απάντηση που επιστρέφει με ένα ttl του 1 είναι μια ένδειξη ότι αυτό το πρόβλημα υπάρχει. Το Traceroute εκτυπώνει ένα "!" μετά την πάροδο του χρόνου, εάν το ttl είναι <= 1. Εφόσον οι προμηθευτές αποστείλουν πολλά παρωχημένα λογισμικά (DECtrix Ultrix, Sun 3.x) ή μη τυποποιημένα (HPUX), αναμένουν να δουν αυτό το πρόβλημα συχνά ή / υποδοχής των ανιχνευτών σας.

Άλλοι δυνατοί σχολιασμοί μετά την ώρα είναι ! H , N ή P (ανεπιθύμητος κεντρικός υπολογιστής, δίκτυο ή πρωτόκολλο),! S (η διαδρομή πηγής απέτυχε),! F- (απαιτείται κατακερματισμός - εμφανίζεται η τιμή Discovery Path Path MTU) ! X (η επικοινωνία απαγορεύεται διοικητικά) ,! V (παραβίαση προτεραιότητας κεντρικού υπολογιστή) ,! C (αποκοπή προτεραιότητας σε ισχύ), ή ! (Μη αποδεκτός κωδικός ICMP). Αυτά ορίζονται από το RFC1812 (το οποίο αντικαθιστά το RFC1716). Εάν σχεδόν όλοι οι ανιχνευτές καταλήξουν σε κάποιο είδος απροσπέλαστου, ο traceroute θα εγκαταλείψει και θα βγει.

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

Δείτε επίσης

pathchar (8), netstat (1), ping (8)