Dnsmasq
Dnsmasq je v informatice malý a snadno konfigurovatelný DNS a DHCP server. Je určen hlavně pro malé firemní a domácí sítě používající NAT. Dnsmasq podporuje jak statické tak dynamické DHCP a pro bootování bezdiskových stanic po počítačové síti je podporován i starší protokol BOOTP. Podporovány jsou platformy Linux (glibc nebo uClibc), BSD a macOS.

Vlastnosti 
Dnsmasq má následující vlastnosti:
 Snadná konfigurace DNS serveru, nezávisle na údajích poskytovatele
 Dnsmasq dokáže vyfiltrovat „falešné NXDOMAIN“ záznamy. Tím preventivně ochraňuje před potenciálními nežádoucími útoky
 Dnsmasq podporuje MX záznamy a dokáže obnovit MX záznamy pro jakoukoli nebo všechny lokální stanice.
 Dnsmasq také podporuje NAPTR záznamy, které dovolují užití regulárních výrazů založených na přepisování doménových jmen, které pak mohou být použity jako identifikátory URI.
 Uživatelé mohou nakonfigurovat Dnsmasq tak, že některé dotazy pro konkrétní domény posílá nadřazeným serverům, které je spravují, což umožňuje integraci do privátních DNS systémů.
 Skriptování v Lua
 Podpora DHCPv6

Konfigurace 
Hlavní konfigurační soubor je /etc/dnsmasq.conf. Je velice dobře komentovaný a tak není problém dnsmasq podle našich představ nastavit.
První co bychom měli upravit je specifikace rozhraní kde bude dnsmasq naslouchat. Z hlediska bezpečnosti není vhodné aby byl dostupný z internetu.
Ve výchozím nastavení naslouchá na všech rozhraních:

 interface=eth1 
Rozhraní má více specifikací:
 interface=eth2 
 interface=eth3

DNS 
Kešování DNS a forwarding fungují automaticky. Otestovat to můžeme dotazem na nějakou doménu:
 dig www.wikipedia.org @127.0.0.1
Dnsmasq využívá naše resolvery (viz /etc/resolv.conf) a odpovědi kešuje. Integruje také informace z /etc/hosts, tím pádem se nám velice usnadní pojmenování lokálních počítačů – nemusíme tvořit zónový soubor. Například, pokud do /etc/hosts vložíte záznam:
10.0.1.15 kremilek.local
…můžete se po restartu programu dnsmasq rovnou přesvědčit, že od něj dostanete správnou odpověď (tedy, správnou dle /etc/hosts):
 dig @127.0.0.1 lilek.local
 ;; ANSWER SECTION:
 lilek.local.         10800   IN      A       10.0.1.15
Výchozí hodnota pro velikost keše je sto padesát záznamů. Chceme-li kešovat více záznamů, specifikujte příslušnou hodnotucache-size:
 cache-size=500
Vlastní DNS nemusíme vkládat jenom do /etc/hosts, ale také do samotné konfigurace :
 host-record=laptop,laptop.local,10.0.1.60,1234::100
Výše uvedená řádka vytvoří A záznam pro jména laptop a laptop.local s IP adresou 10.0.1.60 a AAAA (IPv6) záznam s IPv6 adresou 1234::100.
Potřebujete-li vložit vlastní MX záznam, můžete použít mx-host:
 mx-host=example.org,postovniserver.local,10
Výše uvedený řádek nastaví MX záznam pro doménu example.org o váze 10 s poštovním serverem postovniserver.local.

Podobným způsobem můžete vytvářet i PTR nebo SRV záznamy. Více viz manuálová stránka a komentáře v konfiguračním souboru. Po úpravě konfigurace je třeba dnsmasq restartovat:
 service dnsmasq restart

DHCP 
Funkci DHCP serveru je ve výchozím stavu vypnutá dnsmasq. Pro funkčnost stačí specifikovat rozsah adres pro DHCP:
 dhcp-range=10.0.1.50,10.0.1.150,12h
Tato řádka nastaví dynamické přidělování adres v rozsahu 10.0.1.50 až 10.0.1.150, přičemž přidělená IP adresa bude „pronajatá“ dvanáct hodin. Podobně jako v případě direktivy interface můžete dhcp-range specifikovat vícekrát, pokaždé pro jiný rozsah:
 dhcp-range=10.0.1.50,10.0.1.150,12h
 dhcp-range=10.0.5.10,10.0.5.50,12h
IP adresy můžete specifikovat i staticky, pro konkrétní MAC síťové karty:
 dhcp-host=11:22:33:44:55:66,10.10.10.10
Tato řádka přidělí MAC adrese 11:22:33:44:55:66 IP adresu 10.10.10.10.

Konkrétní rozsahy můžete přidělovat i konkrétním síťovým rozhraním:
 dhcp-range=eth1,10.0.1.50,10.0.1.150,12h
 dhcp-range=eth2,10.0.5.10,10.0.5.50,12h
Potřebujete-li specifikovat některé další volby jako router apod., můžete použít dhcp-option:
 dhcp-option=option:router,10.10.10.10
 dhcp-option=option:ntp-server,10.10.10.20,10.10.10.30

Výše uvedená řádka sdělí DHCP klientům, že router je na adrese 10.10.10.10 a NTP servery jsou na 10.10.10.20 a 10.10.10.30. Další příklady naleznete v konfiguračním souboru a v manuálu.

Související články 
 BusyBox obsahuje udhcpd DHCP server

Reference 

DNS software
Svobodný software