ΚΕΝΤΡΟ ΠΛΗ.ΝΕ.Τ. Ν. ΦΛΩΡΙΝΑΣ

Οι Domain Name Servers

 

Τι Είναι οι Domain Name Servers

Κάθε φορά που χρησιμοποιούμε το Internet είτε για να στείλουμε e-mail ή για να περιηγηθούμε στο Web, χρησιμοποιούμε κάποιους domain name servers χωρίς ίσως να το αντιλαμβανόμαστε. Οι domain name servers (DNS) αποτελούν ένα πολύ σημαντικό αλλά άγνωστο κομμάτι του Internet. Το σύστημα DNS αποτελεί μια από τις μεγαλύτερες και πιο ενεργές κατανεμημένες βάσεις δεδομένων που υπάρχουν στον κόσμο και χωρίς αυτό το Internet θα είχε καταρρεύσει.

 

Τα Βασικά για τους Domain Name Servers

Όπως αναφέραμε νωρίτερα, όταν χρησιμοποιούμε το Internet για να περιηγηθούμε στο Web ή για να στείλουμε ένα μήνυμα e-mail, χρησιμοποιούμε ένα domain name (όνομα χώρου) προς τον σκοπό αυτό. Για παράδειγμα, το URL http://www.florina.gr περιέχει το domain name florina.gr, όπως και η διεύθυνση e-mail webmaster@florina.gr. Τα ονόματα που είναι κατανοητά από τους ανθρώπους, όπως είναι το florina.gr, μπορούμε να τα θυμόμαστε εύκολα και να καταλαβαίνουμε αμέσως σε τι αναφέρονται, αλλά δεν έχουν κανένα νόημα για τα μηχανήματα.

Όλα τα μηχανήματα χρησιμοποιούν αντί για ονόματα τις λεγόμενες IP διευθύνσεις για να μπορούν να επικοινωνούν μεταξύ τους. Για παράδειγμα, το μηχάνημα στο οποίο εμείς αναφερόμαστε ως www.florina.gr έχει την IP διεύθυνση 70.84.87.103. Κάθε φορά που χρησιμοποιούμε ένα όνομα χώρου (domain name), στην ουσία κάνουμε χρήση των domain name servers (DNS) του Internet για να μεταφράσουμε το κατανοητό από τους ανθρώπους domain name στην κατανοητή από το μηχάνημα IP διεύθυνση.

Η εργασία των domain name servers είναι να μεταφράσουν (αντιστοιχίσουν) τα domain names με IP διευθύνσεις. Αν και αυτή η εργασία ακούγεται απλή, όμως δεν είναι για τους εξής λόγους :

Το σύστημα DNS είναι στην ουσία μια βάση δεδομένων και δεν υπάρχει άλλη βάση δεδομένων στον κόσμο που να δέχεται τόσες πολλές αιτήσεις (requests) σε καθημερινή βάση και καμία άλλη βάση δεδομένων στον κόσμο δεν δίνει δικαίωμα σε εκατομμύρια χρήστες να την τροποποιούν.

 

Οι IP Διευθύνσεις

Για να μπορούν να ξεχωρίσουν όλα τα μηχανήματα που υπάρχουν στο Internet, στο καθένα απ’ αυτά έχει δοθεί (εκχωρηθεί) μια μοναδική διεύθυνση που είναι γνωστή με τον όρο IP διεύθυνση (IP address), όπου το IP σημαίνει Internet Protocol, και αυτές οι διευθύνσεις είναι αριθμοί των 32 bits που αναφέρονται συνήθως ως 4 octets που χωρίζονται με τελείες.

Μια τυπική IP διεύθυνση έχει την εξής μορφή :

70.84.87.103

Οι 4 αριθμοί σε μια IP διεύθυνση αποκαλούνται octets επειδή μπορούν να έχουν τιμές μόνο από 0 έως και 255, δηλ. 28=256 δυνατές τιμές ανά octet. Το κάθε μηχάνημα που είναι συνδεδεμένο στο Internet έχει τη δική του IP διεύθυνση. Ένας server διαθέτει μια στατική (σταθερή, static) IP διεύθυνση η οποία δεν αλλάζει συχνά.

Ένας οικιακός υπολογιστής που κάνει κλήσεις μέσω ενός modem αποκτά μια IP διεύθυνση που δίνεται από τον παροχέα υπηρεσιών Internet (ISP) και που είναι διαφορετική κάθε φορά που κάνει κλήση για σύνδεση στο Internet (dial in). Αυτή η IP διεύθυνση είναι μοναδική για κάθε σύνοδό μας (session) και είναι πολύ πιθανό να είναι διαφορετική την επόμενη φορά που θα συνδεθούμε με dial in. Μ’ αυτόν τον τρόπο, ένας ISP χρειάζεται μία μόνο IP διεύθυνση για κάθε modem που υποστηρίζει και όχι για τον κάθε πελάτη του (συνδρομητή).

Αν εργαζόμαστε με τα Windows, μπορούμε να δούμε την τρέχουσα IP διεύθυνσή μας με την εντολή winipcfg ή με την ipconfig αν έχουμε Windows 2000/XP. Σ’ ένα μηχάνημα Unix, πρέπει να γράψουμε την εντολή nslookup με το όνομα ενός μηχανήματος, όπως για παράδειγμα www.florina.gr, για να εμφανισθεί η IP διεύθυνση του μηχανήματος. Με την εντολή hostname μπορούμε να μάθουμε το όνομα του μηχανήματος.

Όσον αφορά τα μηχανήματα του Internet, η IP είναι όλα όσα χρειαζόμαστε για να μπορέσουμε να επικοινωνήσουμε μ’ έναν server. Για παράδειγμα, μπορούμε να γράψουμε στον φυλλομετρητή μας το URL http:// 70.84.87.103 για να συνδεθούμε με το μηχάνημα που περιέχει τον Web server για την ιστοσελίδα www.florina.gr. Τα domain names αποτελούν μια ευκολία μόνο και μόνο για να είναι κατανοητά από τους ανθρώπους.

 

Τα Ονόματα Χώρου (Domain Names)

Αν θα ήμασταν υποχρεωμένοι να θυμόμαστε τις IP διευθύνσεις όλων των Web sites που επισκεπτόμαστε καθημερινά, σίγουρα θα είχαμε τρελαθεί. Προφανώς δεν είναι δυνατόν να απομνημονεύσουμε ατέλειωτες σειρές από τυχαίους αριθμούς, αλλά είμαστε καλοί στο να θυμόμαστε λέξεις και εδώ είναι που αναλαμβάνουν ρόλο τα ονόματα χώρου (domain names).

Οι καταλήξεις .com, .edu, .uk, .gr κ.ά. των domain names είναι γνωστές με τον όρο top-level domain (domain ανωτάτου επιπέδου) ή και first-level domain (domain πρώτου επιπέδου). Υπάρχουν αρκετές εκατοντάδες top-level domain names, όπως είναι τα .com, .edu, .gov, .mil, .net, .org και .int, αλλά και μοναδικοί συνδυασμοί δύο γραμμάτων για να μπορεί να ξεχωρίζει η κάθε χώρα, όπως .gr για την Ελλάδα, .dk για τη Δανία κοκ.

Μέσα σε κάθε top-level domain υπάρχει μια τεράστια λίστα από second-level domains, δηλ. από domains δευτέρου επιπέδου, που αναφέρονται σε συγκεκριμένες εταιρείες, υπηρεσίες κοκ. Το κάθε όνομα που υπάρχει σ’ ένα top-level domain πρέπει να είναι μοναδικό, αλλά μπορεί να υπάρχουν ίδια ονόματα που να ανήκουν σε διαφορετικά domains, όπως για παράδειγμα τα mydomain.com και mydomain.org, που δεν έχουν καμία σχέση μεταξύ τους.

Το domain prespes.florina.gr είναι ένα domain τρίτου επιπέδου (third-level domain) και αν και μέχρι 127 επίπεδα είναι δυνατό να υλοποιηθούν, παραπάνω από 4 συναντιούνται σπάνια. Η τελευταία αριστερά λέξη, όπως www ή prespes, είναι γνωστή με τον όρο host name και προσδιορίζει το όνομα ενός συγκεκριμένου μηχανήματος (που έχει μια συγκεκριμένη IP διεύθυνση) σ’ ένα domain. Ένα συγκεκριμένο domain μπορεί να περιέχει εκατομμύρια από host names εφόσον όλα είναι μοναδικά μέσα σ’ αυτό το domain.

 

Η Απόδοση των Domain Names

Επειδή όλα τα ονόματα σ’ ένα συγκεκριμένο domain πρέπει να είναι μοναδικά, θα πρέπει να υπάρχει μια μοναδική οντότητα που να έχει τον έλεγχο της λίστας και να εξασφαλίζει την αποφυγή των διπλών ονομάτων. Όταν καταχωρούμε (register) ένα domain name, η αίτησή μας διεκπεραιώνεται από κάποιον από τους πολλούς καταχωρητές (registrars) που συνεργάζονται με την οντότητα που έχει την ευθύνη του συγκεκριμένου domain ώστε να προστεθεί το όνομα στη λίστα.

Η οντότητα αυτή διατηρεί μια κεντρική βάση δεδομένων, που είναι γνωστή με τον όρο whois database, η οποία περιέχει πληροφορίες σχετικά με τον ιδιοκτήτη (owner) και τους διακομιστές ονομάτων (name servers) για το κάθε καταχωρημένο domain. Από τη βάση αυτή μπορούμε να πάρουμε πληροφορίες για οποιοδήποτε υπάρχον domain.

Ενώ είναι πολύ σημαντικό το να υπάρχει μια κεντρική υπηρεσία που να διαχειρίζεται τη βάση δεδομένων με τα ονόματα στα διάφορα top-level domains, είναι επίσης επιτακτικό να υπάρχει μια αποκέντρωση αυτής της διαχείρισης. Αυτό σημαίνει ότι οι διάφορες χώρες και οι μεγάλες εταιρείες μπορούν να διαχειριστούν μόνες τους τα domains τα οποία τούς ανήκουν. Γι’ αυτόν τον λόγο, το σύστημα DNS αποτελεί μια κατανεμημένη βάση δεδομένων (distributed database) και έτσι η κάθε χώρα ή η κάθε εταιρεία μπορεί να διαχειρισθεί αυτή τη βάση δεδομένων όπως θέλει καθώς αποτελεί ιδιοκτησία της.

Το κάθε domain συσχετίζεται μ’ έναν domain name server ο οποίος αναλαμβάνει να χειρισθεί τις αιτήσεις (requests) που απευθύνονται σ’ αυτό και υπάρχει κάποιος υπεύθυνος για τη συντήρηση των εγγραφών (καταχωρήσεων, records) σ’ αυτό το DNS. Αυτή είναι και η ομορφιά του συστήματος DNS, ενώ δηλαδή είναι ένα πλήρως κατανεμημένο (distributed) σύστημα σ’ όλον τον κόσμο σε εκατομμύρια μηχανήματα που τα διαχειρίζονται εκατομμύρια χρήστες, εξακολουθεί να συμπεριφέρεται ως μια ενιαία, ολοκληρωμένη βάση δεδομένων.

 

Πώς Δουλεύουν οι DNS Servers

Οι name servers κάνουν τα εξής δύο πράγματα όλη την ημέρα :

Όταν λαμβάνει μια αίτηση (request), ο name server μπορεί να κάνει κάτι από τα εξής τέσσερα πράγματα μ’ αυτήν :

Όταν καταχωρούμε ένα URL στον φυλλομετρητή μας, η πρώτη ενέργεια του browser είναι να μετατρέψει το domain name και το host name σε μια IP διεύθυνση έτσι ώστε ο φυλλομετρητής να είναι σε θέση να ζητήσει μια ιστοσελίδα από το μηχάνημα που υπάρχει σ’ εκείνη την IP διεύθυνση. Για να γίνει αυτή η μετατροπή, ο browser επικοινωνεί μ’ έναν διακομιστή ονομάτων χώρου (name server).

Όταν στήνουμε ένα μηχάνημα στο Internet, θα πρέπει να αναφέρουμε στο μηχάνημα ποιον name server θα πρέπει να χρησιμοποιεί για να μετατρέπει τα domain names σε IP διευθύνσεις. Σε μερικά συστήματα το DNS δίνεται αυτόματα στο μηχάνημα όταν συνδεόμαστε στον ISP. Αν εργαζόμαστε με τα Windows 95/98/ME, μπορούμε να δούμε τον τρέχοντα name server με την εντολή winipcfg ή με την εντολή ipconfig για τα Windows 2000/XP. Σ’ ένα μηχάνημα Unix, γράφουμε nslookup και το όνομα του μηχανήματός μας.

Όποιο πρόγραμμα από το μηχάνημά μας θελήσει να επικοινωνήσει μ’ έναν name server για να αναλύσει ένα domain name, είναι σε θέση να γνωρίζει με ποιον name server να επικοινωνήσει καθώς μπορεί να διαβάσει την IP διεύθυνση του δικού μας name server από το λειτουργικό σύστημα. Ο browser συνεπώς έρχεται σ’ επαφή με τον δικό του name server και του αναφέρει : "Σε χρειάζομαι για να μετατρέψεις ένα domain name σε μια IP διεύθυνση". Για παράδειγμα, αν γράψουμε www.florina.gr στον browser μας, ο browser θα πρέπει να μετατρέψει αυτό το URL σε μια IP διεύθυνση και προς τον σκοπό αυτό μεταβιβάζει το URL στον default name server που διαθέτει και ζητάει να γίνει η μετατροπή.

Ο name server μπορεί να γνωρίζει ήδη την αιτούμενη IP διεύθυνση αν έγινε πρόσφατα μια άλλη αίτηση (request) για το ίδιο URL, καθώς οι name servers κρατούν σε μια ειδική μνήμη cache τις τελευταίες IP διευθύνσεις, ώστε να επιταχύνεται η όλη διαδικασία. Σ’ αυτήν την περίπτωση, ο name server μπορεί να επιστρέψει αμέσως την IP διεύθυνση. Ας πάρουμε, όμως, την περίπτωση που ο name server πρέπει να ξεκινήσει την όλη διαδικασία από την αρχή. Ο name server θα ξεκινήσει την αναζήτησή του για μια IP διεύθυνση επικοινωνώντας μ’ έναν από τους κεντρικούς (root) name servers, οι οποίοι γνωρίζουν την IP διεύθυνση όλων των name servers που διαχειρίζονται τα top-level domains.

Ο δικός μας name server θα ρωτήσει τον root για το www.florina.gr και ο root θα απαντήσει (υπό την προϋπόθεση ότι δεν υπάρχει caching) "Δεν γνωρίζω την IP διεύθυνση του www.florina.gr, αλλά ορίστε η IP διεύθυνση του gr name server". Όπως είναι φανερό, αυτοί οι root servers είναι ζωτικής σημασίας για την όλη διαδικασία, έτσι :

Ο root server γνωρίζει τις IP διευθύνσεις των name servers που διαχειρίζονται τις πολλές εκατοντάδες των top-level domains και επιστρέφει στον δικό μας name server την IP διεύθυνση για έναν name server για το domain gr. Ο δικός μας name server στέλνει μετά ένα ερώτημα (query) στον gr name server ζητώντας να μάθει την IP διεύθυνση του site www.florina.gr.

Ο name server για το domain gr γνωρίζει τις IP διευθύνσεις των name servers που διαχειρίζονται το domain florina.gr και τις επιστρέφει. Ο δικός μας name server έρχεται μετά σε επαφή με τον name server για το florina.gr και τον ρωτάει αν γνωρίζει την IP διεύθυνση του site www.florina.gr. Μια και την γνωρίζει, την επιστρέφει στον δικό μας name server, ο οποίος με τη σειρά του την επιστρέφει στον φυλλομετρητή, που μπορεί να έρθει σε επαφή με τον Web server του www.florina.gr για να λάβει μια ιστοσελίδα (Web page).

Ένα από τα κλειδιά για να μπορέσει να επιτευχθεί αυτή η διαδικασία είναι το redundancy (εφεδρεία). Αυτό σημαίνει ότι υπάρχουν πολλοί name servers σε κάθε επίπεδο, έτσι ώστε αν κάποιος πάθει βλάβη, υπάρχουν άλλοι για να διαχειρισθούν τις αιτήσεις (requests). Το άλλο κλειδί είναι το caching (μνήμη). Αυτό σημαίνει ότι αφότου ένας name server αναλύσει μια αίτηση (request), κρατάει σε μια ειδική μνήμη (cache) όλες τις IP διευθύνσεις που λαμβάνει. Εφόσον έχει ήδη υποβληθεί μια αίτηση σ’ έναν root server για κάποιο gr domain, θα γνωρίζει την IP διεύθυνση για έναν name server που διαχειρίζεται το domain gr και έτσι δεν θα υπάρχει ανάγκη να ενοχλεί συνέχεια τους root servers για τις ίδιες πληροφορίες.

Οι name servers δεν κάνουν βέβαια απεριόριστες καταχωρήσεις στη μνήμη cache και η διαδικασία του caching διαθέτει ένα συστατικό, που είναι γνωστό ως Time To Live (TTL), το οποίο ελέγχει για πόσο διάστημα ένας server θα κρατάει μια πληροφορία στη μνήμη cache. Όταν ο server λαμβάνει μια IP διεύθυνση, λαμβάνει και το TTL μαζί της. Ο name server θα αποθηκεύσει στη μνήμη cache την IP διεύθυνση για τη συγκεκριμένη χρονική περίοδο, που μπορεί να κυμαίνεται από λεπτά έως και ημέρες, και μετά θα την διαγράψει.

 

Δημιουργία ενός Καινούργιου Domain Name

Όταν θελήσουμε να δημιουργήσουμε ένα καινούργιο όνομα χώρου (domain name), θα πρέπει να κάνουμε τα εξής δύο πράγματα :

Υπάρχουν δύο τρόποι για να βρούμε έναν name server για ένα domain name :

Συνήθως οι μεγάλες εταιρείες διαθέτουν τους δικούς τους domain name servers, ενώ οι μικρότερες πληρώνουν συνδρομή σε κάποιους άλλους.

Για να δημιουργήσουμε ένα domain, συμπληρώνουμε μια φόρμα σε μια εταιρεία που κάνει καταχωρήσεις ονομάτων χώρου (domain name registration), όπως είναι οι register.com, verio.com, networksolutions.com κ.ά. Δημιουργείται μια προσωρινή ιστοσελίδα υπό κατασκευή (under construction page), μια καταχώρηση (entry) στον δικό τους name server και υποβάλλονται τα στοιχεία της φόρμας στη βάση δεδομένων whois.

Δύο φορές την ημέρα, οι name servers com, org, net κ.ά., λαμβάνουν ενημερώσεις με τις πιο πρόσφατες πληροφορίες για τις IP διευθύνσεις, οι οποίες καταχωρήσεις σημαίνουν την ύπαρξη (εμφάνιση) ενός καινούργιου domain.

 

Η Ομορφιά του DNS

Όπως έχουμε ήδη αντιληφθεί, το DNS (domain name system) είναι μια εκπληκτικά κατανεμημένη βάση δεδομένων (distributed database), που διαχειρίζεται καθημερινά δισεκατομμύρια αιτήσεων (requests) για δισεκατομμύρια ονομάτων χώρου μέσω ενός δικτύου που αποτελείται από εκατομμύρια από name servers τους οποίους διαχειρίζονται εκατομμύρια ανθρώπων.

Κάθε φορά που στέλνουμε ένα e-mail ή βλέπουμε μια ιστοσελίδα μέσω ενός URL, κάνουμε αιτήσεις (requests) σε πολλούς name servers που βρίσκονται διασκορπισμένοι σ’ όλον τον κόσμο. Αυτό που είναι εκπληκτικό είναι ότι αυτή η διαδικασία είναι τελείως αόρατη και πάρα πολύ αξιόπιστη.

 

back.gif (9867 bytes)

Επιστροφή