Instalacja
sudo apt-get install dnsmasq
Konfiguracja
Wszystkie ustawienia znajdują się w pliku /etc/dnsmasq.conf, chociaż moglibyśmy umieścić je w osobnych plikach w katalogu /etc/dnsmasq.d. Konfiguracja funkcjonalności serwera DHCP i DNS (cache) dla sieci lokalnej na interfejsie 192.168.19.1 (zobacz post nt. konfiguracji Ubuntu Server 12.04 LTS) przedstawia się następująco:domain-needed bogus-priv filterwin2k # nie korzystaj z pliku /etc/resolv.conf no-resolv # serwery DNS, np. naszego ISP server=208.67.222.222 server=208.67.220.220 # nasza domena local=/mojadomena.org/ # nasłuchuj na interfejsie interface=eth1 expand-hosts domain=mojadomena.org # zakres adresów dhcp-range=192.168.19.100,192.168.19.200,255.255.255.0,12h # przykład rezerwacji adresów stałych dhcp-host=00:1E:33:49:0E:C2,hostwlanie,192.168.19.14,1h # dhcp-option=3,192.168.19.1 # adres routera # Opcje dla Samby w roli PDC dhcp-option=19,0 # opcja ip-forwarding off dhcp-option=44,0.0.0.0 # WINS server(s) dhcp-option=45,0.0.0.0 # netbios datagram distribution server dhcp-option=46,8 # netbios node type (hybrid) dhcp-option=vendor:MSFT,2,1i # zwalnianie przydzielonego adresu DHCP # serwer autorytatywny dhcp-authoritative cache-size=200W opcjach server podajemy adresy naszych serwerów DNS, w przykładzie powyżej mamy serwery Open DNS, pozostałe opcje są bardzo dobrze opisane w oryginalnym pliku konfiguracyjnym (warto zrobić jego kopię).
Aby wszystko działało, trzeba jeszcze pamiętać o dwóch rzeczach. W pliku /etc/dhcp/dhclient.conf opcja
prepend domain-name-servers 127.0.0.1;
powinna być odkomentowana. Natomiast w pliku /etc/hosts, który dnsmasq propaguje do wszystkich klientów, powinna znaleźć się linia definiująca adres naszego routera i serwera Samby (bardzo ważne, jeżeli Samba jest serwerem PDC i korzystamy z profili wędrujących):#127.0.1.1 mojserwer.mojadomena.org mojserwer//to zakomentowujemy 192.168.19.1 mojserwer.mojadomena.org mojserwerDnsmasq zużywa o wiele mniej zasobów niż tandem ISC DHCP + ISC Bind, jest też, jak widać prostszy w konfiguracji. Przydzielone adresy zapisywane są w pliku:
cat /var/lib/misc/dnsmasq.leases
Usługę uruchamiamy standardowo, tzn.
sudo service dnsmasq start
, oczywiście jeżeli wcześniej skonfigurowaliśmy ISC Dhcp i Binda, trzeba je wyłączyć: sudo service isc-dhcp-server stop && sudo service bind9 stop
. Żeby ISC Dhcp i Bind nie były uruchamiane podczas startu systemu (załóżmy, że chcemy wypróbować Dnsmasq nie odinstalowując niczego), można zrobić tak:
# poniższe da błędy podczas startu, które można pominąć sudo chmod a-x /etc/init.d/bind9 # przenosimy linki uruchamiajce isc-dhcp do swojego katalogu domowego sudo mv /etc/init.d/isc-dhcp-* ./Po restarcie powinien uruchomić się Dnsmasq.