dnsmasq – serwer DNS i DHCP

No Gravatar

Dnsmasq jest prostym serwerem udostępniającym usługi DNS i DHCP dla sieci lokalnej ( LAN ) i jak informują jego twórcy będzie się świetnie spisywał w sieciach domowych jak również niedużych środowiskach firmowych, do mniej więcej 1000 stacji roboczych. Więcej informacji o nim na stronie autora: http://www.thekelleys.org.uk/dnsmasq/doc.html

  1. Ale po co?
    Dobre pytanie. Z reguły jeśli dorobiliśmy się już sieci lokalnej w domu, to poprzestajemy na poruszaniu się po niej albo za pomocą numerów IP komputerów albo za pomocą otoczenia lokalnego Windows i nazw stacji w grupie roboczej. To drugie jest dość wygodne, ale będzie działało tylko w sieciach z systemami operacyjnymi Windows, no może również z różnymi Unix’ami czy Linux’ami, ale to z kolei wymaga konfiguracji serwera Samba, co wychodzi poza zakres tego tekstu.
    Pomyślmy teraz jak pięknie by było gdyby zamiast numerów IP każdy komputer był rozpoznawany po swojej unikalnej nazwie, zupełnie jak na przykład strony internetowe. Dotyczyłoby to też drukarek sieciowych, routerów i innych urządzeń. To właśnie da nam dnsmasq. Pozwoli znajdywać za pomocą nazw wszystkie urządzenia sieciowe pobierające numery IP automatycznie poprzez DHCP lub dopisane statycznie do konfiguracji serwera. 

    Zamiast wpisywać szukając udziału sieciowego:

    \\192.168.0.4\udzial

    Wpiszemy:
    \\nasz_serwer.domena\udzial

    Łatwiej zapamiętać, prawda? Do tego jeśli się zmieni adres maszyny identyfikowanej jako „nasz_serwer” my nawet nie musimy tego wiedzieć, bo dnsmasq i tak nas do niego bezbłędnie pokieruje.

    Skoro już wiemy po co nam takie cudo… zaczynajmy! :)

  2. Instalacja
    Instalacja zależy od środowiska, w którym pracujemy, ja skupię się na środowiskach Linux, a konkretnie na dwóch najpopularniejszych systemach Fedora ( jak również Red Hat, Centos ) oraz Debian ( Ubuntu i podobne ). Do instalacji będą potrzebne uprawnienia root’a. Można albo się zalogować jako root, albo dopisać przed każdym poleceniem podawanym poniżej: sudo
    na przykład: sudo yum update
     

    • Fedora
      należy wykonać polecenia:
      yum update ( na wszelki wypadek aktualizować pakiety w systemie )
      yum install dnsmasq 

    • Debian
      należy wykonać polecenia:
      aptitude update && aptitude safe-upgrade ( na wszelki wypadek aktualizować pakiety w systemie )
      aptitude install dnsmasq
  3. Plik konfiguracyjny nazywa się dnsmasq.conf i znajduje się w katalogu /etc
    Dodatkowo dnsmasq korzysta z pliku /etc/hosts jako źródła informacji o hostach ze zdefiniowanymi stałymi adresami IP, to znaczy nie pobieranymi przez DHCP, oraz z pliku /etc/resolv.conf – stąd otrzymuje informacje na temat serwerów DNS, z których ma korzystać.
    Jest bardzo dobrze opisany za pomocą komentarzy, więc szczegółową instrukcję pominę, natomiast skupię się na kilku opcjach, które potrzebne są na początek. 

    • domain-needed – oznacza, że dnsmasq nie będzie przekazywał dalej zapytań nie posiadających domeny w adresie
    • bogus-priv – dnsmasq nie będzie przekazywał dalej adresów w nieroutowalnych zakresach adresowych
    • interface={eth0,eth1,…}  – jeśli mamy więcej niż jeden interfejs sieciowy to tutaj możemy powiedzieć dnsmasq, że ma nasłuchiwać jedynie na nim
    • except-interface={eth0,eth1,…} tak samo jak porzednio, ale dnsmasq ma nasłuchiwać na wszystkich interfejsach oprócz podanego
    • expand-hosts – ta zmienna mówi dnsmasq, że ma dodawać nazwę naszej domeny do nazw hostów i działa w połączeniu ze zmienną domain
    • domain - informacja o nazwie naszej domeny
    • dhcp-range=192.168.0.30,192.168.0.40,24h – aktywowanie serwera DHCP i ustawienie jego zakresu przydzielanych adresów na 192.168.0.30-40 i czasu lease ( wynajmu ) na 24 godziny. Jeśli mamy dwie podsieci ( vLAN lub dwie karty sieciowe ) to możemy zdefiniować tę zmienną dwukrotnie, pod warunkiem, że dnsmasq jest skonfigurowany do nasłuchiwania na obu interfejsach
    • dhcp-host=00:11:22:33:44:55,192.168.0.36 – definicja hosta, który przy każdym połączeniu ma posiadać ten sam numer IP. Identyfikacja hosta odbywa się za pomocą adresu sprzętowego jego karty sieciowej MAC. W naszym przypadku host o adresie MAC 00:11:22:33:44:55 będzie zawsze otrzymywał adres 192.168.0.36
  4. Ustawienie tych wartości pozwoli nam rozpocząć używanie dnsmasq w naszej sieci i cieszenie się nazwami zamiast adresów IP.
  5. Dodatkowe informacje
    • wpisy w /etc/hosts wyglądają następująco:
      adres_IP    nazwa_hosta
      na przykład:  192.168.0.21    serwer
    • wpisy w /etc/resolv.conf mają postać:
      nameserver   adres_IP
      na przykład: nameserver 194.204.152.34
    • w przypadku błędów dnsdomainname przy restarcie usługi dnsmasq należy sprawdzić plik /etc/hosts.
      Wpis dla 127.0.0.1 powinien zawierać oprócz localhost wpis nasz_serwer.nasza_domena, na przykład:
      127.0.0.1   localhost   serwer.domena.com
      Po tym może być potrzebny restart systemu lub usług sieciowych.
    • w przypadku Fedory i podobnych w /etc/sysconfig/network powinien się znajdować wpis:
      HOSTNAME=nasz_serwer.nasza_domena.com
    • aby hosty z adresami IP zdefiniowanymi statycznie również mogły korzystać z zalet dnsmasq należy zamienić ich dotychczasowe adresy serwerów DNS na adres IP naszego serwera, na którym jest zainstalowany dnsmasq.
Be Sociable, Share!
    sobota, maj 14th, 2011 Linux, wszystkie wpisy

    TAGS: , ,

    Brak komentarzy.

    Dodaj komentarz

    *