A dnsmasq egy könnyű DNS és DHCP szerver Linux rendszerekhez. Használható DNS, DHCP vagy TFTP szolgáltatásként.
# Telepítés
sudo apt install dnsmasq
# Szolgáltatás állapota
systemctl status dnsmasq
Az alapbeállítások a /etc/dnsmasq.conf fájlban találhatók. A saját konfigurációkat külön mappába érdemes tenni.
# Alap fájl szerkesztése
nano /etc/dnsmasq.conf
# conf-dir engedélyezése
sudo sed -i 's|^#conf-dir=/etc/dnsmasq.d/,.*|conf-dir=/etc/dnsmasq.d/,*.conf|' /etc/dnsmasq.conf
# Saját beállítások helye
/etc/dnsmasq.d/
Megadható, melyik hálózati interfészen vagy IP címen működjön a dnsmasq.
# Példa interfészre
interface=enp0s3
# Példa IP címekre
listen-address=127.0.0.1,192.168.3.10
Egyszerű DNS forwarder konfiguráció.
# dns-forwarder.conf
no-resolv # Ne olvassa be a /etc/resolv.conf fájlt
server=1.1.1.1 # Upstream DNS szerver
server=8.8.8.8
Helyi tartomány konfigurálása és gyorsítótár beállítása.
# basic-dns.conf
domain-needed
bogus-priv
no-resolv
server=1.1.1.1
server=8.8.8.8
cache-size=1000
domain=helyi.lan
expand-hosts
addn-hosts=/etc/dnsmasq.hosts
Ismert gépek felvétele a /etc/dnsmasq.hosts fájlba.
nano /etc/dnsmasq.hosts
192.168.3.12 nas
192.168.3.15 printer
# /etc/hosts példa
127.0.0.1 localhost
127.0.1.1 dnsserver
# resolv.conf példa
nameserver 192.168.3.10
Alap DHCP tartomány és opciók.
# basic-dhcp.conf
dhcp-range=192.168.3.50,192.168.3.200,12h
dhcp-option=3,192.168.3.1
dhcp-option=6,192.168.3.10
dhcp-authoritative
Fix IP címek hozzárendelése MAC cím alapján.
dhcp-host=AA:BB:CC:DD:EE:FF,192.168.3.20,nas,24h
dhcp-host=11:22:33:44:55:66,192.168.3.30,printer,24h
A dnsmasq TFTP szerverként is használható. A beállításokat külön konfigurációs fájlban kell megadni.
# Példa konfigurációhoz
tftp-root=/srv/tftp
enable-tftp
A dnsmasq használatához érdemes letiltani a systemd-resolved szolgáltatást, majd újraindítani a dnsmasq-t.
# systemd-resolved leállítása
systemctl stop systemd-resolved
systemctl disable systemd-resolved
# dnsmasq újraindítása
sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq
Engedélyezni kell a DNS és DHCP forgalmat a tűzfalon.
# DNS
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
# DHCP
sudo ufw allow 67/udp
sudo ufw allow 68/udp
A kibérelt DHCP címek listája a leases fájlban található.
cat /var/lib/misc/dnsmasq.leases