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.

Dnsmasq
Logo
VývojářSimon Kelley
První vydání2001
Aktuální verze2.90 (13. února 2024)
Operační systémGNU/Linux
BSD
UN*X
Vyvíjeno vC
Typ softwaruserverový software
LicenceGPLv2
GPLv3
Webthekelleys.org.uk/dnsmasq/doc.html
Některá data mohou pocházet z datové položky.

Vlastnosti editovat

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 editovat

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 editovat

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 hodnotu cache-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 editovat

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.5010.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 editovat

  • BusyBox obsahuje udhcpd DHCP server

Reference editovat

V tomto článku byl použit překlad textu z článku Dnsmasq na anglické Wikipedii.