Κάθε δευτερόλεπτο, τρισεκατομμύρια 1 και 0 περνούν από συνδέσεις οπτικών ινών, μετακινούνται από ήπειρο σε ήπειρο μέσω υποθαλάσσιων καλωδίων και φέρνουν ασύρματα στους χρήστες όλου του κόσμου το Διαδίκτυο που γνωρίζουμε και αγαπάμε. Έχετε όμως ποτέ αναρωτηθεί πώς ακριβώς μετακινούνται αυτά τα ψηφία δεδομένων από το ένα μέρος στο άλλο;
Το Traceroute, ένα εργαλείο που ίσως ήδη διαθέτετε, μπορεί να σας δώσει κάποιες πληροφορίες εντοπίζοντας τη διαδρομή μεταξύ του υπολογιστή σας και ενός προορισμού-στόχου. Σε αυτό το άρθρο, θα δούμε τι είναι και πώς λειτουργεί το traceroute, θα μάθουμε πώς να εκτελείτε το traceroute σε διάφορες πλατφόρμες και πώς να διαβάζετε τα αποτελέσματα ενός traceroute.
Table of Contents
Τι είναι το Traceroute;
Το Traceroute είναι ένα απλό αλλά έξυπνο εργαλείο γραμμής εντολών για την ανίχνευση της διαδρομής που ακολουθεί ένα πακέτο IP σε ένα ή πολλά δίκτυα. Αναπτύχθηκε αρχικά για πλατφόρμες που βασίζονται στο UNIX, αλλά πλέον περιλαμβάνεται στα περισσότερα λειτουργικά συστήματα, με την υλοποίηση των Windows να είναι γνωστή ως “tracert”. Τα αποτελέσματα αυτών των εντολών αναφέρονται επίσης συχνά ως traceroute.
Ποιος είναι ο σκοπός του Traceroute;
Το Traceroute χρησιμοποιείται κυρίως για διαγνωστικούς σκοπούς, αλλά μπορεί να είναι ένα διασκεδαστικό εργαλείο για να μάθετε για τη δικτύωση ή απλά για να ικανοποιήσετε την περιέργειά σας. Οι διαχειριστές συστημάτων και οι μηχανικοί δικτύων μπορούν να χρησιμοποιήσουν το traceroute για να δουν πώς πηγαίνει η κυκλοφορία μέσα σε έναν οργανισμό και να εντοπίσουν τυχόν προβληματικές ή μη βέλτιστες διαδρομές.
Εξωτερικά, το traceroute μπορεί να εμφανίσει τη διαδρομή ενός πακέτου καθώς διασχίζει πολλά διαφορετικά δίκτυα και σε ορισμένες περιπτώσεις να αποκαλύψει ακόμη και τις διαφορετικές πόλεις ή γεωγραφικές περιοχές από τις οποίες περνάει η κυκλοφορία. Οι επιτιθέμενοι θα μπορούσαν δυνητικά να χρησιμοποιήσουν το traceroute για να χαρτογραφήσουν το δίκτυο ενός στόχου, γι’ αυτό και οι τύποι πακέτων που χρησιμοποιούνται από το traceroute συχνά μπλοκάρονται ή φιλτράρονται στην περίμετρο των εταιρικών δικτύων.
Οι περισσότερες διαδικασίες του traceroute εμφανίζουν επίσης το χρόνο που χρειάζεται για να φτάσει σε κάθε “άλμα” μεταξύ της πηγής και του προορισμού. Αυτό είναι εξαιρετικά χρήσιμο όταν αναζητάτε τη βασική αιτία διακοπτόμενης κυκλοφορίας ή προβλημάτων απόδοσης.
Πώς λειτουργεί το Traceroute σε πέντε βήματα
Το Traceroute είναι στην πραγματικότητα μια μικρή παραποίηση, καθώς αξιοποιεί ένα πεδίο στις επικεφαλίδες των πακέτων του πρωτοκόλλου Internet (IP), το οποίο δεν προοριζόταν ποτέ για την ανίχνευση διαδρομών. Το πρότυπο IP επιβάλλει μια τιμή Time-to-Live (TTL) για κάθε πακέτο IP, η οποία λειτουργεί ως ένα είδος μηχανισμού αυτοκαταστροφής για να αποτρέψει την ατελείωτη κυκλοφορία μη παραλήψιμων πακέτων στο Διαδίκτυο. Κάθε δρομολογητής σε μια διαδρομή αναμένεται να μειώνει την τιμή TTL κατά ένα πριν την αποστολή του πακέτου στη συνέχεια. Μόλις η τιμή TTL φτάσει στο μηδέν, η διαδικασία δρομολόγησης σταματάει και ο τελευταίος δρομολογητής που επεξεργάστηκε το πακέτο θα στείλει πίσω ένα μήνυμα “
“.Η υπέρβαση μιας τιμής TTL δεν είναι επιθυμητή για κανονικά πακέτα δεδομένων, γι’ αυτό και ένα τυπικό πακέτο θα έχει μια τιμή που θα κυμαίνεται από 64 έως 255. Αλλά αυτό που διαφορετικά θα ήταν ένα απογοητευτικό μήνυμα σφάλματος είναι στην πραγματικότητα ένα βασικό μέρος του τρόπου λειτουργίας του traceroute. Με τον χειρισμό του πεδίου TTL, το traceroute και παρόμοια προγράμματα μπορούν να προκαλέσουν μηνύματα υπέρβασης του TTL από κάθε άλμα κατά μήκος μιας δεδομένης διαδρομής. Δείτε λοιπόν πώς λειτουργεί:
- Ο χρήστης καλεί την εντολή traceroute (ή tracert) και καθορίζει έναν κεντρικό υπολογιστή-στόχο. Εάν ο κεντρικός υπολογιστής καθορίζεται με τη μορφή ονόματος τομέα, το traceroute θα προσπαθήσει να το επιλύσει.
- Το Traceroute στέλνει ένα πακέτο δεδομένων προς το στόχο με την τιμή TTL να έχει οριστεί σε “1”. Ο πρώτος δρομολογητής στη διαδρομή θα μειώσει την τιμή κατά 1, γεγονός που θα πρέπει να προκαλέσει ένα μήνυμα υπέρβασης του TTL που αποστέλλεται πίσω στον υπολογιστή στον οποίο εκτελείται το πρόγραμμα traceroute.
- Με τις λεπτομέρειες του πρώτου άλματος, το traceroute θα αυξήσει την τιμή TTL σε “2”. Ο πρώτος δρομολογητής στη διαδρομή θα εξακολουθεί να μειώνει την τιμή κατά 1, αλλά επειδή το TTL δεν θα πέφτει πλέον στο μηδέν αμέσως μετά την εκκίνηση, το πακέτο μπορεί να συνεχίσει για ένα ακόμη άλμα. Μόλις η τιμή TTL μηδενιστεί (σε αυτή την περίπτωση, στον δεύτερο δρομολογητή της διαδρομής), θα πρέπει να δημιουργηθεί ένα άλλο μήνυμα υπέρβασης TTL και να μεταβιβαστεί πίσω στο traceroute.
- Η διαδικασία επαναλαμβάνεται, με το traceroute να αυξάνει το TTL κατά 1 κάθε φορά, έως ότου επιτευχθεί ο προορισμός ή ένα ανώτατο όριο διαδρομών. Από προεπιλογή, το ανώτερο όριο είναι 30 hops, αλλά μπορεί να καθοριστεί διαφορετική τιμή κατά την εκτέλεση της εντολής.
- Όταν τελειώσει, το traceroute εκτυπώνει όλα τα άλματα της διαδρομής, μαζί με το χρόνο που χρειάστηκε για κάθε άλμα και την επιστροφή (αυτό είναι γνωστό ως ).
Από προεπιλογή, το traceroute θα στείλει τρία πακέτα σε κάθε άλμα της διαδρομής. Ο ακριβής τύπος του πακέτου διαφέρει μεταξύ των υλοποιήσεων και μπορεί επίσης να αλλάξει με διαφορετικές σημαίες (flags), αλλά η ίδια βασική μεθοδολογία χρησιμοποιείται σε όλες τις περιπτώσεις.
Πώς να εκτελέσετε μια διαδικασία Traceroute
Το Traceroute είναι διαθέσιμο σε μεγάλη ποικιλία πλατφορμών, από λειτουργικά συστήματα για καταναλωτές έως δρομολογητές μεγάλων επιχειρήσεων. Δεν υπάρχει μεγάλη διαφοροποίηση στον τρόπο λειτουργίας του traceroute σε αυτές τις διαφορετικές πλατφόρμες, αλλά η σύνταξη της εντολής μπορεί να είναι λίγο διαφορετική. Ακολουθεί ο τρόπος εκτέλεσης του traceroute από διάφορες δημοφιλείς πλατφόρμες:
Πώς να εκτελέσετε μια διαδικασία Traceroute στα Windows
Η υλοποίηση του εργαλείου traceroute από τη Microsoft είναι ελαφρώς διαφορετική από αυτή που θα βρείτε στις πλατφόρμες Mac/Linux/Unix. Η πιο εμφανής διαφορά είναι στην ίδια την εντολή: Στους υπολογιστές που τρέχουν Windows, θα χρησιμοποιήσετε την εντολή “tracert” αντί να πληκτρολογήσετε ολόκληρη τη λέξη. Ακολουθεί ένας οδηγός βήμα προς βήμα:
- Ανοίξτε μια γραμμή εντολών. Μπορείτε να το κάνετε αυτό πληκτρολογώντας “command” από το μενού Έναρξη ή πατώντας τα πλήκτρα Windows+R και πληκτρολογώντας “cmd”.
- Από τη γραμμή εντολών, πληκτρολογήστε “tracert” ακολουθούμενο από το όνομα κεντρικού υπολογιστή ή τη διεύθυνση IP που θέλετε να εντοπίσετε. Για να δούμε τη διαδρομή προς το iguru.gr, για παράδειγμα, θα πληκτρολογήσουμε “tracert iguru.gr”. Το εργαλείο θα πρέπει να βρίσκει αυτόματα ένα όνομα τομέα σε μια διεύθυνση IP.
- Περιμένετε για τα αποτελέσματα. Θα πρέπει να δείτε το εργαλείο να αρχίζει να δημιουργεί αποτελέσματα μέσα σε λίγα δευτερόλεπτα, αλλά η ανίχνευση της πλήρους διαδρομής μπορεί να διαρκέσει περισσότερο.
Πώς να εκτελέσετε μια διαδικασία Traceroute στο Linux
Πολλές εκδόσεις του Linux διαθέτουν προεγκατεστημένο το traceroute, αν και ορισμένες διανομές επιλέγουν παρόμοια εργαλεία όπως το mtr και το tracepath. Σε κάθε περίπτωση, μπορείτε να αποκτήσετε το “κλασικό” traceroute χρησιμοποιώντας τους διαχειριστές πακέτων yum (yum install traceroute) ή APT (apt-get install traceroute). Από εκεί και πέρα, τα βήματα δεν διαφέρουν πολύ από τα Windows:
- Ανοίξτε το τερματικό σας.
- Πληκτρολογήστε “traceroute” ακολουθούμενο από το όνομα κεντρικού υπολογιστή ή τη διεύθυνση IP που θέλετε να εντοπίσετε.
- Περιμένετε να ολοκληρωθεί η ανίχνευση και δείτε τα αποτελέσματα.
Ακολουθεί ένα παράδειγμα εκτέλεσης traceroute από το Kali Linux:
Πώς να εκτελέσετε μια διαδικασία traceroute σε Mac
Η εκτέλεση ενός traceroute σε Mac είναι πρακτικά η ίδια με την εκτέλεσή του σε μια πλατφόρμα Linux:
- Ανοίξτε την εφαρμογή “Terminal”.
- Πληκτρολογήστε “traceroute” ακολουθούμενο από το όνομα κεντρικού υπολογιστή ή τη διεύθυνση IP που θέλετε να εντοπίσετε.
- Περιμένετε να ολοκληρωθεί η ανίχνευση και ελέγξτε τα αποτελέσματα.
Ίσως παρατηρήσετε ότι ορισμένες από τις προεπιλογές είναι λίγο διαφορετικές: μέγιστο όριο 64 άλματα, για παράδειγμα, αντί για 30. Μπορείτε εύκολα να αλλάξετε αυτές τις ρυθμίσεις χρησιμοποιώντας τις σημαίες (flags) της γραμμής εντολών. Απλά ελέγξτε την επίσημη τεκμηρίωση του traceroute χρησιμοποιώντας την εντολή “man traceroute”.
Πώς να διαβάσετε τα αποτελέσματα του traceroute
Τώρα που ξέρουμε λίγα περισσότερα για το πώς λειτουργεί το traceroute, ήρθε η ώρα να αρχίσουμε να το χρησιμοποιούμε! Αν δεν έχετε χρησιμοποιήσει ποτέ πριν το traceroute, τα πράγματα μπορεί να φαίνονται λίγο δύσκολα στην αρχή. Μόλις μάθετε πώς να διαβάζετε τα αποτελέσματα του traceroute όμως, μπορείτε γρήγορα να κατανοήσετε πως λειτουργεί το πραγματικά το πρόγραμμα.
Κάθε γραμμή αποτελεσμάτων του traceroute αντιπροσωπεύει ένα “άλμα” στη διαδρομή προς έναν συγκεκριμένο προορισμό. Αυτά τα άλματα μπορεί να αναφέρονται είτε ως διεύθυνση IP είτε ως όνομα κεντρικού υπολογιστή. Το traceroute θα προσπαθήσει να ορίσει τη διεύθυνση IP κάθε άλματος σε όνομα κεντρικού υπολογιστή και να το εμφανίσει, αν είναι δυνατόν. Ο κατάλογος αρχίζει με τον πλησιέστερο δρομολογητή στον υπολογιστή σας και τελειώνει είτε στον προορισμό είτε στο τελευταίο σημείο στο οποίο έφτασε το traceroute πριν φτάσει σε έναν μέγιστο αριθμό αλμάτων. Στα δεξιά κάθε καταχώρησης υπάρχει μια σειρά χρόνων που μετριούνται σε χιλιοστά του δευτερολέπτου (ms). Αυτός είναι ο χρόνος διαδρομής ή ο χρόνος που χρειάστηκε για να φτάσουν τα πακέτα traceroute στο συγκεκριμένο άλμα και να λάβουν απάντηση.
Μπορεί να παρατηρήσετε ότι μία ή περισσότερες γραμμές της εξόδου του traceroute παρατίθενται μόνο με αστερίσκο (*). Αυτό σημαίνει ότι το πρόγραμμα δεν έλαβε καμία απάντηση από το δρομολογητή στο συγκεκριμένο άλμα. Ορισμένοι οργανισμοί επιλέγουν να μπλοκάρουν ή να απορρίπτουν τον τύπο των πακέτων στα οποία βασίζεται το traceroute, είτε μπλοκάροντάς τα με ένα τείχος προστασίας είτε ρυθμίζοντας τους δρομολογητές ώστε να απορρίπτουν τα πακέτα αντί να απαντούν. Η κίνηση traceroute θεωρείται επίσης χαμηλής προτεραιότητας και έτσι ένας πολυάσχολος δρομολογητής μπορεί να επεξεργαστεί τυπικά πακέτα δεδομένων αντί να απαντήσει στο αίτημα traceroute.
Όταν ασχολείστε με ονόματα κεντρικών υπολογιστών, μερικές φορές είναι πιο χρήσιμο να ξεκινάτε από τα δεξιά και να προχωράτε προς τα αριστερά. Χρησιμοποιώντας αυτή την τακτική, μπορούμε να βρούμε στο Google το “m247” για να ανακαλύψουμε ότι πρόκειται για έναν πάροχο υπηρεσιών με έδρα το Ηνωμένο Βασίλειο και τοποθεσίες σε όλο τον κόσμο. Μπορούμε επίσης να συμπεράνουμε ότι ο συγκεκριμένος δρομολογητής βρίσκεται στις ΗΠΑ, και συγκεκριμένα στην περιοχή του Μαϊάμι, Φλόριντα, εξετάζοντας τα δύο στοιχεία του ονόματος κεντρικού υπολογιστή αμέσως αριστερά του m247.com. Σημειώστε τη συντομογραφία τριών γραμμάτων “mia”. Αν και δεν υπάρχει καμία απαίτηση να το κάνουν, πολλές εταιρείες επισημαίνουν τη γεωγραφική θέση των δρομολογητών χρησιμοποιώντας τους κωδικούς αεροδρομίων τριών γραμμάτων της Διεθνούς Ένωσης Αερομεταφορών (IATA). Τα δύο τελευταία τμήματα του ονόματος κεντρικού υπολογιστή περιγράφουν λεπτομερώς τη θέση του δρομολογητή στο δίκτυο του παρόχου υπηρεσιών, με το “as06” να αποτελεί πιθανότατα συντομογραφία για τον αριθμό του αυτόνομου συστήματος και το “vlan156” να αναφέρεται στο VLAN μέσω του οποίου βρέθηκαν να ταξιδεύουν τα πακέτα μας.
Traceroute FAQ
Ποια είναι η διαφορά μεταξύ των ping και traceroute;
Το Ping και το traceroute είναι και τα δύο διαγνωστικά εργαλεία δικτύου, αλλά το traceroute είναι λίγο πιο περίπλοκο. Το Ping θα δοκιμάσει τη συνδεσιμότητα μεταξύ δύο κεντρικών υπολογιστών, αλλά δεν δίνει πληροφορίες σχετικά με τη διαδρομή μεταξύ αυτών των δύο κεντρικών υπολογιστών. Το traceroute, από την άλλη, εμφανίζει όλα τα ενδιάμεσα άλματα μεταξύ πηγής και προορισμού. Αυτό μπορεί να είναι χρήσιμο κατά τη διάρκεια επεισοδίων διακοπτόμενης συνδεσιμότητας, για παράδειγμα, εάν μόνο το 50% των pings μεταξύ δύο σημείων είναι επιτυχή.
Είναι το Tracert και το Traceroute το ίδιο;
Τα Tracert και Traceroute εκτελούν σχεδόν πανομοιότυπες λειτουργίες, αλλά ο υποκείμενος κώδικας μεταξύ των δύο εργαλείων είναι διαφορετικός. Το Tracert δημιουργήθηκε από τη Microsoft για λειτουργικά συστήματα Windows, ενώ το παλαιότερο traceroute είναι για συστήματα που βασίζονται σε Unix. Υπάρχουν μικρές διαφορές στις προεπιλεγμένες παραμέτρους μεταξύ των δύο εργαλείων, όπως ο τύπος των πακέτων που χρησιμοποιούνται.
Τι γίνεται με τα MTR, Tracepath, Paris Traceroute, κ.λ.π.;
Το αρχικό εργαλείο traceroute, το οποίο χρονολογείται από το 1987, δεν είναι πάντα σε θέση να παράγει ακριβή αποτελέσματα. Η εξισορρόπηση φορτίου, η μετάφραση διευθύνσεων δικτύου (NAT), τα τείχη προστασίας και άλλοι παράγοντες μπορούν να οδηγήσουν σε ανακριβή ή ελλιπή αποτελέσματα. Ορισμένα παρόμοια εργαλεία, όπως το mtr και το Paris Traceroute, υλοποιούν την ίδια βασική ιδέα με το traceroute, αλλά προσπαθούν να αντιμετωπίσουν τις αδυναμίες του κλασικού εργαλείου με διάφορα μέσα. Ορισμένα εργαλεία προσπάθησαν επίσης να βελτιώσουν τη διαμόρφωσή τους σε σχέση με το πρωτότυπο.
Θέλω να εντοπίσω μια διαδρομή IPv6! Τι μπορώ να κάνω;
Οι εντολές traceroute6 και tracert6 παρέχουν την ίδια λειτουργικότητα με την traceroute, αλλά για δίκτυα IPv6. Πολλά από τα παρόμοια εργαλεία έχουν επίσης υποστήριξη για IPv6.
Συμπέρασμα
Τώρα καταλαβαίνετε λίγο περισσότερα για το πώς λειτουργεί το traceroute. Μπορεί να μην είναι τόσο συναρπαστικό θέμα όσο το
ή οι ευπάθειες , αλλά μπορεί να είναι ένα διασκεδαστικό εργαλείο που θα σας βοηθήσει να κατανοήσετε τη ροή των δεδομένων μέσα από τα δίκτυα.