LinuxFanClub Wiki

Υπηρεσίες, Προγραμματισμός, Εκπαίδευση ..

User Tools

Site Tools


el:school:lessons:diktya_i:dns

DNS - Ονοματοδοσία

  • Είδαμε ότι όλοι οι Υπολογιστές έχουν μία αριθμητική διεύθυνση ώστε να μπορούν να επικοινωνούμε. Εμείς όμως χρησιμοποιούμε ονομαστικές διευθύνσεις όπως www.google.com που τις θυμόμαστε πιο εύκολα. Για να επικοινωνήσει τελικά όμως ο ΗΥ μας θα πρέπει κάποιος να τις μετατρέψει σε αριθμητικές. Αυτή την δουλειά την κάνει ο DNS
  1. ΕΙΣΑΓΩΓΗ
    • Εκτελέστε
      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
  2. ΕΥΡΕΣΗ ΟΛΩΝ ΤΩΝ DNS
    • Μας απάντησε ο 192.168.1.1 που είναι ο 1ος dns και μας έδωσε 2 αριθμητικές διευθύνσεις την 5.153.231.4 και την 130.89.148.14. Δεν είναι όμως ο μοναδικός dns. Συνήθως υπάρχουν 2 ή και περισσότεροι dns. Εάν ο 1ος έχει κάποιο πρόβλημα τότε θα εξυπηρετήσει ο 2oς.
    1. Για να δούμε την λίστα με τους 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ος.
  3. ΕΡΩΤΗΣΗ ΑΛΛΟΥ DNS
    1. Θα ζητήσουμε να μας απαντήσει ο 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
    2. Μας απάντησε ο 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 δίνουν τυχαία μία ή περισσότερες από αυτές ώστε να μοιράζεται η κίνηση σε όλους τους εξυπηρετητές.

  1. ΛΕΙΤΟΥΡΓΙΑ 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, μαθαίνει πληροφορίες και μας απαντάει.
    1. Πάμε να το δούμε λοιπόν. Στο 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
  2. Βλέπουμε ότι έκανε 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η ήξερε πλέον και απάντησε αμέσως.
  3. ΧΡΟΝΟΣ ΕΝΗΜΕΡΩΣΗΣ DNS
    1. Ακόμα και το domain www.ubuntu.org που γνωρίζει ο dns μπορεί να αλλάξει IP. Εκτελέστε στο Linux
      dig www.ubuntu.org
      ..
      ;; ANSWER SECTION:
      www.ubuntu.org.		194	IN	A	82.98.134.233
      ..
    2. Πατήστε πάνω βελάκι και εκτελέστε ξανά την εντολή 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η φορά καθυστερεί λίγο να μας απαντήσει. Τις επόμενες απαντάει αμέσως. Εάν περάσει ο χρόνος λήξης τότε το ξαναζητάει πάλι μία φορά.

  1. ΛΕΙΤΟΥΡΓΙΑ ΟΛΩΝ ΤΩΝ DNS
    • Σύμφωνα με τα παραπάνω όταν τοπικός dns μας δεν γνωρίζει κάτι ρωτάει 2 άλλους. Μήπως λοιπόν αυτοί οι 2 άλλοι dns γνωρίζουν πληροφορίες για εκατοντάδες εκατομμύρια domain; Προφανώς και όχι. Και εκείνοι με την σειρά τους εάν δεν γνωρίζουν, ρωτάνε κάποιον άλλον dns, ο οποίος ρωτάει κάποιον άλλον κτλ. Πότε σταματάει όμως αυτό;
    • Υπάρχει ένας DNS ο οποίος είναι υπεύθυνος/εξουσιοδοτημένος (authoritative) για ένα domain. Μόλις ρωτηθεί ενημερώνονται όλοι οι προηγούμενοι που ρωτούσαν ο ένας τον άλλον.
    1. Π.χ. εκτελέστε
      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
      ..
    2. Βλέπετε ότι υπάρχει η γραμμή 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 και δεν χρειάζεται να ρωτήσει άλλον. Απαντάει ο ίδιος.
  2. ΤΟΠΙΚΕΣ ΕΓΓΡΑΦΕΣ DNS
    • ΟΙ IP διευθύνσεις δεν είναι μόνο οι Διαδικτυακές είναι και οι τοπικές που συνήθως ξεκινάνε από 192.168.1.y ή γενικά από 192.168.x.y (το x έχει τιμές από 0..254 και το y από 1..254). Αυτές οι τοπικές IP είναι λίγες. Εάν κάποιος ΗΥ έχει πάντα την ίδια ip μπορούμε να αναφερόμαστε σε αυτόν με ένα όνομα. Π.χ. pc1, server κτλ. Στο εργαστήριο συνήθως ο DNS γνωρίζει τις IP από όλα τα μηχανήματα.
    1. Για να βρούμε το όνομα του ΗΥ μας εκτελούμε hostname -s
      hostname -s
      pc1
    2. Ρωτήστε το όνομα του ΗΥ του διπλανού σας. Τώρα εκτελέστε την κατάλληλη εντολή για να βρείτε την IP του.
    3. Δοκιμάστε επικοινωνία με τον ΗΥ του διπλανού σας χρησιμοποιώντας το όνομα του HY του.
  • FIXME note γιατί θέλουν 24-48 ώρες να φανούν στο Internet τα νέα domains

  • ΑΣΚΗΣΗ ΓΙΑ ΤΟ ΣΠΙΤΙ
    • FIXME
el/school/lessons/diktya_i/dns.txt · Last modified: Y/m/d H:i by vagk