Kako postaviti DNS/DHCP server koristeći dnsmasq na CentOS/RHEL 8/7


Dynamic Host Configuration Protocol (DHCP) server dinamički dodjeljuje IP adrese i druge parametre mrežne konfiguracije svakom uređaju na mreži. DNS prosljeđivač na LAN-u prosljeđuje DNS upite za imena ne-lokalnih domena na uzvodne DNS servere (izvan te mreže). Server za keširanje DNS-a odgovara na rekurzivne zahtjeve klijenata tako da se DNS upit može brže riješiti, čime se poboljšava brzina DNS pretraživanja na prethodno posjećenim lokacijama.

dnsmasq je lagan, jednostavan za konfigurisanje DNS prosljeđivača, softvera DHCP servera i podsistema za oglašavanje rutera za male mreže. Dnsmasq podržava Linux, *BSD, Mac OS X kao i Android.

Poseduje DNS podsistem koji obezbeđuje lokalni DNS server za mrežu, sa prosleđivanjem svih tipova upita na upstream rekurzivne DNS servere i keširanjem uobičajenih tipova zapisa. DHCP podsistem podržava DHCPv4, DHCPv6, BOOTP, PXE i TFTP server. I podsistem oglašavanja rutera podržava osnovnu autokonfiguraciju za IPv6 hostove.

U ovom članku ćemo vas provesti kroz upute o tome kako instalirati i postaviti DNS/DHCP server koristeći dnsmasq na CentOS/RHEL 8/7 > distribucije.

Instaliranje dnsmasq u CentOS i RHEL Linux

1. Paket dnsmasq je dostupan u podrazumevanim repozitorijumima i može se lako instalirati pomoću YUM menadžera paketa kao što je prikazano.

yum install dnsmasq

2. Kada se završi instalacija dnsmasq paketa, za sada morate pokrenuti uslugu dnsmasq i omogućiti joj da se automatski pokreće pri pokretanju sistema. Osim toga, provjerite njegov status kako biste bili sigurni da je pokrenut i radi pomoću sljedećih systemctl komandi.

systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq

Konfiguriranje dnsmasq servera u CentOS-u i RHEL Linux-u

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

DNS je omogućen prema zadanim postavkama, tako da prije bilo kakvih promjena, obavezno napravite rezervnu kopiju datoteke /etc/dnsmasq.conf.

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

4. Sada otvorite datoteku /etc/dnsmasq.conf koristeći svoj omiljeni uređivač teksta i napravite sljedeće predložene postavke konfiguracije.

vi /etc/dnsmasq.conf 

Opcija listen-address se koristi za postavljanje IP adrese, gdje će dnsmasq slušati. Da koristite svoj CentOS/RHEL server za slušanje DHCP i DNS zahtjeva na LAN, postavite listen-address opcija na svoje LAN IP adrese (ne zaboravite uključiti 127.0.0.1) kao što je prikazano. Imajte na umu da IP servera mora biti statičan.

listen-address=::1,127.0.0.1,192.168.56.10

Vezano za gore navedeno, možete ograničiti sučelje koje dnsmasq sluša koristeći opciju interfejsa (dodajte više linija za više od jednog interfejsa).

interface=eth0

5. Ako želite da se domena (koju možete postaviti kao što je prikazano u nastavku) automatski dodati jednostavnim imenima u hosts-datoteci, dekomentirajte expand- hosts opcija.

expand-hosts

6. Za postavljanje domene za dnsmasq, što znači da će DHCP klijenti imati potpuno kvalificirana imena domena sve dok se postavljena domena podudara, i postavlja “domenu ” DHCP opcija za sve klijente.

domain=tecmint.lan

7. Zatim također definirajte upstream DNS server za nelokalne domene koristeći opciju server (u obliku server=dns_server_ip) kao što je prikazano .

Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Zatim možete natjerati svoju lokalnu domenu na IP adresu(e) koristeći opciju adresa kao što je prikazano.

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

9. Sačuvajte datoteku i provjerite ima li grešaka u sintaksi konfiguracijskog fajla kao što je prikazano.

dnsmasq --test

Konfiguriranje dnsmasq-a sa /etc/resolv.conf datotekom

10. U ovom koraku morate napraviti da se svi upiti šalju na dnsmasq dodavanjem lokalnih host adresa kao jedine servere imena u datoteci /etc/resolv.conf.

vi /etc/resolv.conf

11. Datoteku /etc/resolv.conf održava lokalni demon, posebno NetworkManager, stoga će sve promjene koje je napravio korisnik biti prepisane. Da biste to spriječili, zaštitite ga od pisanja postavljanjem nepromjenjivog atributa datoteke (onemogućavanje pristupa pisanja datoteci) koristeći naredbu chattr kao što je prikazano.

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

Definiranje DNS hostova i imena

12. Dnsmasq čita sve DNS hostove i imena iz datoteke /etc/hosts, pa dodajte IP adrese svojih DNS hostova i parove imena 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: Lokalna DNS imena se također mogu definirati uvozom imena iz DHCP podsistema ili konfiguracijom širokog spektra korisnih tipova zapisa.

13. Da primijenite gore navedene promjene, ponovo pokrenite uslugu dnsmasq kao što je prikazano.

systemctl restart dnsmasq

14. Ako imate pokrenutu uslugu firewalld, morate otvoriti DNS i DHCP usluge u konfiguraciji zaštitnog zida , da dozvolite zahtjevima od hostova na vašem LAN-u da prođu na dnsmasq server.

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

Testiranje lokalnog DNS-a

15. Da biste testirali da li lokalni DNS server ili prosljeđivanje rade dobro, trebate koristiti alate kao što su dig ili nslookup za obavljanje DNS upita. Ove alate obezbeđuje paket bind-utils koji možda nije unapred instaliran na CentOS/RHEL 8, ali ga možete instalirati kao što je prikazano.

yum install bind-utils

16. Nakon što ste instalirali, možete pokrenuti jednostavan upit na vašoj lokalnoj domeni kao što je prikazano.

dig tecmint.lan
OR
nslookup tecmint.lan

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

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

18. Za testiranje obrnutog traženja IP adrese, pokrenite sličnu naredbu.

dig -x 192.168.56.25
OR
nslookup 192.168.56.25

Omogućite DHCP server koristeći dnsmasq

19. Možete omogućiti DHCP server tako što ćete dekomentirati opciju dhcp-range i dostaviti raspon adresa dostupnih za zakup i opciono vrijeme zakupa npr. (ponoviti 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 server držati svoju zakupljenu bazu podataka, što će vam pomoći da lako provjerite IP adrese koje mu je dodijelio.

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

21. Da biste DHCP server prebacili na autoritativni način, skinite komentar sa opcije.

dhcp-authoritative

22. Sačuvajte fajl i ponovo pokrenite uslugu dnsmasq da primenite nedavne promene.

systemctl restart dnsmasq

To nas dovodi do kraja ovog vodiča. Da biste nam se obratili za bilo kakva pitanja ili misli koje želite podijeliti o ovom vodiču, koristite obrazac za povratne informacije u nastavku.