DNS — Domain Name System
Το «τηλεφωνικό κέντρο» του Διαδικτύου: μεταφράζει domains σε IP διευθύνσεις.
Τι είναι το DNS
Το DNS (Domain Name System) είναι το «τηλεφωνικό κέντρο» του Διαδικτύου.
Όταν γράφεις example.com στον browser, ο υπολογιστής σου δεν ξέρει σε ποια
IP διεύθυνση πρέπει να συνδεθεί. Ρωτά το DNS, παίρνει την απάντηση (π.χ. 93.184.216.34),
και μετά κάνει την HTTP σύνδεση εκεί.
Το DNS είναι ένα ιεραρχικό, κατανεμημένο σύστημα. Δεν υπάρχει ένας server που τα ξέρει όλα — υπάρχουν εκατομμύρια servers που ξέρουν ο καθένας ένα κομμάτι.
Πώς γίνεται μια DNS αναζήτηση
- Ο browser ρωτά τον recursive resolver του ISP σου (ή του Google 8.8.8.8, Cloudflare 1.1.1.1).
- Αν δεν έχει την απάντηση cached, ρωτά έναν από τους 13 root servers.
- Ο root λέει: «δες τους nameservers του
.comTLD». - Ο TLD nameserver λέει: «το
example.comέχει nameserversns1.example.comκαιns2.example.com». - Ο authoritative nameserver του domain επιστρέφει την IP.
- Ο resolver αποθηκεύει την απάντηση cached για όσο ορίζει το TTL.
Τύποι records
Τα πιο συχνά DNS records:
- A — hostname → IPv4
- AAAA — hostname → IPv6
- CNAME — hostname → άλλο hostname (alias)
- MX — mail servers για το domain
- TXT — ελεύθερο κείμενο (SPF, verification κ.α.)
- NS — authoritative nameservers
- SOA — βασικές παράμετροι της ζώνης
- PTR — αντίστροφη αναζήτηση (IP → hostname)
- CAA — ποιες CAs μπορούν να εκδώσουν SSL
- SRV — εντοπισμός υπηρεσιών (XMPP, SIP, autodiscovery)
Caching & propagation
Κάθε record έχει ένα TTL σε δευτερόλεπτα. Όταν κάνεις αλλαγή, οι resolvers σε όλο τον κόσμο θα συνεχίσουν να σερβίρουν την παλιά τιμή μέχρι να λήξει το TTL. Γι' αυτό λέμε «το DNS άλλαξε αλλά χρειάζεται χρόνος για propagation».
Πριν από μια αλλαγή, κατέβασε το TTL σε 300 (5 λεπτά) μερικές ώρες νωρίτερα ώστε να γίνει γρήγορα το propagation όταν κάνεις την κανονική αλλαγή.