Πώς να ρυθμίσετε την προσωρινή αποθήκευση DNS χρησιμοποιώντας το dnsmasq στο Ubuntu

Το DNSmasq μπορεί να χρησιμοποιηθεί για την προσωρινή αποθήκευση αιτημάτων DNS για διανομές Linux. Ωστόσο, μπορεί να είναι λίγο δύσκολο.

Η κρυφή μνήμη DNS λειτουργεί για να επιταχύνει τη διαδικασία αναζήτησης DNS που μετατρέπει ένα όνομα τομέα ιστότοπου στη σχετική διεύθυνση IP. Όταν πολλοί χρήστες στο δίκτυό σας επισκέπτονται την ίδια διεύθυνση ιστότοπου, η χρήση του τοπικού διακομιστή προσωρινής μνήμης DNS μπορεί να μειώσει τον χρόνο που χρειάζεται για τη φόρτωση του ιστού.

Πρώτα, ας δούμε τι είναι η προσωρινή αποθήκευση DNS.

Τι είναι η προσωρινή αποθήκευση DNS;

Το DNS χρησιμοποιείται από το Διαδίκτυο για να παρακολουθεί όλους τους διαδικτυακούς ιστότοπους που είναι προσβάσιμοι στο κοινό και τις σχετικές διευθύνσεις IP τους. Μπορεί να συγκριθεί με τηλεφωνικό κατάλογο. Η χρήση DNS μας εμποδίζει να απομνημονεύσουμε την IP κάθε τοποθεσίας, η οποία απαιτείται για την αλληλεπίδραση της υποδομής δικτύου με τοποθεσίες Διαδικτύου.

Κάθε φορά που ζητάτε από τη μηχανή αναζήτησης να εμφανίσει μια ιστοσελίδα, αυτό συμβαίνει στην πραγματικότητα στα παρασκήνια.

Παρόλο που το σύστημά σας έχει πρόσβαση σε μεγάλο αριθμό εξωτερικών διακομιστών DNS, το ζήτημα είναι ότι η ύπαρξη ενός κεντρικού αντιγράφου του DNS εξακολουθεί να επιταχύνει τη μετάδοση και την ανάλυση. Αυτό είναι όταν μπαίνει στο παιχνίδι η προσωρινή αποθήκευση DNS.

Πριν από την αποστολή του αιτήματος στον ιστό, η κρυφή μνήμη DNS χειρίζεται την ανάλυση ταυτότητας για τομείς στους οποίους προσπελάσατε πρόσφατα και συχνά προσπελάσετε, σε μια προσπάθεια να επιταχύνει τη διαδικασία πολύ περισσότερο.

Η πρόσβαση στον διακομιστή DNS γίνεται όποτε είναι απαραίτητο για την επίλυση μιας διεύθυνσης IP σε ένα όνομα τομέα. Αυτό μπορεί να επιβαρύνει επιπλέον τον διακομιστή DNS, ιδιαίτερα εάν ο ιστότοπος λαμβάνει πολλά αιτήματα ταυτόχρονα.

Μια κρυφή μνήμη DNS χρησιμοποιείται για τη μείωση των αιτημάτων DNS και των χρόνων απόκρισης. Οι επιλυμένες διευθύνσεις IP μαζί με τις λεπτομέρειες του κεντρικού υπολογιστή αποθηκεύονται τοπικά. Αντί να ξεκινήσει ένα νέο ερώτημα DNS, το αποτέλεσμα ανακτάται από την προσωρινή μνήμη DNS την επόμενη φορά που θα πρέπει να επιλυθεί η IP ή το όνομα τομέα.

Πώς βοηθά η προσωρινή αποθήκευση DNS στην επίλυση προβλημάτων διακοπτόμενου DNS στις Παρουσίες EC2 του Amazon;

Η πλειοψηφία των συστημάτων Linux δεν χρησιμοποιεί τοπική κρυφή μνήμη DNS. Αυτό σημαίνει ότι όλα τα αιτήματα DNS αποστέλλονται απευθείας στον επίσημο πρόγραμμα επίλυσης DNS που παρέχεται από την Amazon, η οποία έχει έναν περιορισμό στον αριθμό των αιτημάτων που μπορεί να επεξεργαστεί ταυτόχρονα. Προβλήματα επίλυσης DNS παρουσιάζονται όταν υπάρχουν πολλά αιτήματα.

Η ανάπτυξη μιας τοπικής κρυφής μνήμης DNS στο σύστημα θα σας βοηθήσει να μειώσετε τη χρήση της CPU και του δικτύου, ενώ θα αποτρέψετε σφάλματα ανάλυσης DNS. Μια τοπική κρυφή μνήμη DNS απαντά σε ερωτήματα που γίνονται σε εξωτερικούς πόρους DNS όπως το Amazon RDS και το S3.

  7 εφαρμογές για κινητά για να μαθαίνετε κάτι νέο κάθε μέρα

Το πρωτόκολλο DHCP χρησιμοποιείται κατά την εκκίνηση από παρουσίες Amazon EC2 που συνδέονται με VPC της Amazon για να ζητήσουν μια διεύθυνση διακομιστή DNS.

Όταν χρησιμοποιείτε το Amazon VPC για τη δημιουργία ενός εικονικού ιδιωτικού νέφους, το Route 53 DNS Resolver χρησιμοποιεί αποτελεσματικά ένα πρόγραμμα επίλυσης στο VPC για να ανταποκρίνεται σε αιτήματα DNS για παρουσίες EC2 που εκτελούνται κάτω από τοπικές διευθύνσεις ιστού Amazon VPC και καταχωρίσεις σε ιδιωτικά διαχειριζόμενες ζώνες. Το Resolver πραγματοποιεί επαναλαμβανόμενες αναζητήσεις σε δημόσιους διακομιστές DNS για όλες τις πρόσθετες διευθύνσεις Ιστού.

Μια προσωρινή μνήμη DNS χρησιμεύει ως μια μεταβατική εγγραφή προηγούμενων ερωτημάτων DNS που το σύστημά μας μπορεί να εξετάσει γρήγορα ενώ προσπαθεί να αποκτήσει πρόσβαση σε έναν διαδικτυακό ιστότοπο. Διατηρεί ένα αρχείο καταγραφής κάθε υπάρχουσας και επόμενης συνεδρίας. Αυτή η κρυφή μνήμη DNS διευκολύνει την ανάλυση τομέα και αποτρέπει σφάλματα με παρουσίες Amazon EC2 Linux.

Πολλοί χρήστες χρησιμοποιούν συνήθως την υπηρεσία Route 53 της Amazon για DNS όταν έχουν πρόσβαση στο AWS. Είναι πραγματικά εύκολο στη χρήση και σχεδόν δωρεάν. Ωστόσο, υπάρχουν διάφοροι λόγοι που θα μπορούσαν να επηρεάσουν την απόφαση του χρήστη να χρησιμοποιήσει έναν τοπικό διακομιστή DNS.

Παρόλο που το bind9 εξακολουθεί να είναι μια εξαιρετική επιλογή για τη ρύθμιση ενός τοπικού διακομιστή προσωρινής μνήμης DNS, το dnsmasq είναι πολύ πιο απλό στην εγκατάσταση και τη διαμόρφωση τόσο σε παρουσίες EC2 όσο και σε τοπικό μηχάνημα.

Τι είναι το dnsmasq;

Το DNSmasq είναι ένα εργαλείο που σχετίζεται με το Linux που υποστηρίζει προσωρινή αποθήκευση DNS, DHCP, TFTP και DNS. Είναι κατασκευασμένο για να είναι συμπαγές και ελαφρύ, καθιστώντας το ιδανικό για δίκτυα και τείχη προστασίας με λιγότερους περιορισμούς πόρων.

Η εγκατάσταση και η διαμόρφωση είναι απίστευτα απλή. Για να ρυθμίσετε το DNS και το DHCP για υποδίκτυα, το dnsmasq είναι μια ευέλικτη και πρακτική λύση.

Είναι δυνατό να ρυθμίσετε αυτά τα αναγνωριστικά που έχουν εκχωρηθεί από το DHCP και τις σχετικές οδηγίες για κάθε διακομιστή ή για έναν υποκείμενο ελεγκτή. Οι δυναμικές και στατικές επιλογές DHCP υποστηρίζονται και οι δύο από το dnsmasq. Είναι φορητό και έχει τη δυνατότητα διαχείρισης DNS και DHCP για τουλάχιστον 1.000 πελάτες.

Όταν λαμβάνεται ένα ερώτημα DNS, το dnsmasq είτε απαντά από μια τοπική κρυφή μνήμη είτε το μεταδίδει σε έναν έγκυρο διακομιστή DNS. Εκτός από την ανταπόκριση σε αιτήματα DNS για διευθύνσεις με διαμόρφωση DHCP, ελέγχει τα περιεχόμενα του αρχείου /etc/hosts για να εντοπίσει τοπικά ονόματα κεντρικών υπολογιστών που δεν αναφέρονται στο δημόσιο DNS.

Η χρήση του εργαλείου dnsmasq αντί της ενσωματωμένης προσωρινής μνήμης DNS του προγράμματος περιήγησης βελτιώνει σημαντικά την απόδοση περιήγησης στο Διαδίκτυο. Είναι ιδανικό για ένα ολοκληρωμένο περιβάλλον με περιορισμένους πόρους επειδή είναι πολύ απλό στη ρύθμιση και χρειάζεται πολύ λίγο χώρο στο δίσκο.

  8 Καλύτερο SaaS HRMS για νεοσύστατες επιχειρήσεις και επιχειρήσεις

Χαρακτηριστικά του dnsmasq

  • Είναι απλό να ενσωματωθούν εσωτερικοί διακομιστές DNS χρησιμοποιώντας dnsmasq διαμορφώνοντάς το ώστε να μεταδίδει συγκεκριμένα ερωτήματα ανάλυσης ονόματος τομέα σε συγκεκριμένους έγκυρους διακομιστές.
  • Ο φόρτος εργασίας του διακομιστή μειώνεται και η αξιοπιστία βελτιώνεται χρησιμοποιώντας τον διαμορφωμένο τοπικό διακομιστή DNS.
  • Η διαμόρφωση DNS για τερματικά σημεία με δυνατότητα προστασίας τείχους προστασίας είναι μάλλον εύκολη και ανεξάρτητη από το DNS που χρησιμοποιεί ο ISP.
  • Εάν η θύρα που είναι συνδεδεμένη στο Διαδίκτυο δεν είναι προσβάσιμη κατά την εκτέλεση ελέγχου DNS στον υπολογιστή, η λειτουργία αναζήτησης θα ανασταλεί αμέσως.
  • Μέσω ερωτημάτων PPP (Point-to-point protocol) ή DHCP, το dnsmasq μπορεί πραγματικά να ρυθμιστεί ώστε να συλλέγει περιοδικά δεδομένα απευθείας από τον υποκείμενο διακομιστή ανάλυσης τομέα.

Εγκατάσταση

Η υπηρεσία επίλυσης συστήματος συστήματος πρέπει να απενεργοποιηθεί πριν από την εγκατάσταση και τη διαμόρφωση του βοηθητικού προγράμματος dnsmasq.

systemctl stop systemd-resolved

Μπορείτε επίσης να το αποκρύψετε χρησιμοποιώντας το χαρακτηριστικό mask, έτσι ώστε να μην ξεκινά αυτόματα κατά την επανεκκίνηση.

 systemctl mask systemd-resolved

Η εγκατάσταση του dnsmasq είναι η αρχική ενέργεια που πρέπει να εκτελέσετε μετά την απενεργοποίηση του systemd-resolved. Το DNSmasq είναι προεγκατεστημένο σε όλες σχεδόν τις διανομές Linux. Εάν όχι, μπορείτε να το εγκαταστήσετε χειροκίνητα. Εκκινήστε ένα τερματικό εντολών και, στη συνέχεια, πληκτρολογήστε την ακόλουθη εντολή για να το κάνετε.

sudo apt-get install dnsmasq

Χρησιμοποιήστε την ακόλουθη εντολή εάν είστε χρήστης yum:

sudo yum install -y dnsmasq

Αυτή η εντολή εγκαθιστά αυτόματα το εργαλείο και ξεκινά το dnsmasq στο παρασκήνιο.

Μετά την επιτυχή εγκατάσταση, μπορείτε να ελέγξετε την κατάσταση του dnsmasq χρησιμοποιώντας την παρακάτω εντολή.

systemctl status dnsmasq

Εάν εμφανίζει την κατάστασή του ως “ενεργό (σε λειτουργία)”, αυτό σημαίνει ότι η εγκατάσταση έχει ολοκληρωθεί και έχει ρυθμιστεί στη θύρα 53. Εάν εμφανίζει την κατάστασή του ως “ανενεργό (νεκρό)”, τότε θα πρέπει να επανεκκινήσετε ξανά τόσο το μηχάνημα Ubuntu όσο και το dnsmasq. Αυτό θα διορθώσει το σφάλμα.

Διαμόρφωση

Το Dnsmasq είναι τώρα έτοιμο να ρυθμιστεί στον υπολογιστή σας ως ο τοπικός διακομιστής DNS προσωρινής αποθήκευσης. Το προεπιλεγμένο αρχείο διαμόρφωσης βρίσκεται στο /etc/dnsmasq.conf. Αυτό το αρχείο διαμόρφωσης πρέπει να τροποποιηθεί για να ρυθμιστεί το βοηθητικό πρόγραμμα dnsmasq στο σύστημα.

Χρησιμοποιήστε αυτήν την εντολή για να ανοίξετε και να επεξεργαστείτε το αρχείο διαμόρφωσης.

nano /etc/dnsmasq.conf

Το αρχείο ρυθμίσεων πρέπει να επεξεργάζεται μόνο με δικαιώματα root. Απλώς διαγράψτε τα πάντα στο αρχείο, συμπεριλαμβανομένων των σχολίων και απλώς κάντε αντιγραφή-επικόλληση και αποθήκευση αυτής της ρύθμισης παραμέτρων.

port=53
domain-needed
bogus-priv
listen-address=127.0.0.1
expand-hosts
domain=geek-demo.com
cache-size=1000

Επιτρέψτε μου να περιγράψω εν συντομία τι σημαίνει κάθε μία από τις παραμέτρους.

  • Θύρα – Για να καθορίσετε ή να συνδέσετε τη θύρα που θα χρησιμοποιεί το Dnsmasq για να λαμβάνει αιτήματα DNS.
  • Απαιτείται τομέας – Μεταδίδει μόνο τα ονόματα τομέα στον ανοδικό διακομιστή DNS.
  • ψευδές-priv – αποτρέπει την προώθηση τομέα και θύρας
  • listen-address – Για να ορίσετε τη διεύθυνση διακομιστή ονομάτων. Συνήθως, ο localhost χρησιμοποιείται ως προεπιλογή, για τη ρύθμιση ενός τοπικού διακομιστή DNS.
  • τομέας – Για να διαμορφώσετε τους τομείς που το dnsmasq προσαρτά σε σύντομα αναγνωριστικά.
  • cache-size – Το μέγιστο μέγεθος προσωρινής αποθήκευσης DNS που επιτρέπεται στην αποθήκευση.
  Λάβετε καθοδηγούμενες οδηγίες επί της οθόνης για να συνθέσετε μια καλύτερη φωτογραφία

Αφού εκτελέσετε όλες τις απαραίτητες αλλαγές, αποθηκεύστε και κλείστε το αρχείο διαμόρφωσης. Και το επόμενο βήμα είναι να επεξεργαστείτε το αρχείο /etc/resolv.conf για να προσθέσετε τη διεύθυνση ανάλυσης τοπικού κεντρικού υπολογιστή. Χρησιμοποιήστε την παρακάτω εντολή για να ανοίξετε με το nano editor.

nano /etc/resolv.conf

Εδώ, μπορείτε να βρείτε όλους τους διακομιστές ονομάτων που χρησιμοποιεί το σύστημά σας για την ανάλυση διευθύνσεων. Σε αυτήν τη λίστα, προσθέστε επίσης τη διεύθυνση loopback. Προσθέστε τον “nameserver 127.0.0.1” και κρατήστε τον στην πρώτη γραμμή.

Αποθηκεύστε και βγείτε από το αρχείο διαμόρφωσης. Για να τεθεί σε ισχύ η ενημερωμένη ρύθμιση, επανεκκινήστε το βοηθητικό πρόγραμμα dnsmasq.

systemctl restart dnsmasq

Δοκιμή τοπικού διακομιστή προσωρινής αποθήκευσης DNS

Είναι εύκολο να δοκιμάσετε τον τοπικό διακομιστή DNS. Ανοίξτε μια γραμμή εντολών και χρησιμοποιήστε την εντολή dig για να ελέγξετε για προσωρινή αποθήκευση DNS. Όταν εκτελείτε την εντολή dig για πρώτη φορά, το αποτέλεσμα θα πρέπει να είναι αρκετά κοινό.

┌──(root💀kali)-[/home/writer]
└─# dig grtechpc.org.com                                                                                     1 ⚙

; <<>> DiG 9.18.0-2-Debian <<>> grtechpc.org.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 623
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;grtechpc.org.com.                 IN      A

;; ANSWER SECTION:
grtechpc.org.com.          227     IN      A       172.66.43.163
grtechpc.org.com.          227     IN      A       172.66.40.93

;; Query time: 31 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sat Oct 15 07:52:49 EDT 2022
;; MSG SIZE  rcvd: 74

Εδώ, σημειώστε ότι ο χρόνος ερωτήματος είναι περίπου 31 msec για να ρωτήσετε τις λεπτομέρειες από τον διακομιστή ονομάτων upstream. Εκτελέστε την ίδια εντολή dig για άλλη μια φορά και θα παρατηρήσετε σημαντική μείωση στον χρόνο ερωτήματος.

┌──(root💀kali)-[/home/writer]
└─# dig grtechpc.org.com                                                                                     1 ⚙

; <<>> DiG 9.18.0-2-Debian <<>> grtechpc.org.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21942
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;grtechpc.org.com.                 IN      A

;; ANSWER SECTION:
grtechpc.org.com.          281     IN      A       172.66.40.93
grtechpc.org.com.          281     IN      A       172.66.43.163

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sat Oct 15 07:58:10 EDT 2022
;; MSG SIZE  rcvd: 74

Εδώ, ο χρόνος ερωτήματος είναι 0 msec. Αυτό οφείλεται στο γεγονός ότι μετά την εκτέλεση της αρχικής αναζήτησης, το dnsmasq αποθήκευσε τα δεδομένα και όλες οι αναζητήσεις που πραγματοποιήθηκαν στη συνέχεια ήταν στιγμιαίες λόγω της χρήσης της αποθηκευμένης κρυφής μνήμης. Η επανεκκίνηση του dnsmasq είναι απαραίτητη εάν θέλετε να διαγράψετε την αποθηκευμένη κρυφή μνήμη DNS.

Τυλίγοντας

Σε αυτό το άρθρο, είδαμε πώς να ρυθμίσετε και να ρυθμίσετε τις παραμέτρους του dnsmasq ώστε να λειτουργεί ως τοπικός διακομιστής DNS. Μπορεί επίσης να σας ενδιαφέρει να μάθετε πώς μπορείτε να αλλάξετε τους διακομιστές DNS για ταχύτερη περιήγηση σε διαφορετικά λειτουργικά συστήματα.