Kako nastaviti strežnik DNS/DHCP z uporabo dnsmasq na CentOS/RHEL 8/7


Strežnik protokola DHCP (Dynamic Host Configuration Protocol) dinamično dodeli naslove IP in druge konfiguracijske parametre omrežja vsaki napravi v omrežju. DNS-posredovalnik v LAN-u posreduje DNS-poizvedbe za nelokalna imena domen strežnikom DNS navzgor (zunaj tega omrežja). Strežnik za predpomnjenje DNS odgovarja na rekurzivne zahteve odjemalcev, da se lahko poizvedba DNS hitreje reši, s čimer se izboljša hitrost iskanja DNS na predhodno obiskanih mestih.

dnsmasq je lahek in enostaven za konfiguriranje DNS posrednik, strežniška programska oprema DHCP in podsistem za oglaševanje usmerjevalnikov za majhna omrežja. Dnsmasq podpira Linux, * BSD, Mac OS X in Android.

Vsebuje podsistem DNS, ki zagotavlja lokalni strežnik DNS za omrežje, s posredovanjem vseh vrst poizvedb na rekurzivne strežnike DNS in predpomnjenjem običajnih vrst zapisov. Podsistem DHCP podpira DHCPv4, DHCPv6, BOOTP, PXE in strežnik TFTP. In podsistem za oglaševanje usmerjevalnika podpira osnovno samodejno konfiguracijo za gostitelje IPv6.

V tem članku vas bomo vodili skozi navodila za namestitev in nastavitev strežnika DNS/DHCP z uporabo dnsmasq v distribucijah CentOS/RHEL 8/7.

Namestitev dnsmasq v CentOS in RHEL Linux

1. Paket dnsmasq je na voljo v privzetih repozitorijih in ga je mogoče enostavno namestiti z upraviteljem paketov YUM, kot je prikazano.

# yum install dnsmasq

2. Ko je namestitev paketa dnsmasq končana, morate za zdaj zagnati storitev dnsmasq in omogočiti, da se samodejno zažene ob zagonu sistema. Poleg tega z naslednjimi ukazi systemctl preverite njegovo stanje in se prepričajte, da deluje.

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

Konfiguriranje strežnika dnsmasq v CentOS in RHEL Linux

3. Strežnik dnsmasq je mogoče konfigurirati prek datoteke /etc/dnsmasq.conf (ki vsebuje dobro komentirane in razložene možnosti), v imenik /etc/dnsmasq.d pa lahko dodate tudi uporabniško določene konfiguracijske datoteke.

DNS je privzeto omogočen, zato pred kakršnimi koli spremembami ustvarite varnostno kopijo datoteke /etc/dnsmasq.conf.

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

4. Zdaj odprite datoteko /etc/dnsmasq.conf z vašim najljubšim urejevalnikom besedil in naredite naslednje predlagane nastavitve konfiguracije.

# vi /etc/dnsmasq.conf 

Možnost poslušalni naslov se uporablja za nastavitev naslova IP, kjer bo dnsmasq poslušal. Če želite s strežnikom CentOS/RHEL poslušati zahteve DHCP in DNS v lokalnem omrežju, nastavite možnost listen-address na njegove naslove IP LAN (ne pozabite vključiti 127.0.0.1), kot je prikazano. Upoštevajte, da mora biti IP strežnika statičen.

listen-address=::1,127.0.0.1,192.168.56.10

Glede na zgoraj lahko omejite vmesnik, ki ga dnsmasq posluša, z uporabo možnosti vmesnika (dodajte več vrstic za več kot en vmesnik).

interface=eth0

5. Če želite, da se domena (ki jo lahko nastavite, kot je prikazano v nadaljevanju) samodejno doda preprostim imenom v datoteki gostitelja, počistite možnost expand-hosts .

expand-hosts

6. Če želite nastaviti domeno za dnsmasq, kar pomeni, da bodo imeli odjemalci DHCP polno kvalificirana imena domen, dokler se bo nastavljena domena ujemala, in bo za vse odjemalce nastavila možnost »domena« DHCP.

domain=tecmint.lan

7. Nato z uporabo možnosti strežnika (v obliki strežnik = dns_server_ip) definirajte tudi gornji strežnik DNS za nelokalne domene, kot je prikazano.

# Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Nato lahko svojo lokalno domeno prisilite na naslov (e) IP z uporabo možnosti naslova, kot je prikazano.

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

9. Shranite datoteko in preverite skladnjo konfiguracijske datoteke za napake, kot je prikazano.

# dnsmasq --test

10. V tem koraku morate narediti vse poizvedbe za pošiljanje na dnsmasq, tako da dodate naslove localhost kot edine strežnike imen v datoteki /etc/resolv.conf.

# vi /etc/resolv.conf

11. Datoteko /etc/resolv.conf vzdržuje lokalni demon, zlasti ukaz chattr, kot je prikazano.

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

12. Dnsmasq bere vse gostitelje in imena DNS iz datoteke/etc/hosts, zato dodajte svoje IP naslove in pare imen gostiteljev DNS, kot 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

Pomembno: Lokalna imena DNS lahko definirate tudi z uvozom imen iz podsistema DHCP ali s konfiguracijo širokega nabora uporabnih vrst zapisov.

13. Če želite uporabiti zgornje spremembe, znova zaženite storitev dnsmasq, kot je prikazano.

# systemctl restart dnsmasq

14. Če imate zagnano storitev požarnega zidu, morate v konfiguraciji požarnega zidu odpreti storitve DNS in DHCP, da omogočite prenose zahtev gostiteljev v vašem LAN-u strežniku dnsmasq.

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

15. Če želite preizkusiti, ali lokalni strežnik DNS ali posredovanje deluje dobro, morate za izvajanje poizvedb DNS uporabiti orodja, kot je nslookup. Ta orodja so na voljo v paketu bind-utils, ki morda ni prednameščen na CentOS/RHEL 8, vendar ga lahko namestite, kot je prikazano.

# yum install bind-utils

16. Po namestitvi lahko v lokalni domeni zaženete preprosto poizvedbo, kot je prikazano.

# dig tecmint.lan
OR
# nslookup tecmint.lan

17. Lahko tudi poskusite poizvedeti FQDN enega od strežnikov.

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

18. Če želite preizkusiti povratno iskanje IP, zaženite podoben ukaz.

# dig -x 192.168.56.25
OR
# nslookup 192.168.56.25

Omogočite strežnik DHCP z uporabo dnsmasq

19. Strežnik DHCP lahko omogočite tako, da razkomentirate možnost dhcp-range in navedete obseg naslovov, ki so na voljo za zakup, in po potrebi čas zakupa, npr. (Ponovite za več kot eno omrežje).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. Naslednja možnost določa, kje bo strežnik DHCP hranil svojo bazo podatkov o najemu, kar vam pomaga enostavno preveriti naslove IP, ki jih je dodelil.

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

21. Če želite strežnik DHCP preklopiti v veljavni način, počistite možnost.

dhcp-authoritative

22. Shranite datoteko in znova zaženite storitev dnsmasq, da uporabite nedavne spremembe.

# systemctl restart dnsmasq

S tem smo prišli do konca tega vodnika. Če nas želite kontaktirati glede kakršnih koli vprašanj ali misli, ki jih želite deliti glede tega vodnika, uporabite spodnji obrazec za povratne informacije.