Εγχειρίδια για τη γραμμή εντολών

Man » Traceroute Manual online - λεπτομερής διαδικτυακή τεκμηρίωση για τη σελίδα man του traceroute

🌍
traceroute - εκτύπωση της διαδρομής που ακολουθούν τα πακέτα προς έναν κεντρικό υπολογιστή δικτύου

ΣΥΝΤΑΞΗ

traceroute [-46dFITUnreAV] [-f first_ttl] [-g gate,...]
[-i device] [-m max_ttl] [-p port] [-s src_addr]
[-q nqueries] [-N squeries] [-t tos]
[-l flow_label] [-w waittimes] [-z sendwait] [-UL] [-D]
[-P proto] [--sport=port] [-M method] [-O mod_options]
[--mtu] [--back]
host [packet_len]
traceroute6  [options]
tcptraceroute  [options]
lft  [options]

ΠΕΡΙΓΡΑΦΗ

Το traceroute παρακολουθεί τη διαδρομή που ακολουθούν τα πακέτα από ένα δίκτυο IP προς έναν δεδομένο κεντρικό υπολογιστή.
Χρησιμοποιεί το πεδίο χρόνου ζωής (TTL) του πρωτοκόλλου IP και προσπαθεί να προκαλέσει μια απάντηση ICMP TIME_EXCEEDED από κάθε πύλη κατά μήκος της διαδρομής προς τον κεντρικό υπολογιστή.

Το traceroute6 είναι ισοδύναμο με το traceroute -6

Το tcptraceroute είναι ισοδύναμο με το traceroute -T

Το lft, το Layer Four Traceroute, εκτελεί ένα TCP traceroute, όπως το traceroute -T, αλλά προσπαθεί
να παρέχει συμβατότητα με την αρχική υλοποίηση, που ονομάζεται επίσης "lft".

Η μόνη απαιτούμενη παράμετρος είναι το όνομα ή η διεύθυνση IP του προορισμού. Η προαιρετική παράμετρος packet_len είναι το συνολικό μέγεθος του πακέτου ανίχνευσης (προεπιλογή 60 byte για IPv4 και 80 για IPv6). Το καθορισμένο μέγεθος μπορεί να αγνοηθεί σε ορισμένες περιπτώσεις ή να αυξηθεί έως ένα ελάχιστο μέγεθος.

Αυτό το πρόγραμμα προσπαθεί να εντοπίσει τη διαδρομή που θα ακολουθούσε ένα πακέτο IP προς έναν κεντρικό υπολογιστή στο διαδίκτυο, ξεκινώντας πακέτα ανίχνευσης με ένα μικρό TTL (χρόνος ζωής) και στη συνέχεια ακούγοντας για μια απάντηση ICMP "χρόνος λήξης" από μια πύλη. Ξεκινάμε τις ανιχνεύσεις μας με ένα TTL 1 και αυξάνουμε κατά 1 μέχρι να λάβουμε μια απάντηση ICMP "αδυναμία πρόσβασης στη θύρα" (ή επαναφορά TCP), η οποία σημαίνει ότι φτάσαμε στον "κεντρικό υπολογιστή" ή φτάσαμε στο μέγιστο (η προεπιλογή είναι 30 αναπηδήσεις). Τρεις ανιχνεύσεις (από προεπιλογή) αποστέλλονται σε κάθε ρύθμιση TTL και εμφανίζεται μια γραμμή που δείχνει το TTL, τη διεύθυνση της πύλης και τον χρόνο επιστροφής κάθε ανίχνευσης. Η διεύθυνση μπορεί να ακολουθείται από πρόσθετες πληροφορίες, όταν ζητηθεί. Εάν οι απαντήσεις ανίχνευσης προέρχονται από διαφορετικές πύλες, η διεύθυνση κάθε συστήματος που ανταποκρίνεται θα εκτυπωθεί. Εάν δεν υπάρχει απάντηση εντός ενός ορισμένου χρονικού διαστήματος, εκτυπώνεται ένα "*" (αστερίσκος) για αυτήν την ανίχνευση.

Μετά το χρόνο ταξιδιού, μπορούν να εκτυπωθούν ορισμένες πρόσθετες σημειώσεις: !H, !N ή !P (κεντρικός υπολογιστής, δίκτυο ή πρωτόκολλο μη προσβάσιμο), !S (αποτυχία δρομολόγησης πηγής), !F (απαιτείται κατακερματισμός), !X (επικοινωνία που απαγορεύεται διαχειριστικά), !V (παραβίαση προτεραιότητας κεντρικού υπολογιστή), !C (ισχύει η διακοπή προτεραιότητας) ή ! (κωδικός ICMP μη προσβάσιμο ). Εάν σχεδόν όλες οι ανιχνεύσεις έχουν ως αποτέλεσμα κάποιο είδος μη προσβάσιμου, το traceroute θα σταματήσει και θα τερματιστεί.


Δεν θέλουμε ο προορισμός να επεξεργαστεί τα πακέτα UDP probe, επομένως η θύρα προορισμού ορίζεται σε μια απίθανη τιμή (μπορείτε να την αλλάξετε με την παράμετρο -p). Δεν υπάρχει τέτοιο πρόβλημα για το ICMP ή το TCP tracerouting (για το TCP χρησιμοποιούμε την τεχνική "half-open", η οποία αποτρέπει τα probes μας από το να γίνουν αντιληπτά από εφαρμογές στον προορισμό).

Στο σύγχρονο δίκτυο, οι παραδοσιακές μέθοδοι traceroute δεν είναι πάντα εφαρμόσιμες, λόγω της ευρείας χρήσης των τειχών προστασίας (firewalls). Αυτά τα τείχη προστασίας φιλτράρουν τις "απίθανες" θύρες UDP ή ακόμα και τα μηνύματα ICMP echo. Για να λυθεί αυτό, έχουν εφαρμοστεί ορισμένες πρόσθετες μέθοδοι tracerouting (συμπεριλαμβανομένου του tcp), δείτε την ΛΙΣΤΑ ΔΙΑΘΕΣΙΜΩΝ ΜΕΘΟΔΩΝ παρακάτω. Αυτές οι μέθοδοι προσπαθούν να χρησιμοποιήσουν ένα συγκεκριμένο πρωτόκολλο και θύρα προέλευσης/προορισμού, προκειμένου να παρακάμψουν τα τείχη προστασίας (να γίνουν αντιληπτά από τα τείχη προστασίας απλώς ως η έναρξη ενός επιτρεπόμενου τύπου δικτυακής συνεδρίας).

ΕΠΙΛΟΓΕΣ

--help Εκτύπωση πληροφοριών βοήθειας και έξοδος.

-4, -6 Ορίστε ρητά το IPv4 ή το IPv6 tracerouting. Από προεπιλογή, το πρόγραμμα θα προσπαθήσει να επιλύσει το δεδομένο όνομα και θα επιλέξει το κατάλληλο πρωτόκολλο αυτόματα. Εάν η επίλυση ενός ονόματος κεντρικού υπολογιστή επιστρέψει διευθύνσεις IPv4 και IPv6, το traceroute θα χρησιμοποιήσει το IPv4.

-I, --icmp
Χρησιμοποιήστε το ICMP ECHO για τα probes

-T, --tcp
Χρησιμοποιήστε το TCP SYN για τα probes

-d, --debug
Ενεργοποιήστε το debug σε επίπεδο socket (όταν το υποστηρίζει ο πυρήνας του Linux)

-F, --dont-fragment
Μην κατακερματίζετε τα πακέτα probe. (Για το IPv4, ορίζει επίσης τη σημαία DF, η οποία ενημερώνει τους ενδιάμεσους δρομολογητές να μην κατακερματίζουν εξ αποστάσεως).

Με τη μεταβολή του μεγέθους του πακέτου probe μέσω της παραμέτρου γραμμής εντολών packet\_len, μπορείτε να αποκτήσετε χειροκίνητα πληροφορίες σχετικά με το MTU μεμονωμένων δικτυακών διαδρομών. Η επιλογή --mtu (δείτε παρακάτω) προσπαθεί να το κάνει αυτό αυτόματα.

Σημειώστε ότι οι δυνατότητες μη κατακερματισμού (όπως -F ή --mtu) λειτουργούν σωστά μόνο από την έκδοση Linux kernel 6.22 και μετά. Πριν από αυτήν την έκδοση, το IPv6 κατακερματιζόταν πάντα, το IPv4 μπορούσε να το χρησιμοποιήσει μόνο αφού ανακάλυπτε το τελικό mtu (από την cache της διαδρομής), το οποίο μπορεί να είναι μικρότερο από το πραγματικό mtu μιας συσκευής.

-f first_ttl, --first=first_ttl
Καθορίζει με ποιο TTL να ξεκινήσει. Από προεπιλογή είναι 1.

-g gateway, --gateway=gateway
Λέει στο traceroute να προσθέσει μια επιλογή IP source routing στο εξερχόμενο πακέτο, η οποία λέει στο δίκτυο να δρομολογήσει το πακέτο μέσω της καθορισμένης πύλης (οι περισσότεροι δρομολογητές έχουν απενεργοποιήσει το source routing για λόγους ασφαλείας). Γενικά, επιτρέπονται αρκετές πύλες (χωρισμένες με κόμμα). Για το IPv6, επιτρέπεται η μορφή num,addr,addr..., όπου το num είναι ένας τύπος κεφαλίδας διαδρομής (από προεπιλογή είναι τύπος 2). Σημειώστε ότι ο τύπος 0 της κεφαλίδας διαδρομής έχει πλέον καταργηθεί (rfc5095).

-i interface, --interface=interface
Καθορίζει τη διεπαφή μέσω της οποίας θα στείλει το traceroute πακέτα. Από προεπιλογή, η διεπαφή επιλέγεται σύμφωνα με τον πίνακα δρομολόγησης.

-m max_ttl, --max-hops=max_ttl
Καθορίζει τον μέγιστο αριθμό διαδρομών (μέγιστη τιμή time-to-live) που θα ελέγξει το traceroute. Η προεπιλογή είναι 30.

-N squeries, --sim-queries=squeries

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

-n     Μην επιχειρήσετε να αντιστοιχίσετε διευθύνσεις IP σε ονόματα κεντρικών υπολογιστών κατά την εμφάνισή τους.

-p port, --port=port

Για ανίχνευση UDP, καθορίζει τη θύρα προορισμού που θα χρησιμοποιήσει το traceroute (ο αριθμός θύρας προορισμού θα αυξάνεται με κάθε πακέτο ανίχνευσης). Για ανίχνευση ICMP, καθορίζει την αρχική τιμή ακολουθίας ICMP (η οποία επίσης αυξάνεται με κάθε πακέτο ανίχνευσης). Για TCP και άλλα πρωτόκολλα, καθορίζει απλώς τη σταθερή θύρα προορισμού στην οποία θα γίνει η σύνδεση. Όταν χρησιμοποιείτε το περιβάλλον tcptraceroute, η παράμετρος -p καθορίζει τη θύρα προέλευσης.

-t tos, --tos=tos

Για IPv4, ορίζει την τιμή Τύπος Υπηρεσίας (TOS) και Προτεραιότητα. Χρήσιμες τιμές είναι το 16 (χαμηλή καθυστέρηση) και το 8 (υψηλή απόδοση). Σημειώστε ότι, προκειμένου να χρησιμοποιήσετε ορισμένες τιμές προτεραιότητας TOS, θα πρέπει να είστε χρήστης με δικαιώματα διαχειριστή. Για IPv6, ορίζει την τιμή Ελέγχου Κίνησης.

-l flow_label, --flowlabel=flow_label

Χρησιμοποιήστε την καθορισμένη τιμή flow_label για πακέτα IPv6.

-w max[,here,near], --wait=max[,here,near]

Καθορίζει πόσο χρόνο θα περιμένετε για μια απάντηση σε ένα πακέτο ανίχνευσης.

Υπάρχουν τρεις τιμές κινητής υποδιαστολής (γενικά) που διαχωρίζονται με κόμμα (ή κάθετο). Η τιμή Max καθορίζει τον μέγιστο χρόνο (σε δευτερόλεπτα, προεπιλογή 5.0) που θα περιμένετε, σε κάθε περίπτωση.

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

Η προαιρετική τιμή here (προεπιλογή 3.0) καθορίζει έναν παράγοντα με τον οποίο θα πολλαπλασιάσουμε τον χρόνο αναμονής μιας απάντησης που έχουμε ήδη λάβει από την ίδια διαδρομή. Η προκύπτουσα τιμή χρησιμοποιείται ως χρονικό όριο για το πακέτο ανίχνευσης, αντί για (αλλά όχι μεγαλύτερη από) την τιμή max. Η προαιρετική τιμή near (προεπιλογή 10.0) καθορίζει έναν παρόμοιο παράγοντα για μια απάντηση από κάποια επόμενη διαδρομή. (Χρησιμοποιείται ο χρόνος του πρώτου αποτελέσματος που βρέθηκε και στις δύο περιπτώσεις).

Πρώτα, αναζητούμε την ίδια διαδρομή (της διαδρομής ανίχνευσης που θα εκτυπωθεί πρώτη από εδώ και στο εξής). Εάν δεν βρεθεί τίποτα, τότε αναζητούμε κάποια επόμενη διαδρομή. Εάν δεν βρεθεί τίποτα, χρησιμοποιούμε την τιμή max. Εάν οι τιμές here και/ή near είναι μηδέν, η αντίστοιχη υπολογιστική διαδικασία παραλείπεται. Οι τιμές here και near είναι πάντα μηδέν εάν έχει καθοριστεί μόνο η τιμή max (για συμβατότητα με προηγούμενες εκδόσεις).

-q nqueries, --queries=nqueries

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

-r     Παρακάμπτει τις κανονικές πίνακες δρομολόγησης και στέλνει απευθείας σε έναν κεντρικό υπολογιστή σε ένα συνδεδεμένο δίκτυο. Εάν ο κεντρικός υπολογιστής δεν βρίσκεται σε ένα συνδεδεμένο δίκτυο, επιστρέφεται ένα σφάλμα. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί για να στείλετε ένα σήμα ping σε έναν τοπικό κεντρικό υπολογιστή μέσω μιας διεπαφής που δεν διαθέτει δρομολόγηση μέσω αυτής.

-s source_addr, --source=source_addr

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


-z sendwait, --sendwait=sendwait

Ελάχιστο χρονικό διάστημα μεταξύ των ελέγχων (προεπιλογή 0). Εάν η τιμή είναι μεγαλύτερη από 10, καθορίζει έναν αριθμό σε χιλιοστά του δευτερολέπτου, διαφορετικά είναι ένας αριθμός δευτερολέπτων (επιτρέπονται δεκαδικές τιμές). Χρήσιμο όταν ορισμένοι δρομολογητές χρησιμοποιούν περιορισμό ρυθμού για τα μηνύματα ICMP.

-e, --extensions

Εμφάνιση επεκτάσεων ICMP (rfc4884). Η γενική μορφή είναι CLASS/TYPE: ακολουθούμενη από μια εξαδραδική έξοδο. Το MPLS (rfc4950) εμφανίζεται αναλυμένο, σε μορφή: MPLS:L=label,E=exp_use,S=stack_bottom,T=TTL (περισσότερα αντικείμενα διαχωρίζονται με /). Οι πληροφορίες διεπαφής (rfc5837) εμφανίζονται επίσης αναλυμένες, στην ακόλουθη μορφή: {INC|SUB|OUT|NXT}:index,IP_addr,"name",mtu=MTU (όλα τα τέσσερα πεδία ενδέχεται να λείπουν).

-A, --as-path-lookups

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

-V, --version

Εμφάνιση της έκδοσης και έξοδος.

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

--sport=port

Επιλέγει τη θύρα προέλευσης που θα χρησιμοποιηθεί. Υποδηλώνει -N 1 -w 5. Συνήθως, οι θύρες προέλευσης (εάν είναι εφαρμόσιμες) επιλέγονται από το σύστημα.

--fwmark=mark

Ορίζει τη σήμανση τείχους προστασίας για τα εξερχόμενα πακέτα (από την έκδοση 2.6.25 του πυρήνα Linux).

-M method, --module=name

Χρήση της καθορισμένης μεθόδου για λειτουργίες εντοπισμού διαδρομής. Η προεπιλεγμένη μέθοδος παραδοσιακού UDP έχει όνομα default, το ICMP (-I) και το TCP (-T) έχουν ονόματα icmp και tcp, αντίστοιχα. Οι επιλογές ειδικές για τη μέθοδο μπορούν να περαστούν με το -O. Οι περισσότερες μέθοδοι έχουν τις δικές τους απλές συντομεύσεις, (-I σημαίνει -M icmp, κ.λπ.).

-O option, --options=options

Καθορίζει ορισμένες επιλογές ειδικές για τη μέθοδο. Πολλές επιλογές διαχωρίζονται με κόμμα (ή χρησιμοποιήστε πολλές επιλογές -O στη γραμμή εντολών). Κάθε μέθοδος μπορεί να έχει τις δικές της συγκεκριμένες επιλογές ή μπορεί να μην έχει καθόλου. Για να εκτυπώσετε πληροφορίες σχετικά με τις διαθέσιμες επιλογές, χρησιμοποιήστε -O help.

-U, --udp

Χρήση UDP σε μια συγκεκριμένη θύρα προορισμού για τον εντοπισμό διαδρομής (αντί να αυξάνεται η θύρα για κάθε έλεγχο). Η προεπιλεγμένη θύρα είναι 53 (dns).

-UL    Χρήση UDPLITE για τον εντοπισμό διαδρομής (η προεπιλεγμένη θύρα είναι 53).

-D, --dccp

Χρήση αιτημάτων DCCP για τους ελέγχους.

-P protocol, --protocol=protocol

Χρήση ακατέργαστου πακέτου του καθορισμένου πρωτοκόλλου για τον εντοπισμό διαδρομής. Το προεπιλεγμένο πρωτόκολλο είναι 253 (rfc3692).

--mtu Ανακάλυψη του MTU κατά μήκος της διαδρομής που εντοπίζεται. Υποδηλώνει -F -N 1. Το νέο MTU εκτυπώνεται μία φορά σε μια μορφή F=NUM κατά τον πρώτο έλεγχο μιας διαδρομής που απαιτεί να επιτευχθεί ένα τέτοιο MTU. (Στην πραγματικότητα, το αντίστοιχο μήνυμα ICMP "frag needed" συνήθως αποστέλλεται από την προηγούμενη διαδρομή).

Σημειώστε ότι ορισμένοι δρομολογητές ενδέχεται να αποθηκεύουν μία φορά τις πληροφορίες που έχουν δει σχετικά με την κατάτμηση. Έτσι, μπορεί να λάβετε το τελικό MTU από μια κοντινότερη διαδρομή. Δοκιμάστε να καθορίσετε ένα ασυνήθιστο tos με το -t, αυτό μπορεί να βοηθήσει για μια προσπάθεια (στη συνέχεια, μπορεί επίσης να αποθηκευτεί εκεί). Δείτε την επιλογή -F για περισσότερες πληροφορίες.

--back Εκτύπωση του αριθμού των οπισθοδρομήσεων όταν φαίνεται να διαφέρει από την εμπρόσθια κατεύθυνση. Αυτός ο αριθμός υπολογίζεται με την υπόθεση ότι οι απομακρυσμένες διαδρομές στέλνουν πακέτα απάντησης με αρχικό TTL που έχει οριστεί είτε σε 64, είτε σε 128 ή 255 (που φαίνεται να είναι μια κοινή πρακτική). Εκτυπώνεται ως αρνητική τιμή σε μορφή '-NUM'.

ΛΙΣΤΑ ΔΙΑΘΕΣΙΜΩΝ ΜΕΘΟΔΩΝ

Γενικά, μια συγκεκριμένη μέθοδος traceroute μπορεί να χρειαστεί να επιλεγεί με την επιλογή -M name, αλλά οι περισσότερες μέθοδοι έχουν τις δικές τους απλές παραμέτρους γραμμής εντολών (μπορείτε να τις δείτε μετά το όνομα της μεθόδου, αν υπάρχουν).

default

Η παραδοσιακή, αρχαία μέθοδος tracerouting. Χρησιμοποιείται από προεπιλογή.

Τα πακέτα ανίχνευσης είναι UDP datagrams με τις λεγόμενες "απίθανες" θύρες προορισμού. Η "απίθανη" θύρα του πρώτου πακέτου ανίχνευσης είναι η 33434, και στη συνέχεια για κάθε επόμενο πακέτο ανίχνευσης αυξάνεται κατά ένα. Δεδομένου ότι οι θύρες αναμένεται να μην χρησιμοποιούνται, ο κεντρικός υπολογιστής προορισμού συνήθως επιστρέφει "icmp unreach port" ως τελική απάντηση. (Κανείς δεν ξέρει τι συμβαίνει όταν μια εφαρμογή ακούει σε αυτές τις θύρες, παρόλα αυτά).

Αυτή η μέθοδος επιτρέπεται για μη προνομιούχους χρήστες.

icmp       -I

Η πιο συνηθισμένη μέθοδος για τώρα, η οποία χρησιμοποιεί πακέτα ICMP echo για τις ανιχνεύσεις. Εάν μπορείτε να ping(8) τον κεντρικό υπολογιστή προορισμού, τότε η μέθοδος ICMP tracerouting είναι επίσης εφαρμόσιμη.

Αυτή η μέθοδος μπορεί να επιτραπεί για μη προνομιούχους χρήστες από την έκδοση 3.0 του kernel (IPv4, για IPv6 από την έκδοση 11, η οποία υποστηρίζει νέες υποδοχές dgram ICMP (ή "ping"). Για να επιτραπούν αυτές οι υποδοχές, ο διαχειριστής συστήματος θα πρέπει να παρέχει ένα εύρος sysctl net/ipv4/ping_group_range για να ταιριάζει με οποιαδήποτε ομάδα του χρήστη. Επιλογές:

raw    Χρησιμοποιήστε μόνο υποδοχές raw (ο παραδοσιακός τρόπος).

Αυτός ο τρόπος δοκιμάζεται πρώτος από προεπιλογή (για λόγους συμβατότητας), και στη συνέχεια οι νέες υποδοχές dgram ICMP ως εναλλακτική λύση.

dgram  Χρησιμοποιήστε μόνο υποδοχές dgram ICMP.

tcp        -T

Καλά γνωστή σύγχρονη μέθοδος, που προορίζεται για την παράκαμψη των τειχών προστασίας. Χρησιμοποιεί μια σταθερή θύρα προορισμού (από προεπιλογή είναι η 80, http).

Εάν υπάρχουν φίλτρα στο δίκτυο, τότε πιθανότατα οποιεσδήποτε "απίθανες" θύρες UDP (όπως στην μέθοδο default) ή ακόμη και τα πακέτα ICMP echo (όπως στην μέθοδο ICMP) φιλτράρονται, και ολόκληρο το tracerouting θα σταματήσει σε ένα τέτοιο τείχος προστασίας. Για να παρακάμψουμε ένα φίλτρο δικτύου, πρέπει να χρησιμοποιήσουμε μόνο τους επιτρεπόμενους συνδυασμούς πρωτοκόλλου/θύρας. Εάν κάνουμε tracerouting σε έναν, ας πούμε, διακομιστή αλληλογραφίας, τότε είναι πιο πιθανό το -T -p 25 να μπορεί να τον προσεγγίσει, ακόμη και αν το -I δεν μπορεί.

Αυτή η μέθοδος χρησιμοποιεί τη γνωστή "τεχνική ημι-ανοικτής σύνδεσης", η οποία αποτρέπει τις εφαρμογές στον κεντρικό υπολογιστή προορισμού από το να βλέπουν τις ανιχνεύσεις μας. Κανονικά, στέλνεται ένα TCP SYN. Για θύρες που δεν χρησιμοποιούνται, λαμβάνουμε ένα TCP RESET, και όλα τελειώνουν. Για ενεργές θύρες που χρησιμοποιούνται, λαμβάνουμε ένα TCP SYN+ACK, αλλά απαντάμε με ένα TCP RESET (αντί για το αναμενόμενο TCP ACK), με αυτόν τον τρόπο η απομακρυσμένη σύνδεση TCP διακόπτεται, ακόμη και χωρίς η εφαρμογή να το καταλάβει.

Υπάρχουν μερικές επιλογές για τη μέθοδο TCP:

syn,ack,fin,rst,psh,urg,ece,cwr

Ορίζει τις καθορισμένες σημαίες TCP για το πακέτο ανίχνευσης, σε οποιονδήποτε συνδυασμό.

flags=num

Ορίζει το πεδίο σημαίας στην κεφαλίδα TCP ακριβώς στο num.

ecn    Στείλτε ένα πακέτο SYN με τις σημαίες TCP ECE και CWR (για την Εμφανή Ειδοποίηση Σύγκλισης, rfc3168).

sack,timestamps,window_scaling

Χρησιμοποιήστε την αντίστοιχη επιλογή κεφαλίδας TCP στο εξερχόμενο πακέτο ανίχνευσης.


sysctl Χρησιμοποιήστε την τρέχουσα ρύθμιση sysctl (/proc/sys/net/*) για τις παραπάνω επιλογές κεφαλίδας TCP και το ecn.

Εφαρμόζεται από προεπιλογή, εάν δεν καθοριστεί κάτι άλλο.

fastopen

Χρησιμοποιήστε την επιλογή TCP fastopen (κατά τη διάρκεια του SYN) για τη διαπραγμάτευση της αρχικής cookie.

mss=[num]

Χρησιμοποιήστε την τιμή num (ή την υπάρχουσα) για την επιλογή κεφαλίδας maxseg TCP (κατά τη διάρκεια του SYN) και εντοπίστε τη ρύθμιση κατά μήκος της διαδρομής που ανιχνεύεται. Η νέα αλλαγμένη τιμή mss εκτυπώνεται μία φορά με τη μορφή M=NUM στο πρώτο probe στο οποίο ανιχνεύθηκε. Σημειώστε ότι ορισμένοι δρομολογητές ενδέχεται να επιστρέψουν ένα πολύ μικρό αρχικό τμήμα στο μήνυμα λήξης χρόνου, καθιστώντας τον έλεγχο αδύνατο. Επιπλέον, οι απαντήσεις ενδέχεται να φτάσουν σε διαφορετική σειρά. Όλα αυτά μπορούν να οδηγήσουν σε μεταγενέστερη θέση της αναφοράς (η χρήση του -N 1 μπορεί να βοηθήσει για τη σειρά).

info Εκτυπώστε τις σημαίες TCP και τις υποστηριζόμενες επιλογές των τελικών απαντήσεων TCP όταν επιτευχθεί ο προορισμός. Σας επιτρέπει να προσδιορίσετε εάν μια εφαρμογή ακούει στη θύρα και άλλα χρήσιμα πράγματα. Οι υποστηριζόμενες επιλογές TCP είναι όλες αυτές που μπορούν να οριστούν με τις παραμέτρους -T -O, δηλαδή, mss, sack, timestamps, window_scaling και fastopen, με την παρόμοια μορφή εξόδου (μια τιμή για το mss και απλή παρουσία για τις άλλες).

Η προεπιλεγμένη επιλογή είναι syn,sysctl.

tcpconn

Μια αρχική υλοποίηση της μεθόδου tcp, απλά χρησιμοποιώντας την κλήση connect(2), η οποία ανοίγει μια πλήρη συνεδρία TCP. Δεν συνιστάται για κανονική χρήση, επειδή η εφαρμογή προορισμού επηρεάζεται πάντα (και μπορεί να προκληθεί σύγχυση).

udp -U

Χρησιμοποιήστε ένα πακέτο UDP με σταθερή θύρα προορισμού (προεπιλογή 53, DNS). Προορίζεται για παράκαμψη του τείχους προστασίας.

Σημειώστε ότι, σε αντίθεση με τη μέθοδο tcp, η αντίστοιχη εφαρμογή στον προορισμό πάντα λαμβάνει τα probes μας (με τυχαία δεδομένα) και οι περισσότερες μπορούν εύκολα να μπερδευτούν από αυτά. Οι περισσότερες φορές δεν θα απαντήσουν στα πακέτα μας, επομένως δεν θα δούμε ποτέ το τελευταίο hop στην διαδρομή. (Ευτυχώς, φαίνεται ότι τουλάχιστον οι διακομιστές DNS απαντούν με κάτι που προκαλεί αντίδραση).

Αυτή η μέθοδος επιτρέπεται για μη προνομιούχους χρήστες.

udplite -UL

Χρησιμοποιήστε ένα πακέτο udplite για τα probes (με σταθερή θύρα προορισμού, προεπιλογή 53).

Αυτή η μέθοδος επιτρέπεται για μη προνομιούχους χρήστες. Επιλογές:

coverage=num

Ορίστε την κάλυψη αποστολής udplite στην τιμή num.

dccp -D

Χρησιμοποιήστε πακέτα αιτήματος DCCP για τα probes (rfc4340).

Αυτή η μέθοδος χρησιμοποιεί την ίδια "τεχνική ημι-ανοιχτού τύπου" που χρησιμοποιείται για το TCP. Η προεπιλεγμένη θύρα προορισμού είναι 3343.

Επιλογές:

service=num

Ορίστε τον κωδικό υπηρεσίας DCCP στην τιμή num (η προεπιλογή είναι 1885957735).

raw -P proto

Στείλτε ένα πακέτο πρωτόκολλου raw της μορφής proto. Δεν χρησιμοποιούνται κεφαλίδες ειδικές για το πρωτόκολλο, μόνο η κεφαλίδα IP. Υποδηλώνει -N 1 -w 5. Επιλογές:

protocol=proto

Χρησιμοποιήστε το πρωτόκολλο IP proto (η προεπιλογή είναι 253).

ΣΗΜΕΙΩΣΕΙΣ

Για να επιταχυνθεί η εργασία, συνήθως αποστέλλονται ταυτόχρονα πολλά probes. Από την άλλη πλευρά, αυτό δημιουργεί μια "καταιγίδα πακέτων", ειδικά στην κατεύθυνση της απάντησης. Οι δρομολογητές μπορούν να περιορίσουν τον ρυθμό των απαντήσεων ICMP και ορισμένες απαντήσεις μπορεί να χαθούν. Για να αποφευχθεί αυτό, μειώστε τον αριθμό των ταυτόχρονων probes ή ακόμα και ορίστε τον σε 1 (όπως στην αρχική υλοποίηση του traceroute), π.χ. -N 1.

Ο τελικός (στόχος) υπολογιστής μπορεί να απορρίψει μερικές από τις ταυτόχρονες διερευνήσεις και μπορεί ακόμη και να απαντήσει μόνο στις πιο πρόσφατες. Αυτό μπορεί να οδηγήσει σε επιπλέον "φαίνεται να έχουν λήξει" αναφορές κοντά στην τελική διαδρομή. Χρησιμοποιούμε έναν έξυπνο αλγόριθμο για την αυτόματη ανίχνευση μιας τέτοιας κατάστασης, αλλά εάν αυτό δεν βοηθήσει στην περίπτωσή σας, απλώς χρησιμοποιήστε την επιλογή -N 1.

Για ακόμη μεγαλύτερη σταθερότητα, μπορείτε να επιβραδύνετε τη λειτουργία του προγράμματος με την επιλογή -z, για παράδειγμα, χρησιμοποιήστε -z 5 για μια παύση μισού δευτερολέπτου μεταξύ των διερευνήσεων.

Για να αποφύγουμε την επιπλέον αναμονή, χρησιμοποιούμε έναν προσαρμοστικό αλγόριθμο για τα χρονικά όρια (δείτε την επιλογή -w για περισσότερες πληροφορίες). Αυτό μπορεί να οδηγήσει σε πρόωρη λήξη (ειδικά όταν οι χρόνοι απόκρισης διαφέρουν κατά καιρούς) και στην εκτύπωση ενός "*" αντί για μια ώρα. Σε μια τέτοια περίπτωση, απενεργοποιήστε αυτόν τον αλγόριθμο, καθορίζοντας την επιλογή -w με το επιθυμητό χρονικό όριο (για παράδειγμα, -w 5).

Εάν ορισμένοι κόμβοι δεν αναφέρουν τίποτα για καμία μέθοδο, η τελευταία ευκαιρία για να αποκτήσετε κάτι είναι να χρησιμοποιήσετε την εντολή ping -R (IPv4, και μόνο για τους 8 πλησιέστερους κόμβους).

ΔΕΣ ΕΠΙΣΗΣ

ping(8), ping6(8), tcpdump(8), netstat(8)