Kako postaviti DNS/DHCP poslužitelj pomoću dnsmasq-a na CentOS/RHEL 8/7


Poslužitelj protokola za dinamičku konfiguraciju hosta (DHCP) dinamički dodjeljuje IP adrese i druge mrežne konfiguracijske parametre svakom uređaju u mreži. DNS prosljeđivač na LAN-u prosljeđuje DNS upite za nelokalna imena domena na uzvodne DNS poslužitelje (izvan te mreže). DNS poslužitelj za predmemoriranje odgovara na rekurzivne zahtjeve klijenata tako da se DNS upit može brže riješiti, poboljšavajući tako brzinu DNS pretraživanja na prethodno posjećenim web mjestima.

dnsmasq je lagan, jednostavan za konfiguriranje DNS prosljeđivač, DHCP poslužiteljski softver i podsustav za oglašavanje usmjerivača za male mreže. Dnsmasq podržava Linux, * BSD, Mac OS X, kao i Android.

Sadrži DNS podsustav koji pruža lokalni DNS poslužitelj za mrežu, s prosljeđivanjem svih vrsta upita na uzvodne rekurzivne DNS poslužitelje i predmemoriranjem uobičajenih vrsta zapisa. DHCP podsustav podržava DHCPv4, DHCPv6, BOOTP, PXE i TFTP poslužitelj. I podsustav oglašavanja usmjerivača podržava osnovnu automatsku konfiguraciju za IPv6 hostove.

U ovom ćemo vas članku provesti kroz upute za instaliranje i postavljanje DNS/DHCP poslužitelja pomoću dnsmasq-a na distribuciji CentOS/RHEL 8/7.

Instaliranje dnsmasq-a u CentOS i RHEL Linux

1. Paket dnsmasq dostupan je u zadanim spremištima i može se jednostavno instalirati pomoću upravitelja paketa YUM, kao što je prikazano.

# yum install dnsmasq

2. Nakon dovršetka instalacije dnsmasq paketa, za sada morate pokrenuti dnsmasq uslugu i omogućiti joj automatsko pokretanje pri pokretanju sustava. Osim toga, provjerite je li njegov status osiguran da li je pokrenut koristeći sljedeće naredbe systemctl.

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

Konfiguriranje dnsmasq poslužitelja u CentOS-u i RHEL Linuxu

3. Dnsmasq poslužitelj može se konfigurirati putem datoteke /etc/dnsmasq.conf (koja sadrži dobro komentirane i objašnjene opcije), a korisnički definirane konfiguracijske datoteke također se mogu dodati u direktorij /etc/dnsmasq.d.

DNS je omogućen prema zadanim postavkama, pa prije bilo kakvih promjena svakako napravite sigurnosnu kopiju datoteke /etc/dnsmasq.conf.

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

4. Sada otvorite datoteku /etc/dnsmasq.conf pomoću vašeg omiljenog uređivača temeljenog na tekstu i napravite sljedeće predložene postavke konfiguracije.

# vi /etc/dnsmasq.conf 

Opcija preslušavanje adrese koristi se za postavljanje IP adrese na kojoj će dnsmasq preslušavati. Da biste koristili svoj CentOS/RHEL poslužitelj za preslušavanje DHCP i DNS zahtjeva na LAN-u, postavite opciju listen-address na njegove LAN IP adrese (ne zaboravite uključiti 127.0.0.1) kao što je prikazano. Imajte na umu da IP poslužitelja mora biti statičan.

listen-address=::1,127.0.0.1,192.168.56.10

Povezano sa gore navedenim, možete ograničiti sučelje koje sluša dnsmasq koristeći opciju sučelja (dodajte više redaka za više od jednog sučelja).

interface=eth0

5. Ako želite da se domena (koju možete postaviti kao što je prikazano sljedeće) automatski dodaje jednostavnim imenima u datoteci hosts, isključite opciju expand-hosts .

expand-hosts

6. Da biste postavili domenu za dnsmasq, što znači da će DHCP klijenti imati potpuno kvalificirana imena domena sve dok se podudara postavljena domena i postavlja DHCP opciju "domena" za sve klijente.

domain=tecmint.lan

7. Dalje, također definirajte uzlazni DNS poslužitelj za nelokalne domene pomoću opcije poslužitelja (u obliku poslužitelj = dns_server_ip) kao što je prikazano.

# Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Tada svoju lokalnu domenu možete prisiliti na IP adresu (e) koristeći opciju adrese kao što je prikazano.

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

9. Spremite datoteku i provjerite ima li u sintaksi konfiguracijske datoteke pogrešaka kao što je prikazano.

# dnsmasq --test

10. U ovom koraku morate napraviti sve upite koji će se slati na dnsmasq dodavanjem adresa localhost kao jedinih poslužitelja imena u datoteci /etc/resolv.conf.

# vi /etc/resolv.conf

11. Datoteku /etc/resolv.conf održava lokalni demon, posebno naredba chattr, kao što je prikazano.

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

12. Dnsmasq čita sve DNS hostove i imena iz datoteke/etc/hosts, pa dodajte IP adrese i parove imena svojih DNS hostova kao što je prikazano.

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

Važno: Lokalni DNS nazivi također se mogu definirati uvozom imena iz DHCP podsustava ili konfiguracijom širokog raspona korisnih vrsta zapisa.

13. Da biste primijenili gore navedene promjene, ponovo pokrenite uslugu dnsmasq kako je prikazano.

# systemctl restart dnsmasq

14. Ako imate pokrenutu uslugu vatrozida, morate otvoriti DNS i DHCP usluge u konfiguraciji vatrozida kako biste omogućili zahtjeve domaćina na vašem LAN-u da proslijede na dnsmasq poslužitelj.

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

15. Da biste testirali radi li lokalni DNS poslužitelj ili prosljeđivanje ispravno, trebate koristiti alate kao što je nslookup za izvođenje DNS upita. Te alate pruža paket bind-utils koji možda nije unaprijed instaliran na CentOS/RHEL 8, ali možete ga instalirati kako je prikazano.

# yum install bind-utils

16. Nakon što instalirate, možete pokrenuti jednostavan upit na svojoj lokalnoj domeni kao što je prikazano.

# dig tecmint.lan
OR
# nslookup tecmint.lan

17. Također možete pokušati upitati FQDN jednog od poslužitelja.

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

18. Da biste testirali obrnuto pretraživanje IP-a, pokrenite sličnu naredbu.

# dig -x 192.168.56.25
OR
# nslookup 192.168.56.25

Omogućite DHCP poslužitelj pomoću dnsmasq-a

19. DHCP poslužitelj možete omogućiti ako komentirate opciju dhcp-range i navedete raspon adresa dostupnih za zakup, a po potrebi i vrijeme zakupa, npr. (Ponovite za više od jedne mreže).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. Sljedeća opcija definira gdje će DHCP poslužitelj zadržati svoju bazu podataka zakupa, što će vam pomoći da lako provjerite IP adrese koje je dodijelio.

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

21. Da biste DHCP poslužitelj prešli u mjerodavni način, isključite tu mogućnost.

dhcp-authoritative

22. Spremite datoteku i ponovno pokrenite uslugu dnsmasq da biste primijenili nedavne promjene.

# systemctl restart dnsmasq

To nas dovodi do kraja ovog vodiča. Da biste nas kontaktirali za bilo kakva pitanja ili razmišljanja koja želite podijeliti u vezi s ovim vodičem, upotrijebite obrazac za povratne informacije u nastavku.