γιατί το ping some.host.com κάνει PTR lookup στην IP του some.host.com?

Nick Demou ndemou at gmail.com
Thu Mar 22 14:34:22 EET 2012


Η απορία πηγάζει από μια πολύ καλή παρατήρηση του Γιώργου kargig:

2012/3/20 George K. <kargig.lists at gmail.com>:
> η ping ζητάει σε κάθε iteration/request το PTR της destination
> διεύθυνσης. Με το -n κόβεται αυτό. Ένα tcpdump την ώρα του ping θα σε
> πείσει :)

και όντος το δοκίμασα και είδα ότι όταν κάνω ping some.host.com η ping
κάνει πρώτα ένα και μοναδικό forward lookup για να βρει την ip από το
hostname και στη συνέχεια, πριν από κάθε echo request, κάνει reverse
lookup (PTR lookup) στην IP για να βρει... το hostname. Ξέρει κανείς
γιατί η ping (στο Linux) κάνει κάτι τόσο φαινομενικά παράλογο (στα
windows τα πράγματα είναι σαφώς πιο λογικά -- βλ. παρακάτω)?

Το λέω παράλογο λαμβάνοντας υπόψη τα εξής:
 α) η ping δεν έχει ανάγκη το αποτέλεσμα του PTR lookup (το hostname)
για να κάνει τη δουλειά της
 β) ακόμα και όταν το PTR lookup πετύχει και η ping πάρει ένα hostname
_δεν_ το εμφανίζει
 γ) το να μην έχει PTR record ένα IP είναι πολύ συνηθισμένο και λογικό
 δ) σε αυτές τις πολύ συνηθισμένες και λογικές περιπτώσεις η ping
καθυστερεί αρκετά sec ΣΕ ΚΑΘΕ ECHO REQUEST περιμένοντας να κάνει
timeout το PTR lookup
 ε) και το εντελώς παρανοϊκό: η ping κάνει PTR lookup όταν κάνεις ping
some.host.com αλλά όχι όταν κάνεις ping ip.of.some.host (!!!!)

Στα windows η δυνατότητα του reverse lookup υπάρχει (παράμετρος -a)
αλλά και είναι by default off και έχει κάποιο νόημα διότι τα windows
σου εμφανίζουν το hostname όταν κάνεις ping IpAddress

Από όσα θυμάμαι δεν έχω ξαναδεί τα windows να έχουν πιο λογική
συμπεριφορά από το linux σε αυτόν τον τομέα (basic tcp/ip tools) οπότε
μου κάνει ακόμα μεγαλύτερη εντύπωση (μήπως μου διαφεύγει κάτι βασικό?)



More information about the Linux-greek-users mailing list