Έχει φτάσει η στιγμή να εξετάσουμε πώς οι name servers οργανώνουν τις πληροφορίες που διαθέτουν και παρέχουν σε άλλους servers ή σε clients. Μετά από το απαραίτητο αυτό βήμα θα είμαστε σε θέση να φτιάξουμε εύκολα τον δικό μας name server, ο οποίος θα συμπεριφέρεται στην πράξη ακριβώς όπως προβλέπει η θεωρία.

Στο προηγούμενο άρθρο της σειράς μας κάναμε μια πρώτη νύξη για τα zone files. Υπενθυμίζουμε ότι πρόκειται για αρχεία απλού κειμένου τα οποία διαβάζουν οι name servers, προκειμένου να έχουν όλες τις απαραίτητες πληροφορίες για τα domains της ευθύνης τους. Μέσα στα zone files τηρούνται τα λεγόμενα resource records ή απλά records. Τα records καθορίζουν τις διευθύνσεις IP των domains ή/και των hosts, τους name servers των domains, τα μηχανήματα που είναι υπεύθυνα για την παραλαβή της ηλεκτρονικής αλληλογραφίας για τα domains κ.ο.κ.

Κάθε domain name για το οποίο είναι υπεύθυνος ένας name server, περιγράφεται λεπτομερώς σε ένα zone file. Ένα zone file λέμε ότι περιγράφει ένα DNS zone, δηλαδή ένα υποσύνολο ολόκληρου του χώρου με τα ονόματα DNS. Στην πλειονότητα των περιπτώσεων ένα zone file εμπεριέχει πληροφορίες για ένα μόνο domain, οπότε στην πλειονότητα των περιπτώσεων μπορούμε να υποθέτουμε ότι το πλήθος των zone files ενός name server ισούται με το πλήθος των domains για τα οποία ο server είναι authoritative.

Σε κάθε zone file υπάρχει η παράμετρος $ORIGIN. Eξ ορισμού, σ’ αυτήν ανατίθεται το γενικότερο domain του αντίστοιχου zone. Αυτός ο ορισμός ίσως ακούγεται κάπως παράξενος, η πραγματικότητα όμως είναι εξαιρετικά απλή. Παράδειγμα: Στο zone file για το colder.xyz, η παράμετρος $ORIGIN ισούται με το colder.xyz.. Σημειώστε ότι στα δεξιά κάθε domain –και μετά το TLD– υπάρχει μια τελεία. Όπως αναφέραμε και στο πρώτο άρθρο της σειράς, όταν δίνουμε domains σε λογισμικό, π.χ., σε έναν web browser, συνήθως δεν χρειάζεται να βάζουμε και την τελεία. Αυτό, ωστόσο, δεν σημαίνει ότι εκείνη απουσιάζει από τα zone files. Με άλλα λόγια, μπορούμε να λέμε ότι η παράμετρος $ORIGIN καθορίζει το όνομα του domain, για το οποίο το zone είναι authoritative.

Η έως τώρα συζήτησή μας είναι, ομολογουμένως, κουραστικά γενικόλογη. Ευτυχώς σε λίγο θα εξετάσουμε ένα συγκεκριμένο zone file κι όλα θα αποκτήσουν νόημα. Οφείλουμε πρώτα να αναφέρουμε και την παράμετρο $TTL, η οποία εκφράζει το χρόνο ζωής (time-to-live) της παρεχόμενης πληροφορίας. Ένας caching name server που έχει αποθηκεύσει πληροφορίες στην cache του, μπορεί να τις σερβίρει στους πελάτες αρκεί να μην έχει λήξει η σχετική $TTL.

Τα zone files από κοντά

Στο μηχάνημα όπου φιλοξενείται ο mail server για το domain ονόματι colder.xyz του γράφοντα, λειτουργεί κι ο authoritative-only server για το ίδιο domain (πρόκειται για τον NSD). Σε πολύ λίγο θα δούμε μέρος των περιεχομένων του zone file για το domain, ώστε μέσα από ένα αληθινό παράδειγμα να μάθουμε για τα records που περιλαμβάνουν τα υπό συζήτηση αρχεία. Όπως σε κάθε zone file, έτσι και σ’ εκείνο για το colder.xyz συναντάμε διαφόρων ειδών records. Δεν θα εξετάσουμε όλα τα records του zone file, αλλά τα πιο συνηθισμένα. Το αρχείο ξεκινά με τον καθορισμό των παραμέτρων $ORIGIN και $TTL:

$ORIGIN colder.xyz.
$TTL 1800

Στην $ORIGIN έχει ανατεθεί το γενικότερο domain για το οποίο το zone είναι authoritative (προσέξτε την τελεία στα δεξιά του TLD). Απλούστερα, μπορούμε να πούμε ότι στην $ORIGIN έχει ανατεθεί το όνομα του domain μας σε μορφή FQDN (εξ ου και η τελεία στα δεξιά). Η δε παράμετρος $TTL ισούται με την προκαθορισμένη τιμή time-to-live, σε δευτερόλεπτα. Οι πληροφορίες που λαμβάνουν οι caching name servers από τον authoritative server μας, λοιπόν, ισχύουν για μισή ώρα. Όταν αυτός ο χρόνος παρέρχεται οι caching name servers θεωρούν τις αποθηκευμένες πληροφορίες που έχουν άκυρες και, πριν εξυπηρετήσουν τους πελάτες τους, αρχίζουν ξανά την αναζήτηση μέσα στο χώρο του DNS.

Ορισμένοι cloud providers, όπως η DigitalOcean, παρέχουν στους πελάτες τους και υπηρεσίες DNS. Εδώ βλέπουμε τη συγκρότηση του zone file για το domain ονόματι defiant.gr, το οποίο είναι και το host name ενός droplet μας στο cloud της εταιρείας.Ορισμένοι cloud providers, όπως η DigitalOcean, παρέχουν στους πελάτες τους και υπηρεσίες DNS. Εδώ βλέπουμε τη συγκρότηση του zone file για το domain ονόματι defiant.gr, το οποίο είναι και το host name ενός VPS μας στο cloud της εταιρείας. Για τα resource records διαφορετικών τύπων υπάρχει και διαφορετικό χρώμα – κι αυτό διευκολύνει σημαντικά ειδικά εκείνους που τώρα αρχίζουν ν’ ασχολούνται με name servers και το σύστημα DNS γενικότερα.

Πίσω από τα ευμεγέθη buttons και τα κωδικά χρωματισμένα resource records, υπάρχει το κλασικό zone file για το domain μας.Πίσω από τα ευμεγέθη buttons και τα κωδικά χρωματισμένα resource records, υπάρχει το κλασικό zone file για το domain μας. Παρατηρήστε τις παραμέτρους $ORIGIN και $TTL, στην αρχή του αρχείου. Δείτε επίσης ότι για το domain μας υπάρχουν τρεις name servers, όλοι της DigitalOcean. Το email του domain, εξάλλου, είναι hosted από τη Google.

SOA records

Το πρώτο υποχρεωτικό record που συναντάμε σε κάθε zone file είναι το SOA (Start of Authority). Παρατηρήστε το SOA record στο zone file του colder.xyz:

@ IN SOA ns1.box.colder.xyz. hostmaster.box.colder.xyz. (
2015090900
7200
1800
1209600
1800
)

Φαίνεται κάπως περίπλοκο, αλλά σε λίγο δεν θα είναι – τουλάχιστον για εσάς. Ας αναλύσουμε το SOA record ξεκινώντας από πάνω κι αριστερά.

  • @ | Το σύμβολο @ παίρνει πάντα την τιμή της παραμέτρου $ORIGIN. Αντί γι’ αυτό, δηλαδή, στη θέση του κάλλιστα θα μπορούσε να είναι το colder.xyz.. Το @ ή το colder.xyz. αποτελεί το λεγόμενο root του zone.

  • IN SOA | Το IN σημαίνει Internet και το SOA καταδεικνύει ότι έχουμε να κάνουμε με ένα Start of Authority record.

  • ns1.box.colder.xyz. | Αυτό είναι το FQDN του master name server για το domain. Όπως είπαμε στο προηγούμενο άρθρο, για κάθε domain συνηθίζεται να έχουμε έναν master κι έναν slave name server. Αν παρέχονται υπηρεσίες dynamic DNS, ώστε να αντιστοιχίζονται host names σε πελάτες με δυναμικές διευθύνσεις IP, τότε ένας master name server (επιτρέπεται να υπάρχουν περισσότεροι από έναν) χαρακτηρίζεται ως primary και το FQDN του πηγαίνει αμέσως μετά το IN SOA. Αν δεν παρέχονται υπηρεσίες dynamic DNS, τότε μετά το IN SOA πηγαίνει το FQDN ενός εκ των master name servers.

  • hostmaster.box.colder.xyz. | Μπορεί να μην της φαίνεται, όμως αυτή είναι η διεύθυνση email του διαχειριστή για το domain. Το @ χρησιμοποιείται στα zone files ως συντόμευση για την τιμή της $ORIGIN, οπότε στις διευθύνσεις email στη θέση του @ μπαίνει μια τελεία. Αγνοώντας τη δεξιότερη τελεία, η οποία πάντα μπαίνει στα FQDN που παρατίθενται στα zone files, το hostmaster.box.colder.xyz. μεταφράζεται σε hostmaster@box.colder.xyz. Στην περίπτωση που στο username του email υπάρχει ήδη τελεία, τότε στη θέση της μπαίνει ο χαρακτήρας \. Παράδειγμα: Αντί για το johnny.cage@box.colder.xyz, στο zone file θα γράφαμε johnny\cage.box.colder.xyz..

  • 2015090900 | Το νούμερο αυτό είναι ο αριθμός σειράς (serial number) του zone file. Κάθε φορά που τροποποιούμε το zone το serial number πρέπει να αυξάνεται, ώστε οι αλλαγές να διαδίδονται σωστά στους όποιους slave name servers. Οι slaves ελέγχουν αν το serial number του master είναι μεγαλύτερο από το δικό τους, κι όποτε είναι τότε ζητούν και λαμβάνουν το ανανεωμένο zone. Παρατηρήστε το δεκαψήφιο serial number του παραδείγματός μας. Ξεκινώντας από αριστερά διαπιστώνουμε ότι απαρτίζεται από 4 ψηφία για την ημερομηνία, 2 ψηφία για το μήνα, καθώς και 2 ψηφία για την ημέρα του μήνα τροποποίησης. Έχει επίσης άλλα 2 ψηφία, για τον αύξοντα αριθμό τροποποίησης μέσα στην ημέρα. Θα συμφωνήσετε, φανταζόμαστε, ότι ακολουθώντας μια μορφή σαν αυτή τα serial numbers έχουν ανά πάσα στιγμή νόημα.

  • 7200 | Ο χρόνος, σε δευτερόλεπτα, που καθορίζει το διάστημα ανανέωσης (refresh interval) του zone. Ουσιαστικά, εδώ ορίζεται πόσο συχνά οι slaves θα ρωτούν τον master για αλλαγές στο zone. Στο συγκεκριμένο παράδειγμα ο έλεγχος γίνεται κάθε δύο ώρες.

  • 1800 | Αν για οποιονδήποτε λόγο ένας slave αποτύχει να ρωτήσει τον master για αλλαγές στο zone, πόσο συχνά πρέπει να ξαναπροσπαθεί έως ότου τα καταφέρει; Στο παράδειγμά μας θα ρωτά κάθε μισή ώρα (1800 δευτερόλεπτα).

  • 1209600 | Ένας slave είναι πιθανό να χάσει την επικοινωνία του με τον master name server. Θα έχει κάποιες πληροφορίες για το zone, χωρίς όμως να υπάρχει κάποια εγγύηση για την εγκυρότητά τους. Για πόσο χρόνο θα δικαιούται να τις γνωστοποιεί σε πελάτες, πριν πάψει να είναι authoritative πηγή για το zone; Στο παράδειγμά μας θα εγκαταλείψει μετά από δύο εβδομάδες (1209600 δευτερόλεπτα).

  • 1800 | Εδώ έχουμε το λεγόμενο negative TTL. Όταν ένας caching name server ρωτά κάτι σχετικό με το zone αλλά αντί για απάντηση παίρνει μήνυμα λάθους (επειδή, π.χ., το ζητούμενο host απλά δεν υπάρχει), τότε αυτή την αρνητική απάντηση την κρατά στην cache του. Για πόση ώρα θα πρέπει να θεωρεί ότι η αρνητική απάντηση ισχύει; Στο παράδειγμα ο χρόνος καθορίζεται στη μισή ώρα (1800 δευτερόλεπτα).

A και AAAA records

Οι εγγραφές που αντιστοιχίζουν διευθύνσεις IPv4 σε hosts ονομάζονται A records, ενώ εκείνες που αντιστοιχίζουν διευθύνσεις IPv6 σε hosts ονομάζονται AAAA records. Η γενική μορφή των A και AAAA records έχει ως ακολούθως:

host    IN  A       διεύθυνση_IPv4
host    IN  AAAA    διεύθυνση_IPv6

Στο παρόν άρθρο δεν ασχολούμαστε με διευθύνσεις IPv6. Ας δούμε μερικά παραδείγματα A records από το zone file του colder.xyz.

IN  A   46.101.173.140

Οι παραξενιές αρχίζουν αμέσως: στ’ αριστερά της γραμμής δεν υπάρχει κάποιος host :/ Όταν αυτό συμβαίνει, τότε υπονοείται η τιμή της παραμέτρου $ORIGIN. Η παραπάνω γραμμή, λοιπόν, θα μπορούσε να είναι γραμμένη έτσι

colder.xyz. IN  A   46.101.173.140

ή ακόμη κι έτσι:

@           IN  A   46.101.173.140

Σε κάθε περίπτωση, στο colder.xyz αντιστοιχίζεται η αριθμητική διεύθυνση IP 46.101.173.140. Το Mail-in-a-Box (MiaB), η εφαρμογή που δημιούργησε αυτομάτως το zone file που τώρα εξετάζουμε, όρισε κι έναν host ονόματι box, με IP επίσης 46.101.173.140 (είναι το IP του cloud server στο οποίο κατοικούν το MiaB κι ο authoritative-only name server του). Δείτε:

box         IN  A   46.101.173.140

Παρατηρήστε ότι έχει δοθεί μόνο το host name κι όχι ολόκληρο το FQDN, όπως θα ανέμενε κανείς. Στην πραγματικότητα, στα δεξιά του box είναι σαν να υπάρχει κάτι, κι αυτό το κάτι είναι η τιμή της παραμέτρου $ORIGIN. Η παραπάνω γραμμή, λοιπόν, θα μπορούσε να είναι έτσι:

box.colder.xyz. IN  A   46.101.173.140

Αλλά δεν είναι – κι αυτό καθόλου δεν πειράζει. Το MiaB εξάλλου εγκαθιστά, ρυθμίζει κι ενεργοποιεί κι έναν web server (τον nginx, για την πρόσβαση στο web panel του συστήματος αλλά και για την παροχή static content), συνεπώς από το zone file μας δεν θα μπορούσε να λείπει και το A record ενός host με όνομα www:

www         IN  A   46.101.173.140

Πολύ ωραία. Με μια μικρή ρύθμιση στο configuration file του web server, οι επισκέπτες του site αρκεί να πληκτρολογούν τη διεύθυνση colder.xyz ή την www.colder.xyz. Όπως και να ‘χει, στο ίδιο site θα καταλήγουν.

Πριν λίγο, στο SOA record του colder.xyz παρατέθηκε το FQDN του master name server για το domain (είναι ο ns1.box.colder.xyz). Αυτός ο name server βρίσκεται μέσα στο domain (είναι ένας host του domain) και συνεπώς στο αντίστοιχο zone file οφείλουμε να έχουμε μιαν αντιστοίχιση FQDN και διεύθυνσης IP. Αναμενόμενα, η εν λόγω αντιστοίχιση ορίζεται με ένα A record. Μετά την εγκατάστασή του το MiaB ορίζει κι άλλον έναν name server, στην περίπτωσή μας τον ns2.box.colder.xyz, ο οποίος υποτίθεται ότι είναι ο slave αλλά στην πραγματικότητα πρόκειται για τον ίδιο master server. Αυτό το τέχνασμα εφαρμόζεται για λόγους απλότητας και οικονομίας πόρων (το MiaB εγκαθίσταται σε έναν μόνο cloud sever) – και βεβαίως επειδή στους registrars απαιτείται ο καθορισμός των FQDN τουλάχιστον δύο name servers για κάθε domain. Ιδού λοιπόν τα δύο A records για τον ορισμό των διευθύνσεων IP (εν προκειμένω της διεύθυνσης IP) των δύο name servers για το domain:

ns1.box IN  A   46.101.173.140
ns2.box IN  A   46.101.173.140

Εννοείται ότι μετά τα ns1.box και ns2.box υπάρχει η τιμή της $ORIGIN. Τα δύο παραπάνω A records, δηλαδή, θα μπορούσαν να είναι έτσι:

ns1.box.colder.xyz. IN  A   46.101.173.140
ns2.box.colder.xyz. IN  A   46.101.173.140

Ο authoritative name server του MiaB παρέχει και υπηρεσίες dynamic DNS, οπότε στο zone file του υπάρχει πάντα τουλάχιστον ένα A record σαν το επόμενο:

skg     IN  A   87.203.195.143

Πρόκειται για τη δημόσια διεύθυνση IP του pfSense-based router μας, με FQDN το skg.colder.xyz. Στον router είναι ενεργοποιημένος OpenVPN server και θέλουμε να συνδεόμαστε εύκολα σ’ αυτόν, οπότε με τον κατάλληλο client (εν προκειμένω με το curl) ενημερώνουμε σε τακτά χρονικά διαστήματα τον name server του MiaB για τη δημόσια διεύθυνση IP που έχουμε από τον ISP μας.

CNAME records

Οι εγγραφές του είδους ορίζουν ψευδώνυμα (aliases) για τα κανονικά ονόματα (canonical names) που εμπεριέχονται στα A ή στα AAAA records. Στο zone file του colder.xyz δεν υπάρχουν CNAME records, αλλά αν υπήρχαν θα μπορούσαμε να έχουμε κάτι τέτοιο:

www             IN  A       46.101.173.140
thewebserver    IN  CNAME   www

Σ’ αυτό το παράδειγμα, το thewebserver.colder.xyz είναι ψευδώνυμο του www.colder.xyz. Τα CNAME records επιφέρουν μια καθυστέρηση στις αναζητήσεις, αφού από τη στιγμή που παίρνουμε απάντηση ότι, π.χ., το thewebserver.colder.xyz είναι ψευδώνυμο του www.colder.xyz, μετά ακολουθεί άλλο ένα ερώτημα για τη διεύθυνση IP του www.colder.xyz. Οι καθυστερήσεις αυτές αποφεύγονται αν αντί για CNAME records χρησιμοποιούμε A (ή AAAA) records. Παραμένοντας λίγο ακόμα στο παράδειγμα με το thewebserver, αντί για το CNAME που μόλις δώσαμε θα μπορούσαμε απλά να έχουμε άλλο ένα A record:

thewebserver    IN  A       46.101.173.140

Όταν πάντως επιθυμούμε να παράσχουμε ένα ψευδώνυμο για έναν ή περισσότερους πόρους εκτός του domain μας, τότε τα CNAME records είναι ό,τι πρέπει. Δείτε, π.χ., τα τρία CNAME records στο zone file του defiant.gr (άλλο ένα domain που διαθέτουμε), για το οποίο παρέχονται email, ημερολόγιο και online επεξεργασία εγγράφων μέσω των αντίστοιχων υπηρεσιών της Google:

mail.defiant.gr.     1800 IN CNAME ghs.googlehosted.com.
docs.defiant.gr.     1800 IN CNAME ghs.googlehosted.com.
calendar.defiant.gr. 1800 IN CNAME ghs.googlehosted.com.

(Στο συγκεκριμένο zone file, το οποίο ανήκει σε name server της DigitalOcean, στα αριστερά του IN υπάρχει πάντα η προκαθορισμένη τιμή της παραμέτρου $TTL.)

MX records

Με τα MΧ records υποδεικνύουμε το μηχάνημα ή τα μηχανήματα που είναι υπεύθυνα για τη διαχείριση της ηλεκτρονικής αλληλογραφίας του domain ή και κάποιων subdomains (Mail eXchangers). Στο zone file του MiaB υπάρχουν δύο MX records:

        IN  MX  10 box.colder.xyz.
box     IN  MX  10 box.colder.xyz.

Στα δεξιά κάθε γραμμής έχουμε το FQDN του μηχανήματος που δέχεται email για το αντίστοιχο domain ή subdomain. Το εν λόγω μηχάνημα είναι το box.colder.xyz και, όπως ενδεχομένως θα θυμόσαστε, το A record του ορίζεται αλλού. Στα αριστερά κάθε γραμμής υπάρχει το domain/subdomain για το οποίο προορίζονται τα εισερχόμενα emails. Στην πρώτη γραμμή δεν υπάρχει κάτι, επομένως υπονοείται η τιμή της παραμέτρου $ORIGIN (δηλαδή το colder.xyz.). Στη δεύτερη γραμμή υπάρχει το box, το οποίο συμπληρώνεται από την $ORIGIN και συνεπώς έχουμε το box.colder.xyz.. Οι δύο αυτές γραμμές, λοιπόν, μας λένε ότι το μηχάνημα box.colder.xyz είναι υπεύθυνο για την παραλαβή της αλληλογραφίας προς διευθύνσεις της μορφής κάτι@colder.xyz, καθώς και για την παραλαβή της αλληλογραφίας προς διευθύνσεις της μορφής κάτι_άλλο@box.colder.xyz. Παρατηρήστε τώρα τον ακέραιο αριθμό στα δεξιά του MX: Πρόκειται για τον λεγόμενο αριθμό προτεραιότητας, ο οποίος υποδεικνύει τη σειρά προτίμησης των mail exchangers, όταν υπάρχουν δύο ή περισσότεροι. Για την περίπτωση του MiaB έχουμε έναν μόνο mail exchanger, οπότε και στις δύο γραμμές εμφανίζεται ο ίδιος αριθμός προτεραιότητας. Ας δούμε κι άλλο ένα παράδειγμα με MX records, από το zone file του defiant.gr. Το email του συγκεκριμένου domain είναι hosted στο Gmail, επομένως όλοι οι mail exchangers που βλέπουμε είναι της Google:

defiant.gr. 1800 IN MX 1  aspmx.l.google.com.
defiant.gr. 1800 IN MX 5  alt1.aspmx.l.google.com.
defiant.gr. 1800 IN MX 5  alt2.aspmx.l.google.com.
defiant.gr. 1800 IN MX 10 aspmx2.googlemail.com.
defiant.gr. 1800 IN MX 10 aspmx3.googlemail.com.

Οι πέντε στο πλήθος διαφορετικοί mail exchangers διαχειρίζονται εισερχόμενη ηλεκτρονική αλληλογραφία για το defiant.gr, αλλά δεν έχουν όλοι την ίδια προτεραιότητα. Να υπογραμμίσουμε εδώ ότι τα MX records γενικά αφορούν σε hosts που ορίζονται από A ή AAAA records – όχι σε hosts που ορίζονται από CNAME records.

NS records

Τα NS records καθορίζουν τους name servers του zone. Δείτε τα σχετικά records στο zone file του colder.xyz:

IN  NS  ns1.box.colder.xyz.
IN  NS  ns6.gandi.net.

Στα αριστερά των παραπάνω γραμμών δεν υπάρχει κάποιος host, συνεπώς υπονοείται η τιμή της παραμέτρου $ORIGIN. Οι δύο name servers που ορίζονται αφορούν στο colder.xyz, δηλαδή σ’ ολόκληρο το domain. Μετά την εγκατάστασή του το MiaB είχε δύο NS records, τα οποία ως name servers για το domain όριζαν τα ns1.box.colder.xyz (master) και ns2.box.colder.xyz (slave). Αν βέβαια θυμόσαστε από τα αντίστοιχα A records, ουσιαστικά πρόκειται για ένα και το αυτό μηχάνημα. Αργότερα ορίσαμε ως slave name server για το domain ένα τρίτο μηχάνημα που παρείχε ο registrar (gandi.net), με FQDN το ns6.gandi.net. Οι name servers των domains δεν ανήκουν κατ’ ανάγκη στο domain, όπως δείχνουν και τα ακόλουθα NS records από το zone file του defiant.gr:

defiant.gr. 1800 IN NS ns1.digitalocean.com.
defiant.gr. 1800 IN NS ns2.digitalocean.com.
defiant.gr. 1800 IN NS ns3.digitalocean.com.

Η πλατφόρμα του Mail-in-a-Box (MiaB), πάνω στην οποία βασίζεται το email του domain μας ονόματι colder.xyz, στην πραγματικότητα υλοποιεί έναν μόνο name server για το domain -- κι ας ορίζονται δύο διαφορετικά FQDNs στο αντίστοιχο zone file.Η πλατφόρμα του Mail-in-a-Box (MiaB), πάνω στην οποία βασίζεται το email του domain μας ονόματι colder.xyz, στην πραγματικότητα υλοποιεί έναν μόνο name server για το domain – κι ας ορίζονται δύο διαφορετικά FQDNs στο αντίστοιχο zone file. O registrar από τον οποίο πήραμε το colder.xyz, εξάλλου, παρέχει τη δυνατότητα χρήσης διαφορετικού slave name server για τον έναν και μοναδικό master server. Ο slave είναι ο ns6.gandi.net και τον έχουμε ήδη υποδείξει ως δεύτερο name server (ο master είναι ο ns1.box.colder.xyz).

Οι δύο name servers που υποδεικνύει το MiaB μέσα από τα αντίστοιχα resource records είναι οι ns1.box.colder.xyz και ns2.box.colder.xyz.Οι δύο name servers που υποδεικνύει το MiaB μέσα από τα αντίστοιχα resource records είναι οι ns1.box.colder.xyz και ns2.box.colder.xyz. Αμφότεροι βρίσκονται μέσα στο domain (colder.xyz), οπότε για να αποφεύγονται οι κυκλικές αναφορές έχουμε μεριμνήσει ώστε στον registrar (Gandi) να καθορίζονται τα απαραίτητα glue records.

Glue records

Στο προηγούμενο παράδειγμα οι name servers είναι μηχανήματα της DigitalOcean και δεν ανήκουν στο defiant.gr. Γενικά, αν οι name servers ενός domain δεν είναι μέσα από το domain, τότε αρκεί να ενημερώσουμε τον registrar με τα FQDNs των name servers. Αν όμως τουλάχιστον ένας από τους (εν ενεργεία) name servers είναι μέσα από το domain, όπως συμβαίνει με την περίπτωση του colder.xyz, τότε στον registrar οφείλουμε να ορίζουμε κι ένα σχετικό glue record: ουσιαστικά πρόκειται για την αριθμητική διεύθυνση IP του name server μέσα στο domain.

Σκεφτείτε το λίγο. Αν δεν υπάρχει το glue record, όποιος πελάτης θέλει να βρει έναν host κάτω από το domain θα πρέπει πρώτα να βρει το IP του name server κάτω από το domain, και γι’ αυτό θα πρέπει να βρει το IP του domain ώστε να κάνει την ερώτησή του. Αυτή την πληροφορία όμως την έχει ο name server κάτω από το domain, στον οποίο δεν μπορούμε να φτάσουμε αν δεν μάθουμε το IP του domain κ.ο.κ. Χάρη στα glue records, ο name server πάνω από το domain που μας ενδιαφέρει γνωρίζει μεταξύ άλλων και τη διεύθυνση IP του name server κάτω από το domain, την οποία και παρέχει στους πελάτες.

Από το pingability.com βλέπουμε τους name servers πάνω από τον authoritative name server του domain μας (colder.xyz).Από το pingability.com βλέπουμε τους name servers πάνω από τον authoritative name server του domain μας (colder.xyz).

Ο master name server του colder.xyz βρίσκεται κάτω από το ίδιο το domain, όμως στους name servers πάνω από το domain είναι ορισμένο το κατάλληλο glue record.Ο master name server του colder.xyz βρίσκεται κάτω από το ίδιο το domain, όμως στους name servers πάνω από το domain είναι ορισμένο το κατάλληλο glue record. Κανένας κίνδυνος για κυκλικές αναφορές, λοιπόν.

Άρθρα της σειράς

Εισαγωγή στο Domain Name System

Οι name servers στο μικροσκόπιο

Zone files και resource records

Ο δικός μας caching name server

Στρατηγικές εκμετάλλευσης του name server μας