Hvordan sette opp en DNS/DHCP-server ved hjelp av dnsmasq på CentOS/RHEL 8/7


En Dynamic Host Configuration Protocol (DHCP)-server tildeler dynamisk IP-adresser og andre nettverkskonfigurasjonsparametere til hver enhet i et nettverk. En DNS-videresending på et LAN videresender DNS-spørringer for ikke-lokale domenenavn til oppstrøms DNS-servere (utenfor dette nettverket). En DNS-bufferserver svarer på rekursive forespørsler fra klienter slik at DNS-spørsmålet kan løses raskere, og dermed forbedre DNS-oppslagshastigheter til tidligere besøkte nettsteder.

dnsmasq er et lett, lett å konfigurere DNS-videresending, DHCP-serverprogramvare og ruterannonseringsundersystem for små nettverk. Dnsmasq støtter Linux, *BSD, Mac OS X samt Android.

Den har et DNS-undersystem som gir en lokal DNS-server for nettverket, med videresending av alle spørringstyper til oppstrøms rekursive DNS-servere og hurtigbufring av vanlige posttyper. DHCP-undersystemet støtter DHCPv4, DHCPv6, BOOTP, PXE og en TFTP-server. Og ruterannonseringsundersystemet støtter grunnleggende autokonfigurasjon for IPv6-verter.

I denne artikkelen vil vi lede deg gjennom instruksjonene for hvordan du installerer og konfigurerer DNS/DHCP-server ved å bruke dnsmasqCentOS/RHEL 8/7 distribusjoner.

Installerer dnsmasq i CentOS og RHEL Linux

1. Pakken dnsmasq er tilgjengelig i standardlagrene og kan enkelt installeres ved å bruke YUM-pakkebehandlingen som vist.

yum install dnsmasq

2. Når dnsmasq-pakkeinstallasjonen er fullført, må du starte dnsmasq-tjenesten for nå og aktivere den til å starte automatisk ved systemoppstart. Kontroller dessuten statusen for å sikre at den er oppe og kjører ved å bruke følgende systemctl-kommandoer.

systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq

Konfigurere dnsmasq Server i CentOS og RHEL Linux

3. dnsmasq-serveren kan konfigureres via filen /etc/dnsmasq.conf (som inneholder godt kommenterte og forklarte alternativer), og brukeren -definerte konfigurasjonsfiler kan også legges til i katalogen /etc/dnsmasq.d.

DNS er aktivert som standard, så før du gjør noen endringer, sørg for å lage en sikkerhetskopi av filen /etc/dnsmasq.conf.

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

4. Åpne nå filen /etc/dnsmasq.conf ved å bruke din favoritt tekstbaserte editor og foreta følgende foreslåtte konfigurasjonsinnstillinger.

vi /etc/dnsmasq.conf 

Alternativet lytteadresse brukes til å angi IP-adressen, der dnsmasq vil lytte videre. For å bruke CentOS/RHEL-serveren til å lytte etter DHCP- og DNS-forespørsler på LAN, angi lytte-adresse-alternativet til LAN-IP-adressene (husk å inkludere 127.0.0.1) som vist. Merk at serverens IP må være statisk.

listen-address=::1,127.0.0.1,192.168.56.10

Relatert til ovenstående kan du begrense grensesnittet dnsmasq lytter til ved å bruke grensesnittalternativet (legg til flere linjer for mer enn ett grensesnitt).

interface=eth0

5. Hvis du vil ha et domene (som du kan angi som vist neste) automatisk lagt til enkle navn i en vertsfil, fjerner du kommentaren expand- hosts-alternativet.

expand-hosts

6. For å angi domenet for dnsmasq, som betyr at DHCP-klienter vil ha fullt kvalifiserte domenenavn så lenge det angitte domenet matches, og angir «domene» ” DHCP-alternativ for alle klienter.

domain=tecmint.lan

7. Deretter definerer du også oppstrøms DNS-serveren for ikke-lokale domener ved å bruke server-alternativet (i formen server=dns_server_ip) som vist .

Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Deretter kan du tvinge ditt lokale domene til en IP-adresse(r) ved å bruke adresse-alternativet som vist.

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

9. Lagre filen og sjekk konfigurasjonsfilens syntaks for feil som vist.

dnsmasq --test

Konfigurerer dnsmasq med /etc/resolv.conf fil

10. I dette trinnet må du sende alle forespørsler til dnsmasq ved å legge til localhost-adressene som de eneste navneserverne i filen /etc/resolv.conf.

vi /etc/resolv.conf

11. /etc/resolv.conf-filen vedlikeholdes av en lokal demon, spesielt NetworkManager, derfor vil alle brukerlagde endringer bli overskrevet. For å forhindre dette, skrivebeskytt den ved å angi det uforanderlige filattributtet (deaktivere skrivetilgang til filen) ved å bruke chattr-kommandoen som vist.

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

Definere DNS-verter og navn

12. Dnsmasq leser alle DNS-vertene og navnene fra /etc/hosts-filen, så legg til IP-adresser og navnepar for DNS-vertene dine som vist.

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

Viktig: Lokale DNS-navn kan også defineres ved å importere navn fra DHCP-undersystemet, eller ved å konfigurere et bredt spekter av nyttige posttyper.

13. For å bruke endringene ovenfor, start dnsmasq-tjenesten på nytt som vist.

systemctl restart dnsmasq

14. Hvis du kjører brannmur-tjenesten, må du åpne DNS- og DHCP-tjenester i brannmurkonfigurasjonen , for å tillate at forespørsler fra verter på ditt LAN kan sendes til dnsmasq-serveren.

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

Tester lokal DNS

15. For å teste om den lokale DNS-serveren eller videresendingen fungerer bra, må du bruke verktøy som dig eller nslookup for å utføre DNS-spørringer. Disse verktøyene leveres av bind-utils-pakken som kanskje ikke er forhåndsinstallert på CentOS/RHEL 8, men du kan installere den som vist.

yum install bind-utils

16. Når du har installert, kan du kjøre en enkel spørring på ditt lokale domene som vist.

dig tecmint.lan
OR
nslookup tecmint.lan

17. Du kan også prøve å spørre FQDN til en av serverne.

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

18. For å teste et omvendt IP-oppslag, kjør en lignende kommando.

dig -x 192.168.56.25
OR
nslookup 192.168.56.25

Aktiver DHCP-server ved å bruke dnsmasq

19. Du kan aktivere DHCP-serveren ved å fjerne kommentaren til dhcp-range-alternativet og oppgi adresseområdet som er tilgjengelig for leasing og eventuelt en leietid for eksempel (gjenta for mer enn ett nettverk).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. Følgende alternativ definerer hvor DHCP-serveren skal beholde sin leasedatabase, dette vil hjelpe deg å enkelt sjekke IP-adresser den har tildelt.

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

21. For å gjøre DHCP-serveren til autoritativ modus, fjern kommentaren.

dhcp-authoritative

22. Lagre filen og start dnsmasq-tjenesten på nytt for å bruke de siste endringene.

systemctl restart dnsmasq

Det bringer oss til slutten av denne veiledningen. For å nå oss for spørsmål eller tanker du vil dele om denne veiledningen, bruk tilbakemeldingsskjemaet nedenfor.