Τι είναι το DNS και πώς λειτουργεί;
Το Domain Name System (DNS) είναι το σύστημα που μεταφράζει ονόματα, όπως example.gr, στις τεχνικές πληροφορίες που χρειάζονται οι υπηρεσίες του διαδικτύου. Μοιάζει με κατάλογο διευθύνσεων: ο χρήστης θυμάται ένα όνομα και το DNS βρίσκει πού πρέπει να σταλεί το αίτημα για website, email ή άλλη υπηρεσία.
Η διαδρομή μιας DNS ερώτησης
Όταν πληκτρολογείτε ένα domain, η συσκευή ρωτά έναν resolver, συνήθως του παρόχου σύνδεσης ή μια δημόσια υπηρεσία DNS. Αν η απάντηση δεν υπάρχει ήδη στην cache, ο resolver εντοπίζει τους authoritative nameservers του domain και ζητά από αυτούς την έγκυρη εγγραφή. Η απάντηση επιστρέφει στον browser και αποθηκεύεται προσωρινά.
Authoritative nameserver και DNS zone
Οι authoritative nameservers είναι οι servers που έχουν την επίσημη DNS zone. Η zone είναι το σύνολο των records για το domain. Οι nameservers δεν είναι το ίδιο πράγμα με τα records: δείχνουν ποιος έχει την αρμοδιότητα να απαντήσει, ενώ τα records περιγράφουν τις πραγματικές υπηρεσίες. Δείτε αναλυτικότερα τι είναι οι nameservers.
Οι βασικοί τύποι DNS records
- A: συνδέει ένα hostname με IPv4.
- AAAA: συνδέει ένα hostname με IPv6.
- CNAME: κάνει ένα hostname alias ενός άλλου hostname.
- MX: δηλώνει τους mail servers και την προτεραιότητά τους.
- TXT: αποθηκεύει κείμενο για verification και πολιτικές όπως SPF, DKIM ή DMARC.
Κάθε record εξυπηρετεί διαφορετικό σκοπό. Η αλλαγή ενός A record, για παράδειγμα, δεν μεταφέρει αυτόματα το email.
TTL και caching
Το Time To Live δηλώνει για πόσο μπορεί ένας resolver να κρατήσει μια απάντηση στην cache πριν την αναζητήσει ξανά. Ένα χαμηλότερο TTL μπορεί να βοηθήσει σε προγραμματισμένη αλλαγή, αλλά δεν ακυρώνει απαντήσεις που έχουν ήδη αποθηκευτεί ούτε εγγυάται ότι όλοι οι χρήστες θα δουν τη νέα τιμή ταυτόχρονα.
Γιατί μια αλλαγή δεν φαίνεται αμέσως;
Διαφορετικοί resolvers μπορεί να έχουν cached την προηγούμενη απάντηση σε διαφορετική χρονική στιγμή. Τοπική cache, browser, λειτουργικό σύστημα ή ISP μπορεί επίσης να επηρεάζει την εικόνα. Αυτή η σταδιακή ανανέωση περιγράφεται συνήθως ως DNS propagation. Δεν είναι διαδικασία αντιγραφής ενός αρχείου σε όλο το διαδίκτυο, αλλά λήξη και ανανέωση caches.
DNS, registrar και hosting
Ο registrar διαχειρίζεται την κατοχύρωση του domain. Ο DNS provider φιλοξενεί την authoritative zone. Ο hosting provider φιλοξενεί website ή εφαρμογή. Μπορεί να είναι η ίδια εταιρεία ή τρεις διαφορετικές. Για αυτό πριν από αλλαγή πρέπει να γνωρίζετε σε ποιο σύστημα γίνεται η πραγματική διαχείριση DNS.
Πρακτικοί έλεγχοι
Το DNS δεν διορθώνεται με τυχαίες αλλαγές. Καταγράψτε πρώτα τις υπάρχουσες τιμές, επιβεβαιώστε το intended destination και αλλάξτε μόνο το απαραίτητο record. Οι οδηγοί για αλλαγή DNS records, αλλαγή A record και σύνδεση domain με hosting καλύπτουν τις αντίστοιχες εργασίες.
Ένα πρακτικό παράδειγμα zone
Το example.gr μπορεί να έχει A record προς τον web server, CNAME για το www, δύο MX records του mail provider και TXT records για verification και DMARC. Καμία εγγραφή δεν «γνωρίζει» ολόκληρο το website· κάθε μία δημοσιεύει ένα συγκεκριμένο κομμάτι πληροφορίας.
Από το αίτημα στην υπηρεσία προορισμού
Η ακολουθία ξεκινά από browser ή εφαρμογή. Αυτά ζητούν από έναν recursive resolver να βρει την απάντηση. Αν δεν υπάρχει έγκυρη cache, ο resolver ακολουθεί την ιεραρχία DNS και φτάνει στους authoritative nameservers της zone. Εκεί ζητά τον συγκεκριμένο τύπο record για το hostname. Η απάντηση μπορεί να είναι IP, άλλο hostname, mail server ή πληροφορία επαλήθευσης.
Ο recursive resolver κάνει την αναζήτηση για λογαριασμό του χρήστη και αποθηκεύει προσωρινά το αποτέλεσμα. Ο authoritative DNS δεν περιηγείται σε άλλους servers για να βρει την απάντηση· δημοσιεύει τα δεδομένα της zone για την οποία είναι αρμόδιος. Αυτή η διαφορά εξηγεί γιατί μια authoritative απάντηση μπορεί να είναι νέα ενώ ένας resolver εξακολουθεί προσωρινά να επιστρέφει παλιά cached τιμή.
Website και email χρησιμοποιούν διαφορετικά records
Το βασικό domain μπορεί να έχει A και AAAA records, το www ένα CNAME, ενώ τα MX records ορίζουν ξεχωριστά τη διαδρομή του email. Τα TXT records μπορεί να περιέχουν SPF, DKIM, DMARC ή verification tokens. Έτσι ένα website migration μπορεί να ολοκληρωθεί με αλλαγή web records χωρίς καμία μεταβολή στα MX. Η αφαίρεση ή αντικατάσταση records χωρίς καταγραφή μπορεί αντίθετα να διακόψει υπηρεσία που φαινόταν άσχετη.
Τι σημαίνει λάθος record
Λανθασμένο A/AAAA μπορεί να στείλει επισκέπτες σε άλλο server ή να δημιουργήσει ασυνεπή συμπεριφορά μεταξύ IPv4 και IPv6. Λάθος CNAME μπορεί να οδηγήσει σε μη υπαρκτό hostname. Εσφαλμένα MX μπορούν να προκαλέσουν αποτυχία εισερχόμενου email, ενώ λάθος TXT πολιτικές ενδέχεται να επηρεάσουν την παραδοσιμότητα ή το verification. Το DNS μπορεί να απαντά κανονικά και παρ’ όλα αυτά η απάντηση να είναι λειτουργικά λανθασμένη.
Το TTL ως κύκλος ζωής της cache
Όταν ένας resolver αποθηκεύσει μια απάντηση, ο μετρητής TTL μειώνεται. Μέχρι να λήξει μπορεί να επαναχρησιμοποιεί την ίδια τιμή. Μετά τη λήξη ζητά νέα authoritative απάντηση και ξεκινά νέος κύκλος. Αυτός ο μηχανισμός βελτιώνει απόδοση και ανθεκτικότητα, αλλά σημαίνει ότι οι αλλαγές χρειάζονται προγραμματισμό.
Συχνές ερωτήσεις
Το DNS αποθηκεύει το site;
Όχι. Αποθηκεύει πληροφορίες δρομολόγησης και υπηρεσιών. Τα αρχεία και η βάση βρίσκονται στο hosting.
Είναι η DNS zone ίδια με τους nameservers;
Όχι. Η zone είναι τα records· οι nameservers είναι οι authoritative servers που τα δημοσιεύουν.
Μια αλλαγή DNS προκαλεί πάντα downtime;
Όχι. Με σωστή προετοιμασία, έλεγχο και overlap των παλιών και νέων υπηρεσιών ο κίνδυνος μειώνεται, χωρίς να μπορεί να υποσχεθεί κανείς μηδενικό downtime σε κάθε περίπτωση.