Semestrální práce do předmětu 
Technologie počítačových sítí

Konfigurace DHCP

Martin Drlík, drl000
    Pavel Němec, nem114
Leden 2004


Úvod do problematiky


  1. Protokol DHCP (dynamic host configuration protocol – protokol dynamického přidělování adres) je používán jako alternativa k manuálnímu nastavování IP adres klientům administrátorem. Zmenšuje se tak možnost výskytu chyb při ručním nastavení IP adres a zároveň mohou být klientům předány další související konfigurační údaje sítě (options), k níž jsou připojeni. DHCP dotazy jsou posílány klienty jako broadcasty do celého segmentu sítě. Jeli na segmetnu spuštěn DHCP server, tento po zachycení paketu odpoví na dhcp požadavek.

  2. Konfigurace DHCP serveru

    DHCP server je aplikace, která běží jako démon na portu 67 nad UDP protokolem. Čte na stanoveném rozhraní broadcasty.
    Konfigurace serveru je uložena v souboru dhcpd.conf . (standardně uložen v adresáři /etc). Při startu je načten tento soubor a možné adresy jsou uloženy v paměti. Požádá-li klient o IP adresu, server rezervuje pro tohoto klienta adresu (pronájem adres). Každý pronájem adresy je jen na určitou dobu, nastavené v konfiguračním souboru. Předtím, než uplyne doba ukončení pronájmu adresy, musí klient znovu žádat o prodloužení (renew - viz. manuálové stránky) doby pronájmu adresy. Po vypršrní této lhůty již může přidělit server danou adresu jiné stanici.

    Dalším důležitým souborem je dhcpd.leases (standardně uložen v adresáři /var/state/dhcp/dhcpd.leases)
    Záznamy o pronájmu adres jsou ukládáy do souboru dhcpd.leases, což umožňuje v případě restartu, nebo chyby systému zjistit, jaké adresy byly přidělené konkrétním stanicím a zajistit tak bezproblémový chod sítě. Po startu serveru je nejříve načten konfigurační soubor dhcpd.conf a následně soubor dhcpd.leases. Data z něj jsou zavedena do paměti a sever může pokračovat aniž by uživatel zpozoroval že došlo např. k restartu serveru.
    Server obvykle přiděluje totožným stanicím ip adresu, jakou měly při předchozích pronájmech. Nový pronájem je přidán na konec souboru. Aby soubor nebyl příliš velký, čas od času je vytvořen nový soubor a původní soubor je uložen do souboru dhcpd.leases~ 

    Konfigurační soubor dhcpd.conf

    Konfigurační soubor je case-insensitive, komentáře začínají znakem „#“ a končí koncem řádku.
    Soubor se skládá ze dvou hlavních částí – parametrů a deklarací. Parametry vyjadřují „ jak co dělat“ (doba pronájmu adresy, paramety, které lze předat klientům, … ). Deklarace jsou určeny k popisu topologie sítě, klientů nebo množiny parametrů množině deklarací.


    příklad

    subnet 239.252.197.0 netmask 255.255.255.0 {
            range 239.252.197.10 239.252.197.250;

    default-lease-time 600;
    max-lease-time 7200;

    option subnet-mask 255.255.255.0;
    option broadcast-address 239.252.197.255;
    option routers 239.252.197.1;
    option domain-name-servers 239.252.197.2, 239.252.197.3;
    option domain-name "isc.org";
    }

    group {
            group-specific parameters...

            host zappo.test.isc.org {
                        host-specific parameters...

            }

            host beppo.test.isc.org {
                        host-specific parameters...

            }
     
            host harpo.test.isc.org {
                        host-specific parameters...

            }
    }


    subnet definuje síť pro jejímž klientům dhcp server přiděluje adresy. (zde se jedná o síť 239.252.197.0).
    range (range, obor ) - rozsah adres spravovaných serverem. Rozsahů může být více než jeden.
    default-lease-time – standardní doba pronájmu adresy.
    max-lease-time – maximální doba pronájmu adresy.

    položky option
    subnet-mask – broadcastová adresa
    routers – výchozí brána, většinou router do internetu
    domain-name-servers – servery DNS, může jich být i více.
    domain-name – doména, do které opčítač náleží



    Tabulka všech položek Option.:
    Parameter Description Datatype
    default-lease-time Standardní doba pronájmu adresy
    číslo
    domain-name doménové jméno dané podsítě Text
    domain-name-servers seznam dns serverů pro danou doménu
    Seznam IP adres
    fixed-address Pevné adresy pro přidělování klientům
    Seznam IP adres
    group Začátek deklarace skupiny N/A
    hardware Typ sítě (ethernt, token ring, nebo FDDI) Hardware-type: text; Hardware
      (currently only Ethernet and token ring are supported) address: octets, colon separated
    Host Začátek deklaracehosta
    N/A
    host-name Jméno hosta  Text
    max-lease-time Maximální doba, kterou  je schopen server poskytnout
    IP adresu
    číslo
    netbios-name-servers jméno WINS serveru Seznam adres
    range Rozsah IP adres seznam IP adres
    routers Seznam použitelných routerů
    List of IP addresses
    shared-network Začátek deklarace sdílené sítě
    N/A
    subnet Začátek deklarace podsítě
    N/A
    subnet-mask Maska podsítě IP address


    Parametr Group je určen jednoduše pro přiložení jednoho nebo více parametrů pro celou skupinu uživatelů. Může být použita pro skupinu hostů, sdílených sítí, podsítí, nebo jiných skupin.

    Další možností je nastavit danému hostu přímo adresu - staticky.


    Podpora BootP

    	Protokol BOOTP slouží k předání síťových informací klientům. 
    Protokol je definován v RFC 951. Iniciálním portem je bootpc(host)-68 a cílovým
    portem je bootps(server)-67. Vse je nad UDP.

    Server obdrží pomocí broadcastu MAC adresu klienta, kterou začne vyhledávat ve své databázi. Pokud ji v databázi najde, bude schopen vrátit klientovi jeho IP adresu, masku sítě a bránu.

    Databáze BOOTP serveru je jednoduchý textový soubor (BOOTPTAB) s následujícím formátem:
    	   devicename: \			
    sm=subnet mask: \ #maska sítě
    gw=gateway: \ #brána
    ht=hardware type: \ #typ hardware- ethernet nebo Token
    #Ring
    bf=bootfile path: \ #cesta k bootovacímu souboru
    ha=hardware (mac) address: \ #MAC adresa klienta
    ip=ip address: \ #přidělená IP adresa
            Z konfiguračního souboru je patrné, že se musí klientovi přiřadit pevná IP adresa, proto je vhodnější používat protokol DHC


     

    Spuštění serveru


                    Server je možno spustit z adresáře : /usr/sbin/
       
              dhcpd
    [ -p port ] [ -f ] [ -d ] [ -q ] [ -cf config-file ] [ -lf lease-file ] [ if0 [ ...ifN ] ] 


    -p  cislo_portu        - nechceme-li aby server naslouchal na standardním portu (67)  .
    -f                            - tento přepínač způsobí, že server nepoběží jako démon na pozadí, ale v popředí (foreground).
    -d
                               - tento přepínač způsobí, že server bude zapisovat chyby do standardního log souboru.
    -q                           - je-li server spouštěn při startu systému skript (e.g., /etc/rc), můžeme chtít potlačit výpis veškerých autorských práv,
                                      zajistíme to tímto přepínačem.
    -lf config_file          - chceme-li použít pro start jiný konfigurační soubor. 
    -ls
    lease_file           - chceme-li použít pro start jiný lease soubor.

    -if0                         - identifikace rozhraní, na nichž má server naslouchat.