Een DNS/DHCP-server instellen met dnsmasq op CentOS/RHEL 8/7
Een Dynamic Host Configuration Protocol (DHCP) server wijst dynamisch IP-adressen en andere netwerkconfiguratieparameters toe aan elk apparaat in een netwerk. Een DNS-forwarder op een LAN stuurt DNS-query's voor niet-lokale domeinnamen door naar upstream DNS-servers (buiten dat netwerk). Een DNS-cachingserver beantwoordt recursieve verzoeken van clients, zodat de DNS-query sneller kan worden opgelost, waardoor de DNS-opzoeksnelheden naar eerder bezochte sites worden verbeterd.
dnsmasq is een lichtgewicht, eenvoudig te configureren DNS-forwarder, DHCP-serversoftware en routeradvertentie-subsysteem voor kleine netwerken. Dnsmasq ondersteunt Linux, *BSD, Mac OS X en Android.
Het beschikt over een DNS-subsysteem dat een lokale DNS-server voor het netwerk levert, met het doorsturen van alle querytypen naar upstream recursieve DNS-servers en het cachen van algemene recordtypen. Het DHCP-subsysteem ondersteunt DHCPv4, DHCPv6, BOOTP, PXE en een TFTP-server. En het routeradvertentiesubsysteem ondersteunt basisautoconfiguratie voor IPv6-hosts.
In dit artikel leiden we u door de instructies voor het installeren en instellen van de DNS/DHCP-server met behulp van dnsmasq op CentOS/RHEL 8/7 > distributies.
DNSmasq installeren in CentOS en RHEL Linux
1. Het dnsmasq pakket is beschikbaar in de standaard repositories en kan eenvoudig worden geïnstalleerd met behulp van de YUM pakketbeheerder, zoals weergegeven.
yum install dnsmasq
2. Zodra de installatie van het dnsmasq-pakket is voltooid, moet u voorlopig de dnsmasq-service starten en deze inschakelen om automatisch te starten bij het opstarten van het systeem. Controleer bovendien de status ervan om er zeker van te zijn dat deze actief is met behulp van de volgende systemctl-opdrachten.
systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq
dnsmasq-server configureren in CentOS en RHEL Linux
3. De dnsmasq-server kan worden geconfigureerd via het /etc/dnsmasq.conf-bestand (dat goed becommentarieerde en uitgelegde opties bevat), en de gebruiker -gedefinieerde configuratiebestanden kunnen ook worden toegevoegd in de map /etc/dnsmasq.d.
DNS is standaard ingeschakeld, dus voordat u wijzigingen aanbrengt, moet u een back-up maken van het bestand /etc/dnsmasq.conf.
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
4. Open nu het bestand /etc/dnsmasq.conf met uw favoriete tekstgebaseerde editor en maak de volgende voorgestelde configuratie-instellingen.
vi /etc/dnsmasq.conf
De optie listen-address
wordt gebruikt om het IP-adres in te stellen waar dnsmasq naar zal luisteren. Als u uw CentOS/RHEL-server wilt gebruiken om te luisteren naar DHCP- en DNS-verzoeken op het LAN, stelt u de listen-address
optie toe aan de LAN IP-adressen (vergeet niet 127.0.0.1 op te nemen), zoals weergegeven. Houd er rekening mee dat het server-IP statisch moet zijn.
listen-address=::1,127.0.0.1,192.168.56.10
Gerelateerd aan het bovenstaande kunt u de interface waarop dnsmasq luistert beperken met behulp van de interface-optie (voeg meer regels toe voor meer dan één interface).
interface=eth0
5. Als je wilt dat een domein (dat je kunt instellen zoals hieronder weergegeven) automatisch wordt toegevoegd aan eenvoudige namen in een hosts-bestand, haal dan de commentaartekens uit de expand- hosts
optie.
expand-hosts
6. Om het domein voor dnsmasq in te stellen, wat betekent dat DHCP-clients volledig gekwalificeerde domeinnamen zullen hebben zolang het ingestelde domein overeenkomt, en stelt het “domein in ” DHCP-optie voor alle clients.
domain=tecmint.lan
7. Definieer vervolgens ook de upstream DNS-server voor niet-lokale domeinen met behulp van de server optie (in de vorm server=dns_server_ip), zoals weergegeven .
Google's nameservers
server=8.8.8.8
server=8.8.4.4
8. Vervolgens kunt u uw lokale domein dwingen een IP-adres(sen) toe te wijzen met behulp van de optie adres, zoals weergegeven.
address=/tecmint.lan/127.0.0.1
address=/tecmint.lan/192.168.56.10
9. Sla het bestand op en controleer de syntaxis van het configuratiebestand op fouten, zoals weergegeven.
dnsmasq --test
DNSmasq configureren met het bestand /etc/resolv.conf
10. In deze stap moet u ervoor zorgen dat alle query's naar dnsmasq worden verzonden door de localhost-adressen toe te voegen als de enige naamservers in het bestand /etc/resolv.conf.
vi /etc/resolv.conf
11. Het /etc/resolv.conf bestand wordt onderhouden door een lokale daemon, vooral de NetworkManager, daarom zullen alle door de gebruiker gemaakte wijzigingen worden overschreven. Om dit te voorkomen, moet u het bestand tegen schrijven beveiligen door het onveranderlijke bestandskenmerk in te stellen (schrijftoegang tot het bestand uitschakelen) met behulp van de chattr-opdracht, zoals weergegeven.
chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf
DNS-hosts en -namen definiëren
12. De Dnsmasq leest alle DNS-hosts en namen uit het bestand /etc/hosts, dus voeg de IP-adressen en naamparen van uw DNS-hosts toe zoals getoond.
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
Belangrijk: Lokale DNS-namen kunnen ook worden gedefinieerd door namen uit het DHCP-subsysteem te importeren, of door de configuratie van een groot aantal nuttige recordtypen.
13. Om de bovenstaande wijzigingen toe te passen, start u de dnsmasq-service opnieuw op, zoals weergegeven.
systemctl restart dnsmasq
14. Als u de firewalld-service actief heeft, moet u DNS- en DHCP-services openen in de firewallconfiguratie , om verzoeken van hosts op uw LAN door te laten naar de dnsmasq-server.
firewall-cmd --add-service=dns --permanent
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload
Lokale DNS testen
15. Om te testen of de lokale DNS-server of het doorsturen goed werkt, moet u tools zoals dig of nslookup gebruiken voor het uitvoeren van DNS-query's. Deze tools worden geleverd door het pakket bind-utils dat mogelijk niet vooraf is geïnstalleerd op CentOS/RHEL 8, maar u kunt het installeren zoals weergegeven.
yum install bind-utils
16. Nadat u de installatie heeft uitgevoerd, kunt u een eenvoudige zoekopdracht uitvoeren op uw lokale domein, zoals weergegeven.
dig tecmint.lan
OR
nslookup tecmint.lan
17. U kunt ook proberen de FQDN van een van de servers op te vragen.
dig webserver1.tecmint.lan
OR
nslookup webserver1.tecmint.lan
18. Voer een soortgelijke opdracht uit om een reverse IP-lookup te testen.
dig -x 192.168.56.25
OR
nslookup 192.168.56.25
DHCP-server inschakelen met dnsmasq
19. U kunt de DHCP-server inschakelen door de optie dhcp-range
uit het commentaar te verwijderen en het bereik van de adressen op te geven die beschikbaar zijn voor lease en optioneel een leasetijd bijv. (herhalen voor meer dan één netwerk).
dhcp-range=192.168.0.50,192.168.0.150,12h
20. De volgende optie definieert waar de DHCP-server zijn leasedatabase bewaart. Dit helpt u om eenvoudig de IP-adressen te controleren die de server heeft toegewezen.
dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
21. Om de DHCP-server in de gezaghebbende modus te zetten, verwijdert u het commentaar bij de optie.
dhcp-authoritative
22. Sla het bestand op en start de dnsmasq-service opnieuw om de recente wijzigingen toe te passen.
systemctl restart dnsmasq
Dat brengt ons aan het einde van deze gids. Als u vragen of opmerkingen over deze handleiding met ons wilt delen, kunt u het onderstaande feedbackformulier gebruiken.