Vyhledávání na webu

Jak nastavit server DNS/DHCP pomocí dnsmasq na CentOS/RHEL 8/7


Server Dynamic Host Configuration Protocol (DHCP) dynamicky přiděluje adresy IP a další parametry konfigurace sítě každému zařízení v síti. Server DNS pro předávání v síti LAN předává dotazy DNS na názvy jiných než místních domén na servery DNS proti proudu (mimo tuto síť). Mezipaměťový server DNS odpovídá na rekurzivní požadavky od klientů, takže dotaz DNS lze vyřešit rychleji, čímž se zrychlí vyhledávání DNS na dříve navštívených stránkách.

dnsmasq je lehký, snadno konfigurovatelný DNS forwarder, software serveru DHCP a inzertní subsystém směrovače pro malé sítě. Dnsmasq podporuje Linux, *BSD, Mac OS X a také Android.

Obsahuje subsystém DNS, který poskytuje místní server DNS pro síť s předáváním všech typů dotazů na upstream rekurzivní servery DNS a ukládáním běžných typů záznamů do mezipaměti. Subsystém DHCP podporuje DHCPv4, DHCPv6, BOOTP, PXE a server TFTP. A reklamní subsystém směrovače podporuje základní automatickou konfiguraci pro hostitele IPv6.

V tomto článku vás provedeme pokyny, jak nainstalovat a nastavit DNS/DHCP server pomocí dnsmasq na CentOS/RHEL 8/7 distribuce.

Instalace dnsmasq v CentOS a RHEL Linux

1. Balíček dnsmasq je dostupný ve výchozích úložištích a lze jej snadno nainstalovat pomocí správce balíčků YUM, jak je znázorněno na obrázku.

yum install dnsmasq

2. Jakmile je instalace balíčku dnsmasq dokončena, musíte prozatím spustit službu dnsmasq a povolit, aby se automaticky spouštěla při spouštění systému. Kromě toho zkontrolujte jeho stav a ujistěte se, že je v provozu pomocí následujících příkazů systemctl.

systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq

Konfigurace dnsmasq serveru v CentOS a RHEL Linux

3. Server dnsmasq lze konfigurovat pomocí souboru /etc/dnsmasq.conf (který obsahuje dobře komentované a vysvětlené možnosti) a uživatele -definované konfigurační soubory lze také přidat do adresáře /etc/dnsmasq.d.

DNS je ve výchozím nastavení povoleno, takže před provedením jakýchkoli změn se ujistěte, že jste vytvořili zálohu souboru /etc/dnsmasq.conf.

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

4. Nyní otevřete soubor /etc/dnsmasq.conf pomocí svého oblíbeného textového editoru a proveďte následující navrhovaná nastavení konfigurace.

vi /etc/dnsmasq.conf 

Možnost listen-address se používá k nastavení IP adresy, na které bude dnsmasq naslouchat. Chcete-li použít server CentOS/RHEL k naslouchání požadavkům DHCP a DNS v LAN, nastavte listen-address na jeho LAN IP adresy (nezapomeňte zahrnout 127.0.0.1), jak je znázorněno. Všimněte si, že IP serveru musí být statická.

listen-address=::1,127.0.0.1,192.168.56.10

V souvislosti s výše uvedeným můžete omezit naslouchání rozhraní dnsmasq pomocí volby rozhraní (přidat více řádků pro více než jedno rozhraní).

interface=eth0

5. Pokud chcete, aby se doména (kterou můžete nastavit, jak je uvedeno dále) automaticky přidávala k jednoduchým názvům v souboru hostitelů, odkomentujte expand- hosts.

expand-hosts

6. Chcete-li nastavit doménu pro dnsmasq, což znamená, že klienti DHCP budou mít plně kvalifikované názvy domén, pokud je nastavená doména shodná, a nastaví „doménu ” možnost DHCP pro všechny klienty.

domain=tecmint.lan

7. Dále také definujte upstream DNS server pro nelokální domény pomocí možnosti server (ve tvaru server=dns_server_ip), jak je znázorněno .

Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Poté můžete své místní doméně vynutit IP adresu (adresy) pomocí možnosti adresa, jak je uvedeno na obrázku.

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

9. Uložte soubor a zkontrolujte syntaxi konfiguračního souboru, zda neobsahuje chyby, jak je uvedeno na obrázku.

dnsmasq --test

Konfigurace dnsmasq pomocí souboru /etc/resolv.conf

10. V tomto kroku musíte provést odeslání všech dotazů na dnsmasq přidáním adres localhost jako jediných jmenných serverů v souboru /etc/resolv.conf.

vi /etc/resolv.conf

11. Soubor /etc/resolv.conf je spravován místním démonem, zejména NetworkManagerem, takže veškeré změny provedené uživatelem budou přepsány. Chcete-li tomu zabránit, chraňte jej proti zápisu nastavením atributu neměnného souboru (zakázání přístupu k zápisu do souboru) pomocí příkazu chattr, jak je znázorněno.

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

Definování hostitelů a názvů DNS

12. Dnsmasq čte všechny hostitele DNS a názvy ze souboru /etc/hosts, takže přidejte IP adresy a páry jmen hostitelů DNS jak je znázorněno.

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

Důležité: Místní názvy DNS lze také definovat importem jmen ze subsystému DHCP nebo konfigurací široké škály užitečných typů záznamů.

13. Chcete-li použít výše uvedené změny, restartujte službu dnsmasq podle obrázku.

systemctl restart dnsmasq

14. Pokud máte spuštěnou službu firewalld, musíte v konfiguraci brány firewall otevřít služby DNS a DHCP , abyste umožnili předávání požadavků od hostitelů ve vaší LAN serveru dnsmasq.

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

Testování lokálního DNS

15. Chcete-li otestovat, zda místní server DNS nebo předávání funguje správně, musíte k provádění dotazů DNS použít nástroje jako dig nebo nslookup. Tyto nástroje poskytuje balíček bind-utils, který nemusí být v systému CentOS/RHEL 8 předinstalován, ale můžete jej nainstalovat podle obrázku.

yum install bind-utils

16. Po instalaci můžete spustit jednoduchý dotaz na místní doménu, jak je znázorněno.

dig tecmint.lan
OR
nslookup tecmint.lan

17. Můžete také zkusit dotaz na FQDN jednoho ze serverů.

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

18. Chcete-li otestovat zpětné vyhledávání IP adresy, spusťte podobný příkaz.

dig -x 192.168.56.25
OR
nslookup 192.168.56.25

Povolit server DHCP pomocí dnsmasq

19. Server DHCP můžete povolit zrušením komentáře u možnosti dhcp-range a zadáním rozsahu adres dostupných k zapůjčení a volitelně i doby zapůjčení např. (opakujte pro více než jednu síť).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. Následující možnost definuje, kde bude DHCP server uchovávat svou databázi zapůjčení, což vám pomůže snadno zkontrolovat IP adresy, které přidělil.

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

21. Chcete-li, aby server DHCP přešel do autoritativního režimu, zrušte označení možnosti.

dhcp-authoritative

22. Uložte soubor a restartujte službu dnsmasq, abyste použili poslední změny.

systemctl restart dnsmasq

Tím se dostáváme na konec tohoto průvodce. Chcete-li se na nás obrátit s jakýmikoli dotazy nebo myšlenkami, které byste chtěli sdělit ohledně tohoto průvodce, použijte níže uvedený formulář pro zpětnou vazbu.