it:server:dnsmasq

Toto je starší verze dokumentu!


dnsmasq

Dnsmasq je DHCP server a DNS forwarder. O některých problémech a nastavení píšu už tady: Bananapi. Výborný článek na vysvětlení a konfiguraci je: How to Setup a DNS/DHCP Server Using dnsmasq on CentOS/RHEL 8/7.

Dnsmasq konfiguruji v nově vytvořeném souboru: /etc/dnsmasq.d/settings.conf

Když si nějaké zařízení vyžádá nastavení IP adres z DHCP, tak mu dnsmasq přidělí IP adresu zařízení, na kterém běží. Pokud chci přidělit jiný DNS server - třeba jiný, na kterém mi běží Pi Hole, tak je potřeba do konfiguračního souboru přidat:

dhcp-option=6,192.168.1.200

Číslo 6 u parametru dhcp-option označuje typ DHCP option, který se má poslat klientovi. Číslo 6 označuje DHCP option pro DNS server.

DHCP (Dynamic Host Configuration Protocol) poskytuje klientům IP adresy a další síťové konfigurace, jako je brána, maska podsítě a další. DHCP option umožňuje poslat klientům další informace potřebné k nastavení síťového připojení.

Existuje mnoho různých typů DHCP option, které se mohou použít, například:

  1: Subnet Mask
  3: Router (Default Gateway)
  6: DNS Server
  15: Domain Name
  42: NTP Server
  43: Vendor Specific Information

Číslo DHCP optionu určuje, jaký typ informace se má klientovi poslat.

Takže tím nastavím, že zařízení, které se připojí do sítě, bude používat DNS server 192.168.1.200.

Původně jsem si to pletl s nastavením:

server=1.1.1.1 
server=8.8.8.8 

Toto nastavení ale říká, že dnsmasq sám bude používat tyto DNS servery na dotazování - hledání názvů, které nezná.

Když dnsmasq dostane požadavek na jméno, které není v jeho vlastní cache, bude se obrátit na zadaný DNS server (1.1.1.1 v tomto případě) pro odpověď. Pokud máte nastaveno více než jedno DNS server, dnsmasq se obrátí na každý z nich po jednom, pokud předchozí nebyl schopen odpovědět. Další řádek je sekundární DNS server.

Velmi užitečná záležitost ve vlastí síti. Dejme tomu, že chci, aby byla doména „garmin.cn“ přesměrována na můj vlastní server v lokální síti - tedy 192.168.1.20. Pak tedy přidám řádek:

address=/garmin.cn/192.168.1.20

Je to velmi užitečné ve vnitřní síti pro běžné uživatele, že si mohou pro adresování počítačů pamatovat tento název a nemusí používat IP adresy konkrétních strojů. Nebo to může sloužit k přesměrování existující domény někam jinam. Další alternativou je využít PI Hole o kterém jsem psal v příspěvku: Hodinky Garmin a volání API.

dnsmasq --test
systemctl restart dnsmasq

Když jsem v souboru namapoval IP adresu na konkrétní MAC adresu, tak nepomohl ani restart dnsmasq a nové připojení zařízení s MAC adresou k síti. Pořád mu byla přidělována stará IP adresa.

Pak jsem objevil, že dnsmasq má seznam už přidělených IP adres - řekněme textovou databázi a přiděluje podle ní a nikoli podle změn v konfiguračním souboru. Takže jsem jenom promazal databázi v souboru /var/lib/misc/dnsmasq.leases a změny se mohly projevit.

  • it/server/dnsmasq.1673958719.txt.gz
  • Poslední úprava: 2023/01/17 12:31
  • autor: Petr Nosek