Sådan opsættes en DNS / DHCP-server ved hjælp af dnsmasq på CentOS / RHEL 8/7


En DHCP-server (Dynamic Host Configuration Protocol) tildeler dynamisk IP-adresser og andre netværkskonfigurationsparametre til hver enhed på et netværk. En DNS-videresender på et LAN videresender DNS-forespørgsler om ikke-lokale domænenavne til opstrøms DNS-servere (uden for dette netværk). En DNS-caching-server besvarer rekursive anmodninger fra klienter, så DNS-forespørgslen kan løses hurtigere og forbedrer dermed DNS-opslagshastigheder til tidligere besøgte websteder.

dnsmasq er et letvægts, let at konfigurere DNS-videresender, DHCP-serversoftware og router-reklameundersystem til små netværk. Dnsmasq understøtter Linux, * BSD, Mac OS X såvel som Android.

Det har et DNS-undersystem, der leverer en lokal DNS-server til netværket med videresendelse af alle forespørgselstyper til opstrøms rekursive DNS-servere og caching af almindelige posttyper. DHCP-undersystemet understøtter DHCPv4, DHCPv6, BOOTP, PXE og en TFTP-server. Og routerens annoncesubsystem understøtter grundlæggende autokonfiguration til IPv6-værter.

I denne artikel vil vi gennemgå instruktionerne om, hvordan du installerer og opsætter DNS/DHCP-server ved hjælp af dnsmasq på CentOS/RHEL 8/7 distributioner.

Installation af dnsmasq i CentOS og RHEL Linux

1. Dnsmasq-pakken er tilgængelig i standardopbevaringsstederne og kan let installeres ved hjælp af YUM-pakkehåndteringen som vist.

# yum install dnsmasq

2. Når installationen af dnsmasq-pakken er afsluttet, skal du starte dnsmasq-tjenesten indtil videre og aktivere den til automatisk at starte ved systemstart. Desuden skal du kontrollere dens status for at sikre, at den er i gang med følgende systemctl-kommandoer.

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

Konfiguration af dnsmasq-server i CentOS og RHEL Linux

3. Dnsmasq-serveren kan konfigureres via /etc/dnsmasq.conf-filen (som indeholder godt kommenterede og forklarede muligheder), og brugerdefinerede konfigurationsfiler kan også tilføjes i /etc/dnsmasq.d-biblioteket.

DNS er som standard aktiveret, så sørg for at oprette en sikkerhedskopi af /etc/dnsmasq.conf-filen, før du foretager ændringer.

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

4. Åbn nu filen /etc/dnsmasq.conf ved hjælp af din foretrukne tekstbaserede editor, og foretag følgende foreslåede konfigurationsindstillinger.

# vi /etc/dnsmasq.conf 

Indstillingen lytte-adresse bruges til at indstille IP-adressen, hvor dnsmasq vil lytte. For at bruge din CentOS/RHEL-server til at lytte efter DHCP og DNS-anmodninger på LAN skal du indstille indstillingen listen-address til dens LAN IP-adresser (husk at medtage 127.0.0.1) som vist. Bemærk, at serverens IP skal være statisk.

listen-address=::1,127.0.0.1,192.168.56.10

Relateret til ovenstående kan du begrænse grænsefladen dnsmasq lytter til ved hjælp af grænsefladeindstillingen (tilføj flere linjer til mere end en grænseflade).

interface=eth0

5. Hvis du vil have et domæne (som du kan indstille som vist næste) automatisk tilføjet til enkle navne i en værtsfil, skal du fjerne kommentar til indstillingen expand-hosts .

expand-hosts

6. At indstille domænet for dnsmasq, hvilket betyder, at DHCP-klienter vil have fuldt kvalificerede domænenavne, så længe det indstillede domæne matches, og indstiller "domæne" DHCP-indstilling for alle klienter.

domain=tecmint.lan

7. Derefter defineres også upstream DNS-serveren til ikke-lokale domæner ved hjælp af serverindstillingen (i formserveren = dns_server_ip) som vist.

# Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Derefter kan du tvinge dit lokale domæne til en eller flere IP-adresser ved hjælp af adresseindstillingen som vist.

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

9. Gem filen, og kontroller syntaxen for konfigurationsfilen for fejl som vist.

# dnsmasq --test

10. I dette trin skal du foretage alle forespørgsler, der skal sendes til dnsmasq ved at tilføje localhost-adresserne som de eneste navneservere i /etc/resolv.conf-filen.

# vi /etc/resolv.conf

11. Filen /etc/resolv.conf vedligeholdes af en lokal dæmon, især NetworkManager, og derfor overskrives alle ændringer, der er foretaget af brugeren. For at forhindre dette skal du skrivebeskytte det ved at indstille den uforanderlige filattribut (deaktivere skriveadgang til filen) ved hjælp af kommandoen chattr som vist.

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

12. Dnsmasq læser alle DNS-værter og navne fra/etc/hosts-filen, så tilføj dine DNS-værter IP-adresser og navnepar 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

Vigtigt: Lokale DNS-navne kan også defineres ved at importere navne fra DHCP-undersystemet eller ved at konfigurere en lang række nyttige posttyper.

13. For at anvende ovenstående ændringer skal du genstarte dnsmasq-tjenesten som vist.

# systemctl restart dnsmasq

14. Hvis du har firewalld-tjenesten kørende, skal du åbne DNS- og DHCP-tjenester i firewallkonfigurationen for at tillade anmodninger fra værter på dit LAN at videregive til dnsmasq-serveren.

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

15. For at teste, om den lokale DNS-server eller videresendelse fungerer fint, skal du bruge værktøjer som dig eller nslookup til at udføre DNS-forespørgsler. Disse værktøjer leveres af bind-utils-pakken, som muligvis ikke kommer forudinstalleret på CentOS/RHEL 8, men du kan installere den som vist.

# yum install bind-utils

16. Når du har installeret, kan du køre en simpel forespørgsel på dit lokale domæne som vist.

# dig tecmint.lan
OR
# nslookup tecmint.lan

17. Du kan også prøve at spørge FQDN for en af serverne.

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

18. Kør en lignende kommando for at teste et omvendt IP-opslag.

# dig -x 192.168.56.25
OR
# nslookup 192.168.56.25

Aktivér DHCP-server ved hjælp af dnsmasq

19. Du kan aktivere DHCP-serveren ved at fjerne kommentar til indstillingen dhcp-range og levere rækkevidden af adresser, der er tilgængelige til leje og eventuelt en lejetid f.eks. (Gentag for mere end et netværk).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. Følgende mulighed definerer, hvor DHCP-serveren opbevarer sin leasingdatabase, dette hjælper dig med let at kontrollere IP-adresser, den har tildelt.

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

21. For at gøre DHCP-serveren til autoritativ tilstand skal du fjerne kommentar til indstillingen.

dhcp-authoritative

22. Gem filen, og genstart dnsmasq-tjenesten for at anvende de seneste ændringer.

# systemctl restart dnsmasq

Det bringer os til slutningen af denne vejledning. Brug feedbackformularen nedenfor for at nå os til spørgsmål eller tanker, du vil dele om denne guide.