Dnsmasq (serwer DHCP i DNS)

Materiały edukacyjne z informatyki

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 eth1 o adresie 192.168.19.1 przedstawia się następująco:

  domain-needed
  bogus-priv
  filterwin2k
  # nie korzystaj z pliku /etc/resolv.conf
  no-resolv
  # serwery Open DNS (lub 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,stacja1,192.168.19.14,12h
  # dodatkowe opcje
  dhcp-option=3,192.168.19.1 # adres routera
  # Opcje dla Samby w roli PDC jeżeli korzystamy
  #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=200

W opcjach server podano adresy serwerów Open DNS, ale można podać oczywiście inne. Pozostałe ustawienia 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:

  supersede domain-name "mojadomena.org";
  prepend domain-name-servers 127.0.0.1;

Natomiast w pliku /etc/hosts, który dnsmasq propaguje do wszystkich klientów, powinna znaleźć się linia definiująca adres naszego routera (i ewentualnie serwera Samby):

  #127.0.1.1 mojserwer.mojadomena.org mojserwer #to zakomentowujemy
  192.168.19.1 mojserwer.mojadomena.org mojserwer

Dnsmasq zużywa o wiele mniej zasobów niż tandem ISC DHCP + ISC Bind, jest też, jak widać, prostszy w konfiguracji. Przydzielone adresy przejrzymy za pomocą polecenia: cat /var/lib/misc/dnsmasq.leases

Usługę uruchamiamy standardowo, tzn. sudo service dnsmasq start.

Na skróty
Kontakt