Τι είναι το DNS

Επειδή οι IP διευθύνσεις είναι δύσκολο να αποτυπωθούν στο μυαλό μας υπήρχε η ανάγκη επίλυσης αυτού του προβλήματος. Φανταστείτε να θέλαμε να μπούμε σε μια συγκεκριμένη ιστοσελίδα και να πρέπει να θυμόμασταν μια IP διεύθυνση (π.χ. 140.15.89.8) θα ήταν κάτι πολύ κουραστικό καθότι υπάρχουν πολλές ιστοσελίδες στο διαδίκτυο όπου κάθε μια έχει την δική της IP διεύθυνση. Γι' αυτούς τους λόγους αναπτύχθηκε το σύστημα ονοματοδοσίας περιοχών (Domain Name System - DNS) το οποίο αναλαμβάνει την διαδικασία αντιστοίχισης μιας IP διεύθυνσης σε ένα όνομα (domain) που είναι μοναδικό. Το σύστημα ονομασίας περιοχών χρησιμοποιεί ιεραρχική αρχιτεκτονική. Δηλαδή οργανώνει τα ονόματα σε ιεραρχίες παρόμοιες με τις δομές καταλόγων σε ένα σύστημα αρχείων υπολογιστών. Τα ονόματα περιοχών συνήθως περιγράφουν οργανωτικές ή γεωγραφικές οντότητες. Δηλώνουν την χώρα που είναι συνδεδεμένο το δίκτυο, σε τι είδους οργανισμό ανήκει και σε μερικές περιπτώσεις τα ονόματα ορίζονται με ακόμη μεγαλύτερη λεπτομέρεια.

Ένα όνομα περιοχής αποτελείται από λέξεις που χωρίζονται μεταξύ τους με τελείες. Το πλήθος των λέξεων μπορεί να ποικίλει. Συνήθως συναντάμε ονόματα με τρείς έως και πέντε λέξεις. Το πρώτο επίπεδο περιοχών ονομάζονται βασικές περιοχές και βρίσκονται στα δεξιά του ονόματος. Στις Η.Π.Α. υπάρχουν επτά τέτοιες περιοχές, στις οποίες κατατάσσονται τα δίκτυα ανάλογα με τις δραστηριότητες τους. Αυτές είναι οι εξής:

  • .arpa: Ειδικοί οργανισμοί διαδικτύου
  • .edu: Εκπαιδευτικά ιδρύματα
  • .com: Εμπορικές επιχειρήσεις
  • .gov: Κρατικοί οργανισμοί
  • .mil: Στρατιωτικοί οργανισμοί
  • .net: Οργανισμοί διαχείρισης δικτύων
  • .org: Οργανισμοί που δεν εντάσσονται στις παραπάνω κατηγορίες

Εξήγηση
Internationalized
Domain Name - IDN
Αποτελεί ένα internet domain name το οποίο περιέχει ένα τουλάχιστον domain όνομα το οποίο αποτελείται από μη Αγγλικούς χαρακτήρες (π.χ. http://faß.de)
Domain Name System
Security Extensions - DNSSEC
Αποτελεί ένα σύνολο από DNS επεκτάσεις όπου επιτρέπει στους DNS πελάτες (clients) την δυνατότητα ταυτοποίησης προέλευσης δεδομένων (data origin authentication). Είναι μια ιδιότητα κατά την οποία ο παραλήπτης μπορεί να επιβεβαιώσει την προέλευση του μηνύματος.
second-level
domain - SLDC
Είναι ένα domain το οποίο είναι ένα βήμα πιο κάτω από ένα top-level domain. Για παράδειγμα έστω το example.com Το example είναι το δεύτερο όνομα top-level από το .com top level domain
IPV6 Το συγκεκριμένο domain υποστηρίζει IPv.6 πρόσβαση

Ορισμοί που θα συναντήσουμε στον παρακάτω πίνακα με τα Ευρωπαϊκά domains



Ευρωπαϊκά domains

Domain

Χώρα / Οργανισμός

Σημαία

IDN

DNSSEC

SLD

IPV6
.eu Ευρωπαϊκή Ένωση
.ad Ανδόρρα
.al Αλβανία -- --
.at Αυστρία -- --
.ax Νήσοι Άλαντ -- --
.ba Βοσνία-Ερζεγοβίνη -- --
.be Βέλγιο Latin
.bg Βουλγαρία Rus/Bg --
.ch Ελβετία --
.cy Κύπρος -- --
.cz Τσεχία --
.de Γερμανία
.dk Δανία --
.ee Εσθονία --
.es Ισπανία -- --
.fi Φιλανδία --
.fo Νησιά Φερόε -- --
.fr Γαλλία --
.uk Ηνωμένο Βασίλειο -- --
.gd Γρανάδα -- --
.gg Γκουέρνσεϊ --
.gi Γιβραλτάρ -- --
.gr / .ελ Ελλάδα --
.hr Κροατία -- --
.hu Ουγγαρία --
.ie Ιρλανδία --
.im Νήσος του Μαν -- --
.is Ισλανδία --
.it Ιταλία --
.li Λιχτενστάιν --
.lt Λιθουανία --
.lu Λουξεμβούργο --
.lv Λετονία --
.mc Μονακό --
.md Μολδαβία --
.me Μαυροβούνιο -- --
.mt Μάλτα -- --
.nl Ολλανδία --
.no Νορβηγία --
.pl Πολωνία

--
.pt Πορτογαλία Portuguese
.ro Ρουμανία --
.rs Σερβία --
.ru Ρωσία
.su Πρώην Ε.Σ.Σ.Δ.
.se Σουηδία --
.si Σλοβενία -- --
.sk Σλοβακία -- --
.sm Σαν Μαρίνο --
.ua Ουκρανία --

--
.va Βατικανό --

Πίνακας με τα Ευρωπαϊκά top level domains


Για περισσότερα domains μπορείτε να δείτε το συγκεκριμένο link: https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains


Επίπεδα ονοματολογίας

Κάτω από κάθε βασική περιοχή υπάρχει ένα δεύτερο επίπεδο περιοχών που συνήθως προσδιορίζει τον οργανισμό στον οποίον ανήκει το δίκτυο. Συνήθως, τα ονόματα (domain names) που εκχωρούνται είναι αντιπροσωπευτικά και αντικατοπτρίζουν την εταιρία ή τον οργανισμό στον οποίον ανήκουν. Για παράδειγμα, έστω το domain codebrakes.gr.

Το codebrakes.gr ανήκει στην βασική περιοχή της Ελλάδας (διότι έχει στο τέλος το .gr ή .ελ) και το domain name codebrakes αναφέρεται στο όνομα του αντίστοιχου youtube καναλιού. Αντίστοιχα η ίδια φιλοσοφία ακολουθείται απο οργανισμούς ή εταιρίες (π.χ. google.gr, amazon.com κλπ). Δηλαδή το όνομα της ιστοσελίδας πρέπει να είναι αντιπροσωπευτικό.

Σε περίπτωση που ο εκάστοτε οργανισμός ή μια εταιρία που έχει παραχωρηθεί σε αυτήν ένα domain name διαχωρίσει το δίκτυο της σε μικρότερα υποδίκτυα θα επεκταθεί πάνω στην περιοχή ονομάτων του οργανισμού της. Οπότε κάθε υποδίκτυο αντιστοιχείται σε μια περιοχή ονομάτων τρίτου επιπέδου που ονομάζεται subdomain. Ας πάρουμε πάλι το domain codebrakes.gr και ας υποθέσουμε ότι θέλουμε να δημιουργήσουμε ένα ξεχωριστό σημείο για forum, για chat και για mobile πρόσβαση. Για να δημιουργηθεί ένας ξεχωριστός χώρος θα πρέπει να επεκταθούμε πάνω στο κύριο domain .codebrakes.gr. Οπότε θα έχουμε chat.codebrakes.gr, forum.codebrakes.gr, mobile.codebrakes.gr

Συνεπώς τα subdomains chat.codebrakes.gr, forum.codebrakes.gr και mobile.codebrakes.gr ανήκουν στο κύριο domain name codebrakes.gr και εν συνεχεία στην βασική περιοχή της Ελλάδας .gr ή .ελ.



Παράδειγμα απεικόνισης επιπέδων ονοματολογίας


Το δικαίωμα χρήσης ενός ονόματος DNS διαχειρίζεται από οργανισμούς μητρώου DNS. Για την Ελλάδα, ο οργανισμός αυτός είναι το Ίδρυμα Τεχνολογίας και Έρευνας (Ι.Τ.Ε.) που εδρεύει στο Ηράκλειο, Κρήτης και είναι διαπιστευμένος ως οργανισμός μητρώου DNS από το ICANN (Internet Corporation for Assigned Names and Numbers). Το ICANN είναι μία μη κερδοσκοπική οργάνωση που είναι υπεύθυνη για το συντονισμό, της συντήρησης και της μεθοδολογίας των διαφόρων βάσεων δεδομένων (μεταξύ των οποίων και του DNS), που σχετίζονται με την καλή λειτουργία του διαδικτύου.

Με απλά λόγια το DNS είναι μια κατανεμημένη βάση δεδομένων όπου έχει υλοποιηθεί σε μια ιεραρχία από DNS εξυπηρετητές (DNS Servers) και ένα πρωτόκολλο του επιπέδου εφαρμογής που επιτρέπει σε υπολογιστές και DNS servers να υποβάλουν ερωτήματα στην κατανεμημένη βάση δεδομένων. Το πρωτόκολλο DNS εκτελείται πάνω από το UDP και χρησιμοποιεί την θύρα 53. Το DNS χρησιμοποιείται συνήθως από άλλα πρωτόκολλα επιπέδου εφαρμογής (όπως το HTTP, FTP, SMTP κλπ) για την μετάφραση ονομάτων υπολογιστών που παρέχονται από τον χρήστη σε IP διευθύνσεις.


Είδη DNS servers

Εξυπηρετητές Root DNS (Root name servers): Στο διαδίκτυο υπάρχουν 13 root DNS servers παγκοσμίως οι περισσότεροι εκ των οποίων βρίσκονται στην Βόρεια Αμερική. Σε αυτούς απευθύνονται οι τοπικοί (local) name servers που δεν μπορούν να μεταφράσουν ένα hostname. Οι DNS root servers είναι οι εξής:




Βόρεια Αμερική (Η.Π.Α.) Ευρώπη Ασία
  1. Verisign, Los Angeles, California
  2. USC-ISI Marina del Rey, California
  3. Cogent, Herndon, Virginia
  4. U Maryland College Park, Maryland
  5. ARL Aberdeen, Maryland
  1. Verisign, Dulles Virginia
  2. NASA Mt View, California
  3. Internet Software C. Palo Alto, California
  4. ICANN Los Angeles, California
  5. US DoD Columbus, Ohio
  1. RIPE London, United Kingdom
  2. Netnod, Stockholm, Sweden
  1. WIDE Tokyo, Japan

Εξυπηρετητές root DNS το 2012 (όνομα, οργανισμός, τοποθεσία)


Εξυπηρετητές ονομάτων τομέα ανώτατου επιπέδου (Top-level domain - TLD Servers): Αυτοί οι εξυπηρετητές είναι υπεύθυνοι για όλα τα domains com, org, net κλπ καθώς και για όλα τα top-level domains των κρατών π.χ. .gr, .ru κλπ. Η εταιρία Verisign Global Registry Services διαχειρίζεται τους servers του TLD για τον τομέα του ανώτατου επιπέδου com. Η εταιρία Educause διαχειρίζεται τους servers του TLD για τον τομέα του ανώτατου επιπέδου edu.


Αυθεντικοί εξυπηρετητές ονομάτων (Authoritative DNS servers): Κάθε οργανισμός που διαθέτει υπολογιστές που συνδέονται στο διαδίκτυο οφείλει να παρέχει δημόσια διαθέσιμες εγγραφές ονομάτων που αντιστοιχίζουν τα ονόματα αυτών των υπολογιστών με διευθύνσεις IP. Με απλά λόγια οι αυθεντικοί DNS servers αναλαμβάνουν να παρέχουν σε έναν οργανισμό αντιστοιχίες hostname σε διεύθυνση IP για τους servers που διαθέτει (π.χ. Web και Mail servers). Μπορεί να διατηρούνται από τον οργανισμό τον ίδιο ή από τον ISP (π.χ. Ο.Τ.Ε. , Wind κλπ).


Τοπικός εξυπηρετητής (Local DNS Server): Δεν ανήκει αυστηρά στην ιεραρχία των DNS servers. Κάθε πάροχος διαδικτύου ISP, εταιρία, πανεπιστήμιο κλπ έχει έναν τοπικό name server. Οπότε όταν ένας host θέλει να κάνει ένα ερώτημα (querry) DNS, το ερώτημα στέλνεται στον τοπικό του DNS server. Στην συνέχεια ο τοπικός name server προωθεί το ερώτημα στην ιεραρχία.


DNS Queries

Παράδειγμα: Έστω ένας host με το domain cis.poly.edu θέλει την IP διεύθυνση του gaia.cs.umass.edu

  • DNS Recursive queries (αναδρομικό ερώτημα): Αναθέτουν την μετάφραση του ονόματος στον name server στον οποίο απευθύνεται. Έχουν υψηλό φόρτο εργασίας.
  • Iterated Querry (επαναληπτικό ερώτημα): Όταν ο ερωτηθείς name server παραπέμπει τον client σε κάποιον άλλο name server. Στην ουσία είναι σαν να λέει «δεν γνωρίζω το όνομα, ρώτα αυτόν τον server»


Παράδειγμα DNS queries


Δομή DNS επικεφαλίδας

Δομή DNS επικεφαλίδας


  1. Αναγνωριστικό μηνύματος (message identifier): Αυτό το πεδίο είναι μήκους 16 bit και δημιουργείται από τον πελάτη (client) δηλαδή την οντότητα που στέλνει ένα DNS query. Ο server αντιγράφει αυτόν τον αριθμό όταν πρόκειται να στείλει μια απάντηση και το προσθέτει στο μήνυμα απάντησης DNS response χωρίς αλλάξει καμία σχετική πληροφορία. Όταν ο πελάτης (client) λάβει αυτό το DNS response μήνυμα θα ελέγξει το πεδίο αυτό για να το ταιριάξει με το αντίστοιχο DNS query που δημιούργησε.
    1. Flag - QR (Query/Response bit): Τίθεται σε 0 απο τον DNS client (query) και σε 1 απο τον DNS server (DNS response).
    2. Flag - OPCODE: Ορίζει τον τύπο του querry που φέρει το μηνύμα. Αυτό το υποπεδίο έχει μήκος 4-bit και ορίζεται απο τον δημιουργό του μηνύματος. Στον παρακάτω πίνακα ακολουθόύν οι τιμές που μπορεί να πάρει.
Τιμή opcode Περιγραφή
0 QUERY: Κλασσικό query μήνυμα
1 IQUERY: Αντίστροφο (inverse) query βέβαια πλέον δεν χρησιμοποιείται. Στο RFC 1035 ορίζεται ώς προεραιτική μέθοδος για να εφαρμόσουμε inverse DNS lookups. Λόγω προβλημάτων υλοποίησης αυτή η μέθοδος ποτέ δεν υλοποιήθηκε. Η χρήση αυτής της Opcode τιμής αντικαταστήθηκε απο το RFC 3425 τον Νοέμβριο του 2002.
2 Status: Αίτηση κατάστασης διακομιστή (server status request).
3 Δεσμευμένο (reserved): Δεσμευμένο, δεν χρησιμοποιείται.
4 NOTIFY: Ειδικό μήνυμα που προστέθηκε απο το RFC 1996. Χρησιμοποιείται απο έναν κύριο server (master/authoritative) για να ενημερώσει υποδεέστερους servers ότι η ζώνη δεδομένων έχει αλλάξει.
5 UPDATE: Ειδικό μήνυμα που προστέθηκε απο το RFC 2136 για εφαρμογή dynamic DNS. Επιτρέπει την επιλεκτική προσθήκη, διαγραφή ή ανανέωση πόρων καταγραφής (resource records).

Τιμές που παίρνει το υποπεδίο OPCODE


  1. AA (authoritative answer flag): Υποπεδίο μήκους 1 bit. Τίθεται σε 1 για να υποδείξει ότι ο διακομιστής (server) που δημιούργησε το reponse μηνυμα είναι εξουσιοδοτημένος (authoritative) στην ζώνη που ανήκει το domain name που ορίζεται στην ερώτηση. Αν πάρει την τιμή 0 σημαίνει ότι ο διακομιστής (server) δεν ειναι εξουσιοδοτημένος (non-authoritative).
  2. TC (truncated): Όταν το πεδίο αυτό τεθεί σε 1 τότε υποδικνύει ότι το μήνυμα τεμαχίστηκε λόγω του μεγέθους του. Το TCP δεν έχει όριο μεγέθους για τα μηνύματα ενώ το UDP περιορίζεται στα 512 bytes. Οπότε όταν πάρει την τιμή 1 σημαίνει ότι χρησιμοποιήθηκε UDP και ότι το μήνυμα είχε μεγαλύτερο μήκος απο το επιτρεπόμενο.
  3. RD (recursion desired): Υποπεδίο μήκους 1-bit που χρησιμοποιείται όταν ένας client επιθυμεί αναδρομική (recursive) απάντηση. Αυτό επαναλαμβάνεται και κατά την αίτηση αλλά και κατά την απάντηση.
  4. RA (recursion available): Υποπεδίο μήκους 1-bit. Ορίζεται μόνο στα απαντητικά (response) μηνύματα ως ένδειξη ότι η αναδρομή (recursion) είναι διαθέσιμη.
  5. Reserved: Υποπεδίο μήκους 3 bit. Περιέχει τρία δεσμευμένα bits που έχουν την τιμή 0.
  6. rCode: Υποπεδίο 4 bit που χρησιμοποιείται ως ένδειξη για το αν ένα query απαντήθηκε με επιτυχία ή αν συνέβει κάποιο σφάλμα. Ο παρακάτω πίνακας αποτυπώνει τις τιμές που παίρνει αυτό το υποπεδίο.


Τιμή
rCode
Response code Περιγραφή
0 No error Σημαίνει ότι δεν έχει συμβεί κάποιο σφάλμα.
1 Format error O διακομιστής (server) απέτυχε να απαντησει στο query λόγω ενός προβλήματος στην δομή του.
2 Server failure Ο διακομιστής (server) απέτυχε ενα απαντήσει στο query λόγω ενός δικόυ του προβλήματος.
3 Name error Το όνομα που ορίζεται στο query δεν υπάρχει στο domain. Αυτος ο κωδικός χρησιμοποιείται απο έναν authoritative server για μια ζώνη (καθότι γνωρίζει όλες τις οντότητες και τα subdomains σε ένα domain) ή απο έναν caching server που εφαρμόζει negative caching.
4 Not implemented Αυτός ο τύπος query δεν υποστηρίζεται απο τον server
5 Refused Ο διακομιστής (server) αρνείται να επεξεργαστεί αυτό το query για λόγους policy (όχι τόσο για τεχνικούς λόγους). Για παράδειγμα, μερικοί τύποι λειτουργίας μπορεί να είναι μη προβάσιμοι όπως μεταφορά ζώνης (zone transfer).
6 ΥΧ Domain Υπάρχει ένα όνομα ενω κανονικά δεν θα έπρεπε
7 ΥΧ RR Set Υπάρχει resource record set ενω κανονικά δεν θα έπρεπε
8 NX RR Set Δεν υπάρχει resource record set ενω κανονικά δεν θα έπρεπε
9 Not auth Ο διακομιστής (server) που έχει λάβει αυτό το query δεν ειναι authoritative για στην συγκεκριμένη ζώνη.
8 Not Zone Το όνομα που έχει οριστεί στο μήνυμα δεν ανήκει στην συγκεκριμένη ζώνη.

Τιμές που παίρνει το πεδίο R-Code


  1. Αριθμός ερωτήσεων (Question count): Μήκους 16 bit, περιέχει τον αριθμό ερωτήσεων που βρίσκεται στο αντίστοιχο σημείο (question section) του μηνύματος.
  2. Αριθμός καταγεγραμμένων απαντήσεων (Answer record count): Μήκους 16 bit, ορίζει τον αριθμό των resource records στο στο σημείο απάντησης (answer section) του μηνύματος. Ενδέχεται να είναι 0 αν δεν υπάρχει αντίστοιχη πληροφορία σττο μήνυμα.
  3. Authority record count: Μήκους 16 bit, ορίζει τον αριθμό των resource records στο στο σημείο εξουσιοδότησης (authority section) του μηνύματος.
  4. Αριθμός επιπλέον καταγραφών (Number of additional records): Πεδίο μήκους 16 bits, περιγράφει τον αριθμό των resource records στο σημείο επιπλέον καταγραφών (additional records) του μηνύματος. Ενδέχεται να είναι 0 αν δεν υπάρχει αντίστοιχη καταταχώριση στο μήνυμα.

Τελευταία ενημέρωση: 13/02/2019






Follow us

 ☰