Πώς να ρυθμίσετε έναν διακομιστή DNS/DHCP χρησιμοποιώντας dnsmasq σε CentOS/RHEL 8/7


Ένας διακομιστής Dynamic Host Configuration Protocol (DHCP) εκχωρεί δυναμικά διευθύνσεις IP και άλλες παραμέτρους διαμόρφωσης δικτύου σε κάθε συσκευή σε ένα δίκτυο. Ένας προωθητής DNS σε ένα LAN προωθεί ερωτήματα DNS για μη τοπικά ονόματα τομέα σε διακομιστές DNS ανοδικής ροής (εκτός αυτού του δικτύου). Ένας διακομιστής προσωρινής αποθήκευσης DNS απαντά σε αναδρομικά αιτήματα από πελάτες, έτσι ώστε το ερώτημα DNS να μπορεί να επιλυθεί πιο γρήγορα, βελτιώνοντας έτσι τις ταχύτητες αναζήτησης DNS σε ιστότοπους που έχετε επισκεφτεί στο παρελθόν.

Το dnsmasq είναι ένα ελαφρύ, εύκολο στη διαμόρφωση υποσύστημα προώθησης DNS, λογισμικό διακομιστή DHCP και διαφημιστικό υποσύστημα δρομολογητή για μικρά δίκτυα. Το Dnsmasq υποστηρίζει Linux, *BSD, Mac OS X καθώς και Android.

Διαθέτει ένα υποσύστημα DNS που παρέχει έναν τοπικό διακομιστή DNS για το δίκτυο, με προώθηση όλων των τύπων ερωτημάτων σε ανάντη αναδρομικούς διακομιστές DNS και προσωρινή αποθήκευση κοινών τύπων εγγραφών. Το υποσύστημα DHCP υποστηρίζει DHCPv4, DHCPv6, BOOTP, PXE και διακομιστή TFTP. Και το υποσύστημα διαφήμισης δρομολογητή υποστηρίζει βασική αυτόματη διαμόρφωση για κεντρικούς υπολογιστές IPv6.

Σε αυτό το άρθρο, θα σας καθοδηγήσουμε στις οδηγίες σχετικά με τον τρόπο εγκατάστασης και ρύθμισης διακομιστή DNS/DHCP χρησιμοποιώντας dnsmasq στο CentOS/RHEL 8/7 διανομές.

Εγκατάσταση dnsmasq σε CentOS και RHEL Linux

1. Το πακέτο dnsmasq είναι διαθέσιμο στα προεπιλεγμένα αποθετήρια και μπορεί να εγκατασταθεί εύκολα χρησιμοποιώντας τον διαχειριστή πακέτων YUM όπως φαίνεται.

# yum install dnsmasq

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

# systemctl start dnsmasq
# systemctl enable dnsmasq
# systemctl status dnsmasq

Διαμόρφωση διακομιστή dnsmasq σε CentOS και RHEL Linux

3. Ο διακομιστής dnsmasq μπορεί να διαμορφωθεί μέσω του αρχείου /etc/dnsmasq.conf (το οποίο περιέχει καλά σχολιασμένες και επεξηγημένες επιλογές) και του χρήστη -τα καθορισμένα αρχεία διαμόρφωσης μπορούν επίσης να προστεθούν στον κατάλογο /etc/dnsmasq.d.

Το DNS είναι ενεργοποιημένο από προεπιλογή, επομένως, πριν κάνετε οποιεσδήποτε αλλαγές, φροντίστε να δημιουργήσετε ένα αντίγραφο ασφαλείας του αρχείου /etc/dnsmasq.conf.

# cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

4. Τώρα ανοίξτε το αρχείο /etc/dnsmasq.conf χρησιμοποιώντας το αγαπημένο σας πρόγραμμα επεξεργασίας κειμένου και κάντε τις παρακάτω προτεινόμενες ρυθμίσεις διαμόρφωσης.

# vi /etc/dnsmasq.conf 

Η επιλογή listen-address χρησιμοποιείται για τον ορισμό της διεύθυνσης IP, όπου θα ακούει το dnsmasq. Για να χρησιμοποιήσετε τον διακομιστή σας CentOS/RHEL για να ακούσετε αιτήματα DHCP και DNS στο LAN, ορίστε τον <κώδικα Επιλογή >listen-address στις διευθύνσεις IP του LAN (θυμηθείτε να συμπεριλάβετε το 127.0.0.1) όπως φαίνεται. Σημειώστε ότι η IP του διακομιστή πρέπει να είναι στατική.

listen-address=::1,127.0.0.1,192.168.56.10

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

interface=eth0

5. Εάν θέλετε να έχετε έναν τομέα (τον οποίο μπορείτε να ορίσετε όπως φαίνεται στη συνέχεια) να προστίθεται αυτόματα σε απλά ονόματα σε ένα αρχείο κεντρικών υπολογιστών, καταργήστε το σχόλιο του expand- hosts επιλογή.

expand-hosts

6. Για να ορίσετε τον τομέα για dnsmasq, που σημαίνει ότι οι πελάτες DHCP θα έχουν πλήρως αναγνωρισμένα ονόματα τομέα, εφόσον ο καθορισμένος τομέας αντιστοιχίζεται και ορίζει τον τομέα τομέα ” Επιλογή DHCP για όλους τους πελάτες.

domain=tecmint.lan

7. Στη συνέχεια, ορίστε επίσης τον ανοδικό διακομιστή DNS για μη τοπικούς τομείς χρησιμοποιώντας την επιλογή διακομιστής (με τη μορφή server=dns_server_ip) όπως φαίνεται .

# Google's nameservers
server=8.8.8.8
server=8.8.4.4

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

address=/tecmint.lan/127.0.0.1 
address=/tecmint.lan/192.168.56.10

9. Αποθηκεύστε το αρχείο και ελέγξτε τη σύνταξη του αρχείου διαμόρφωσης για σφάλματα όπως φαίνεται.

# dnsmasq --test

Διαμόρφωση dnsmasq με /etc/resolv.conf Αρχείο

10. Σε αυτό το βήμα, πρέπει να κάνετε όλα τα ερωτήματα που θα σταλούν στο dnsmasq προσθέτοντας τις διευθύνσεις localhost ως τους μοναδικούς διακομιστές ονομάτων στο αρχείο /etc/resolv.conf.

# vi /etc/resolv.conf

11. Το αρχείο /etc/resolv.conf διατηρείται από έναν τοπικό δαίμονα, ειδικά την εντολή chattr όπως φαίνεται.

# chattr +i /etc/resolv.conf
# lsattr /etc/resolv.conf

Καθορισμός κεντρικών υπολογιστών και ονομάτων DNS

12. Το Dnsmasq διαβάζει όλους τους κεντρικούς υπολογιστές DNS και τα ονόματα από το αρχείο /etc/hosts, επομένως προσθέστε τις διευθύνσεις IP των κεντρικών υπολογιστών DNS και τα ζεύγη ονομάτων όπως φαίνεται.

127.0.0.1       dnsmasq
192.168.56.10 	dnsmasq 
192.168.56.1   	gateway
192.168.56.100	maas-controller 
192.168.56.20 	nagios
192.168.56.25 	webserver1

Σημαντικό: Τα τοπικά ονόματα DNS μπορούν επίσης να οριστούν με την εισαγωγή ονομάτων από το υποσύστημα DHCP ή με τη διαμόρφωση ενός ευρέος φάσματος χρήσιμων τύπων εγγραφών.

13. Για να εφαρμόσετε τις παραπάνω αλλαγές, επανεκκινήστε την υπηρεσία dnsmasq όπως φαίνεται.

# systemctl restart dnsmasq

14. Εάν έχετε την υπηρεσία τείχος προστασίας σε λειτουργία, πρέπει να ανοίξετε τις υπηρεσίες DNS και DHCP στη διαμόρφωση του τείχους προστασίας , για να επιτρέψετε σε αιτήματα από κεντρικούς υπολογιστές στο LAN σας να περάσουν στον διακομιστή dnsmasq.

# firewall-cmd --add-service=dns --permanent
# firewall-cmd --add-service=dhcp --permanent
# firewall-cmd --reload

Δοκιμή τοπικού DNS

15. Για να ελέγξετε εάν ο τοπικός διακομιστής DNS ή η προώθηση λειτουργεί σωστά, πρέπει να χρησιμοποιήσετε εργαλεία όπως το nslookup για την εκτέλεση ερωτημάτων DNS. Αυτά τα εργαλεία παρέχονται από το πακέτο bind-utils το οποίο ενδέχεται να μην είναι προεγκατεστημένο στο CentOS/RHEL 8, αλλά μπορείτε να το εγκαταστήσετε όπως φαίνεται.

# yum install bind-utils

16. Αφού το εγκαταστήσετε, μπορείτε να εκτελέσετε ένα απλό ερώτημα στον τοπικό σας τομέα, όπως φαίνεται.

# dig tecmint.lan
OR
# nslookup tecmint.lan

17. Μπορείτε επίσης να δοκιμάσετε να υποβάλετε ερώτημα στο FQDN ενός από τους διακομιστές.

# dig webserver1.tecmint.lan
OR
# nslookup webserver1.tecmint.lan

18. Για να δοκιμάσετε μια αντίστροφη αναζήτηση IP, εκτελέστε μια παρόμοια εντολή.

# dig -x 192.168.56.25
OR
# nslookup 192.168.56.25

Ενεργοποίηση διακομιστή DHCP με χρήση dnsmasq

19. Μπορείτε να ενεργοποιήσετε τον διακομιστή DHCP καταργώντας το σχολιασμό της επιλογής dhcp-range και να παρέχετε το εύρος των διευθύνσεων που είναι διαθέσιμες για μίσθωση και προαιρετικά έναν χρόνο μίσθωσης π.χ. (επανάληψη για περισσότερα από ένα δίκτυα).

dhcp-range=192.168.0.50,192.168.0.150,12h

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

dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

21. Για να μεταφέρετε τον διακομιστή DHCP σε λειτουργία εξουσιοδότησης, καταργήστε το σχόλιο της επιλογής.

dhcp-authoritative

22. Αποθηκεύστε το αρχείο και επανεκκινήστε την υπηρεσία dnsmasq για να εφαρμόσετε τις πρόσφατες αλλαγές.

# systemctl restart dnsmasq

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