====== DNS - Ονοματοδοσία ====== * Είδαμε ότι όλοι οι Υπολογιστές έχουν μία **αριθμητική διεύθυνση** ώστε να μπορούν να επικοινωνούμε. Εμείς όμως χρησιμοποιούμε **ονομαστικές διευθύνσεις** όπως **www.google.com** που τις θυμόμαστε πιο εύκολα. Για να επικοινωνήσει τελικά όμως ο ΗΥ μας θα πρέπει κάποιος να τις **μετατρέψει σε αριθμητικές**. Αυτή την δουλειά την κάνει ο **DNS** - **ΕΙΣΑΓΩΓΗ** * Εκτελέστε nslookup www.debian.org Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: Name: www.debian.org Address: 5.153.231.4 Name: www.debian.org Address: 130.89.148.14 - **ΕΥΡΕΣΗ ΟΛΩΝ ΤΩΝ DNS** * Μας απάντησε ο **192.168.1.1** που είναι ο 1ος dns και μας έδωσε 2 αριθμητικές διευθύνσεις την **5.153.231.4** και την **130.89.148.14**. Δεν είναι όμως ο μοναδικός dns. Συνήθως υπάρχουν 2 ή και περισσότεροι dns. Εάν ο 1ος έχει κάποιο πρόβλημα τότε θα εξυπηρετήσει ο 2oς. - Για να δούμε την λίστα με τους dns θα εκτελέσουμε * Στο Linux cat /etc/resolv.conf .. nameserver 192.168.1.1 nameserver 8.8.8.8 * Στα Windows ipconfig /all .. Διακομιστές DNS . . . . . . : 192.168.1.1 8.8.8.8 .. * Βλέπουμε ότι έχουμε λοιπόν 2 dns τον **192.168.1.1** και τον **8.8.8.8**. Αν δεν λειτουργήσει ο 1ος θα απαντήσει ο 2ος. - **ΕΡΩΤΗΣΗ ΑΛΛΟΥ DNS** - Θα ζητήσουμε να μας απαντήσει ο 2ος με την εντολή ως εξής nslookup www.facebook.com 8.8.8.8 Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: www.facebook.com canonical name = star.c10r.facebook.com. Name: star.c10r.facebook.com Address: 31.13.64.1 - Μας απάντησε ο **8.8.8.8** και μας έδωσε την IP **31.13.64.1**. Πάμε να ρωτήσουμε τον 1o dns nslookup www.facebook.com Server: 192.168.1.200 Address: 192.168.1.200#53 Non-authoritative answer: www.facebook.com canonical name = star.c10r.facebook.com. Name: star.c10r.facebook.com Address: 66.220.158.19 * Ο 192.168.1.200 μας έδωσε άλλη ip την **66.220.158.19** Συνήθως τα domain έχουν **1-2 IP διευθύνσεις μόνο**. Όσα όμως έχουν πάρα πολύ κίνηση όπως το facebook.com μπορουν να έχουν **δεκάδες IP** δηλαδή δεκάδες εξυπηρετητές. Οι dns δίνουν **τυχαία** μία ή περισσότερες από αυτές ώστε να **μοιράζεται η κίνηση σε όλους τους εξυπηρετητές**. - **ΛΕΙΤΟΥΡΓΙΑ DNS** * Στο Internet υπάρχουν εκατοντάδες εκατομμύρια domains (περίπου **300 εκατομμύρια domains** μέχρι το 2015) και **αυξάνονται** συνέχεια. Όταν ρωτάμε έναν dns μπορεί να διαλέξουμε οποιοδήποτε από αυτά τα εκατομμύρια domains και μας απαντάει συνήθως ο dns από το router που έχουμε. Τι συμβαίνει έχει αποθηκευμένα το router που αγοράσαμε όλα αυτά τα domains; * Όπως φαντάζεστε όχι. Άλλωστε τα **domains αλλάζουν κατά χιλιάδες κάθε μέρα**, αλλά και τα υπάρχοντα **αλλάζουν κατά καιρούς IP διευθύνσεις**. Δεν θα ήταν δυνατό να ενημερώνεται για όλες τις αλλαγές. Τι συμβαίνει λοιπόν; * Αρχικά ο dns του router δεν γνωρίζει πληροφορίες από κανένα domain. Γνωρίζει όμως **2 άλλους dns** (συνήθως είναι οι dns της εταιρείας που μας παρέχει Internet π.χ. dns της otenet ή του Πανελλήνιου Σχολικού Δικτύου). Όταν εμείς ρωτάμε τον dns του router αυτός ρωτάει με την σειρά του τον 1ο από τους άλλους 2 dns, **μαθαίνει πληροφορίες και μας απαντάει**. - Πάμε να το δούμε λοιπόν. **Στο Linux** θα βάλουμε μπροστά την εντολή **time** που μετράει χρόνο. Βρείτε την αριθμητική διεύθυνση για το domain **www.ubuntu.com** (ή αν είστε σε εργαστήριο **κάποιο άλλο τυχαίο domain** ώστε να μην το έχει ζητήσει και άλλος) time nslookup www.ubuntu.org .. Address: 82.98.134.233 .. real 0m0.614s user 0m0.008s sys 0m0.004s - Βλέπουμε ότι έκανε **0.614 δευτερόλεπτα** για να απαντήσει. Πάμε να τον ρωτήσουμε πάλι. Πατήστε πάνω βελάκι και εκτελέστε ξανά time nslookup www.ubuntu.org .. Address: 82.98.134.233 .. real 0m0.018s user 0m0.008s sys 0m0.004s * Τώρα απάντησε πολύ πιο γρήγορα σε **0.018 δευτερόλεπτα**. Την 1η φορά ρώτησε τους άλλους 2 dns για να μάθει. Την 2η ήξερε πλέον και απάντησε αμέσως. - **ΧΡΟΝΟΣ ΕΝΗΜΕΡΩΣΗΣ DNS** - Ακόμα και το domain **www.ubuntu.org** που γνωρίζει ο dns **μπορεί να αλλάξει IP**. Εκτελέστε στο Linux dig www.ubuntu.org .. ;; ANSWER SECTION: www.ubuntu.org. 194 IN A 82.98.134.233 .. - Πατήστε πάνω βελάκι και εκτελέστε ξανά την εντολή **dig www.ubuntu.org** dig www.ubuntu.org .. ;; ANSWER SECTION: www.ubuntu.org. 177 IN A 82.98.134.233 .. * Βλέπετε ένα νούμερο π.χ. εδώ το **194** που μειώθηκε και έγινε **177** - σε εσάς θα έχει άλλες τιμές. Όταν περάσουν αυτά τα δλ ο dns του router **192.168.1.1** θα ξαναρωτήσει πάλι τους άλλους dns μήπως έχει αλλάξει η IP. Όταν ζητάμε ένα domain από τον dns συνήθως θα το **ξαναζητήσουμε πάλι αρκετές φορές αμέσως μετά**, π.χ. επειδή βλέπουμε ιστοσελίδες στο ίδιο site. **Μόνο την 1η φορά καθυστερεί λίγο** να μας απαντήσει. **Τις επόμενες απαντάει αμέσως**. Εάν περάσει ο χρόνος λήξης τότε το ξαναζητάει πάλι μία φορά. - **ΛΕΙΤΟΥΡΓΙΑ ΟΛΩΝ ΤΩΝ DNS** * Σύμφωνα με τα παραπάνω όταν τοπικός dns μας δεν γνωρίζει κάτι ρωτάει 2 άλλους. Μήπως λοιπόν αυτοί οι 2 άλλοι dns γνωρίζουν πληροφορίες για εκατοντάδες εκατομμύρια domain; Προφανώς και όχι. Και εκείνοι με την σειρά τους εάν δεν γνωρίζουν, ρωτάνε κάποιον άλλον dns, ο οποίος ρωτάει κάποιον άλλον κτλ. Πότε σταματάει όμως αυτό; * Υπάρχει ένας DNS ο οποίος είναι **υπεύθυνος/εξουσιοδοτημένος (authoritative)** για ένα domain. Μόλις ρωτηθεί ενημερώνονται όλοι οι προηγούμενοι που ρωτούσαν ο ένας τον άλλον. - Π.χ. εκτελέστε nslookup www.google.com Server: 192.168.1.200 Address: 192.168.1.200#53 Non-authoritative answer: Name: www.google.com Address: 74.125.206.147 Name: www.google.com Address: 74.125.206.99 .. - Βλέπετε ότι υπάρχει η γραμμή **Non-authoritative answer** (μή εξουσιοδοτημένη απάντηση). Αυτό σημαίνει ότι ο **192.168.1.200** απαντάει μεν αλλά δεν είναι αυτός ο υπεύθυνος για το domain. Ρώτησε και έμαθε. Εκτελέστε τώρα nslookup www.google.com 216.239.32.10 Server: 216.239.32.10 Address: 216.239.32.10#53 Name: www.google.com Address: 74.125.206.106 Name: www.google.com Address: 74.125.206.147 .. * Βλέπουμε ότι λείπει η γραμμή **Non-authoritative answer**. Ο **216.239.32.10** είναι **υπεύθυνος/εξουσιοδοτημένος (authoritative)** για το domain **www.google.com** και δεν χρειάζεται να ρωτήσει άλλον. Απαντάει ο ίδιος. - **ΤΟΠΙΚΕΣ ΕΓΓΡΑΦΕΣ DNS** * ΟΙ IP διευθύνσεις δεν είναι μόνο οι Διαδικτυακές είναι και οι τοπικές που συνήθως ξεκινάνε από 192.168.1.y ή γενικά από 192.168.x.y (το x έχει τιμές από 0..254 και το y από 1..254). Αυτές οι τοπικές IP είναι λίγες. Εάν κάποιος ΗΥ έχει πάντα την ίδια ip μπορούμε να αναφερόμαστε σε αυτόν με ένα όνομα. Π.χ. **pc1**, **server** κτλ. Στο εργαστήριο συνήθως ο DNS γνωρίζει τις IP από όλα τα μηχανήματα. - Για να βρούμε το όνομα του ΗΥ μας εκτελούμε **hostname -s** hostname -s pc1 - Ρωτήστε το όνομα του ΗΥ του διπλανού σας. Τώρα εκτελέστε την κατάλληλη εντολή **για να βρείτε την IP του**. - **Δοκιμάστε επικοινωνία** με τον ΗΥ του διπλανού σας χρησιμοποιώντας **το όνομα του HY του**. * FIXME note γιατί θέλουν 24-48 ώρες να φανούν στο Internet τα νέα domains ---- * **ΑΣΚΗΣΗ ΓΙΑ ΤΟ ΣΠΙΤΙ** * FIXME