Προς το περιεχόμενο

Ερώτηση περι hostname


astrofos

Προτεινόμενες αναρτήσεις

Έχω ένα μπέρδεμα σχετικά με την εντολή hostname.

 

Ένας υπολογιστής μπορεί να έχει πολλές συσκευές δικτύου και η κάθε μια από αυτές να έχει διαφορετικό hostname;

 

π.χ.:

συσκευή lo με ip 127.0.0.1

συσκευή eth0 με ip 89.345.260.223

συσκευή eth1 με ip 89.310.254.236

 

και στο /etc/hosts

127.0.0.1 localhost.localdomain localhost

89.345.260.223 host-one.somedomain

89.310.254.236 host-two.otherdomain

 

οταν εκτελείς:

hostname new.host.name

 

τι ακριβώς αλλάζει;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το hostname είναι το όνομα του μηχανήματος. Είναι μέλος μιας δομής μέσα στον πυρήνα, και είναι αυτό που αλλάζει όταν δίνεις την εντολή `hostname new.host.name'. Μπορεί να έχει σχέση με το όνομα που έχει το μηχάνημα στο DNS, ή όχι.

 

Το /etc/hosts από την άλλη, περιέχει αντιστοιχίσεις μεταξύ IP διευθύνσεων και ενός ή περισσοτέρων ονομάτων. Το χρησιμοποιεί ο resolver του συστήματος, δηλαδή η gethostbyname(), όπως μπορείς να δεις και στο /etc/nsswitch.conf:

>
hosts:       files dns

Αυτό σημαίνει ότι κάθε φορά που καλείς την gethostbyname() (π.χ. είτε γράφοντας host a.host.name, είτε λέγοντας ssh a.boxes.name κλπ.), πρώτα συμβουλεύεται το /etc/hosts (files) και αν δε βρει εκεί κάποια αντιστοιχία, ρωτάει τους DNS servers που έχει στο /etc/resolv.conf.

 

Με άλλα λόγια:

  • Το hostname ενός μηχανήματος είναι μοναδικό
  • Κάθε interface δεν έχει hostname, αλλά μια ή περισσότερες IP's, στις οποίες αντιστοιχούν ένα ή περισσότερα DNS records.
  • Εκτελώντας `hostname a.new.hostname' δεν αλλάζει τίποτα στο DNS system όπως και στο /etc/hosts.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 εβδομάδες αργότερα...
Το hostname είναι το όνομα του μηχανήματος.

...

Το /etc/hosts από την άλλη, περιέχει αντιστοιχίσεις μεταξύ IP διευθύνσεων και ενός ή περισσοτέρων ονομάτων.

...

Με άλλα λόγια:

  • Το hostname ενός μηχανήματος είναι μοναδικό
  • Κάθε interface δεν έχει hostname, αλλά μια ή περισσότερες IP's, στις οποίες αντιστοιχούν ένα ή περισσότερα DNS records.
  • Εκτελώντας `hostname a.new.hostname' δεν αλλάζει τίποτα στο DNS system όπως και στο /etc/hosts.

 

 

Ευχαριστώ για τη απάντηση όμως είμαι ακόμα μπερδεμένος. Απο αυτά που λές συμπεραίνω οτι αυτό που μετράει οταν χρησιμοποιώ ένα δικτυακό πρόγραμμα είναι τα /etc/hosts & DNS records.

 

Π.Χ. σύμφωνα με το παράδειγμά μου οταν κάνω ping host-one.somedomain βλέπω τα εξής:

PING host-one.somedomain (89.345.260.223) 56(84) bytes of data.

64 bytes from host-one.somedomain (89.345.260.223): icmp_seq=1 ttl=64 time=0.045 ms

...

 

ενώ οταν κάνω ping host-two.otherdomain βλέπω τα εξής:

PING host-two.otherdomain (89.310.254.236) 56(84) bytes of data.

64 bytes from host-two.otherdomain (89.310.254.236): icmp_seq=1 ttl=64 time=0.045 ms

...

 

Το μηχάνημά μου λοιπόν έχει 3 network interfaces και 4 διαφορετικά ονόματα (localhost.localdomain, localhost, host-one.somedomain, host-two.otherdomain). Δηλαδή σε ένα μηχάνημα μπορούν να αντοιστοιχούν πολλές διαφορετικές DNS διευθύνσεις ενώ το hostname που είναι μοναδικό μπορεί να είναι άσχετο με αυτές. Σωστά;

 

Τελικά αυτό που με μπερδεύει είναι οταν κάνω: man hostname:

Hostname is the program that is used to either set or display the current host, domain or node name of the system. These names are used by many of the networking programs to identify the machine.
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι, το hostname είναι μοναδικό.

Τα υπόλοιπα είναι τα dns entries για τα interfaces που έχει το συγκεκριμένο μηχάνημα(router), και όποιο και να "καλέσεις" θα σε οδηγήσει στο ίδιο μηχάνημα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...