DHCP server na CentOS

Protokol TCP/IP vyžaduje, aby každý klient na sieti mal jedinečnú IP adresu. Túto IP adresu môžete prideľovať dynamicky alebo staticky. Pri statickom adresovaní musíte manuálne zadať pevnú adresu danému klientovi a táto sa meniť nebude, pokiaľ ju opäť ručne nezmeníte. Statické prideľovanie sa obvykle používa v prípade, že klient musí mať stále tú istú IP adresu. Webové a FTP servery alebo niektoré zariadenia, ako napríklad tlačiarne ani nepodporujú nič iné, iba statické adresy.

IP adresu tiež môžete prideliť dynamicky, a to pomocou Dynamic Host Configuration Protocol-u (DHCP). DHCP umožňuje sieťovým klientom nastaviť IP adresu automaticky pri štarte. Z toho aj vyplýva, že IP adresa klienta sa môže pri štarte systému meniť (čo sa aj stáva), čo je problémom len pokiaľ klient potrebuje stále tú istú IP adresu. Vo všetkých iných prípadoch (čo zahŕňa väčšinu pracovných staníc a veľa serverov) dynamické prideľovanie je efektívnejšie pri zabraňovaní duplicity IP adries. DHCP vám tiež umožňuje alokovať menší počet IP adries, než je počítačov, ktoré ich používajú. Treba sa len uistiť, že počet súčasne pripojených počítačov nie je väčší ako počet adries.

Pravdepodobne najväčšou výhodou DHCP servera je ale oblasť administrácie. DHCP umožňuje omnoho jednoduchšie spravovanie klientských konfigurácií IP adries, pretože ich dokážete všetky zmeniť z jedného miesta – servera – miesto aby ste menili nastavenia na jednotlivých klientoch. Čím je viac počítačov na sieti, tým je väčší prínos DHCP servera.

Inštalácia a základná konfigurácia

1. Nainštalujeme DHCP

yum install dhcp

2. Nastavíme automatické spúšťanie služby po štarte

chkconfig dhcpd on

3. Spustíme službu

service dhcp start

Po spustení však dostaneme chybovú hlášku:

[root@skolenie etc]# service dhcpd start
Starting dhcpd: [FAILED]

Je to z dôvodu neexistujúcej konfigurácie v súbore /etc/dhcpd.conf. Pokiaľ sa do tohto súboru pozriete, uvidíte nasledujúci text a radu:

# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample

Pokiaľ používate CentOS 5.2 mohli by ste v súbore /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample vidieť nasledovný text:

ddns-update-style interim;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.0.128 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}

Je tu dosť vecí na vysvetľovanie, ale my si to teraz nebudeme všímať a urobíme si vlastnú minimálnu konfiguráciu. Obvykle totiž potrebujeme iba niekoľko staticky mapovaných IP adries založených na MAC adresách a všetci ostatní dostanú IP adresu z definovaného rozsahu. Preto si zapíšeme do súboru /etc/dhcpd.conf nasledovný text:

authoritative;
ddns-update-style interim;
default-lease-time 21600;
max-lease-time 43200;
option routers 192.168.1.254;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.10;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.120;
}

Rozbor príkazov

Pre podrobné vysvetlenie pozrite man dhcpd.conf. Stručné vysvetlenie nasleduje:

authoritative;

Server bude autoritatívnym. Toto nie je štandardne nastavené, ale pokiaľ chceme prideľovať IP adresy, tak musí byť nakonfigurované. Toto je určitá ochrana pred tzv. „darebáckymi“ DHCP servermi, ktoré môžu spustiť niektorí ľudia na sieti bez znalosti toho ako DHCP pracuje.

ddns-update-style interim;

Tento riadok musí byť v konfigurácii, aby mohol dhcpd bežať. Pre bližšie informácie pozri man dhcpd.conf.

default-lease-time 21600;
max-lease-time 43200;

Tieto dva riadky nastavujú minimálnu a maximálnu dobu prenájmu (lease) IP adresy klienta z dhcp servera.

option routers 192.168.1.254;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.10;

Tieto štyri riadky sú základnými sieťovými konfiguračnými parametrami, ktoré by ste nastavili pri ručnej konfigurácii IP adresy. Toto je jedna z hlavných výhod DHCP. Poznamenávam, že riadok domain-name-servers hovorí klientom, ktorý DNS server majú použiť. Pokiaľ použijete vlastný cachovací DNS server, tak toto je správne miesto na to, aby ste to dali vedieť klientom.

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.120;
}

Táto sekcia deklaruje subnet. Hovorí každému klientovi na danom subnete akú dostane IP adresu a ďalšie informácie, ktoré sme definovali vyššie. IP adresa ale bude pridelená iba z rozsahu adries 100 – 120.

Teraz máme pripravenú konfiguráciu pre našu sieť a môžeme spustiť/reštartovať dhcp:

service dhcp start

Riešenie problémov

Pokiaľ niečo nefunguje ako očakávate, napríklad DHCP server sa nespustí, je potrebné ísť trocha hlbšie. Riešenie problémov s DHCP môže byť dosť frustrujúce. Dobrá správa ale je, že máme logy :) . Tu je niekoľko rád čo by ste mali skontrolovať.

  1. Nakonfigurujte DHCP tak, aby počúval len na špecifickom sieťovom rozhraní. Toto nastavíte v súbore /etc/sysconfig/dhcpd. Pre eth0 by to mohlo vyzerať nasledovne:

    # Command line options here
    DHCPDARGS=eth0
  2. Spustite dhcp server na popredí:

    dhcpd -f

    Toto môžete použiť na zobrazenie hlášok programu na obrazovku. Obvykle sú tieto správy ukladané do /var/log/messages.
  3. Skontrolujte bodkočiarky na konci riadkov. Jednou z najčastejších chýb sú chýbajúce bodkočiarky. Pokiaľ spustíte dhcpd na popredí, tak uvidíte číslo riadku na ktorom je problém.
  4. Reštartujte/reloadujte dhcp server po zmenách konfigurácie. Veľmi často sa stáva, že urobíte zmenu v konfigurácii a potom sa divíte, že nie je funkčná. Na to aby ste uviedli zmeny do života, musíte reštartovať službu dhcpd. Pri tom treba mať na pamäti, že pokiaľ reštartujete server a chýba vám bodkočiarka, dhcpd sa zastaví. Reload je bezpečnejší, pretože nesprávny konfiguračný súbor sa nenačíta.
  5. Použite verziovanie na udržanie prehľadu o zmenách v konfiguračnom súbore. Pomocou vhodného značenia verzií /etc/dhcpd.conf si môžete radikálne uľahčiť prácu. Pokiaľ si pred každou zmenou zachováte aj predošlú fungujúcu verziu, môžete ju pri problémoch vrátiť v okamihu späť.

Statické mapovanie

Jednou z najlepších vecí, ktoré DHCP dokáže, je mixovanie dynamicky distribuovaných adries z rozsahu a pridelenie statickej adresy na základe hardvérovej (MAC) adresy. Táto vlastnosť sa nazýva statické mapovanie DHCP.

Prečo je statické mapovanie také výborné? Umožňuje totiž automaticky nakonfigurovať sieťové nastavenie klienta bez ohľadu na to, či bol práve preinštalovaný alebo inak zmenený a to všetko na základe MAC adresy. To znamená, že pokiaľ nastavíte DNS, vždy budete vedieť názov hostiteľa a jeho IP adresu. Statické mapovanie by mohlo vyzerať napríklad takto (na základe predošlej konfigurácie):

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.120;
host stanica {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.121;
}
}

Ak sa pozriete na túto „mapovaciu“ konfiguráciu, zistíte, že je naozaj jednoduchá. Normálny rozsah adries prideľuje IP v rozsahu 100 – 120 a navyše sme pridali adresu 121, ktorá je statická, ale iba ak nájde zodpovedajúcu MAC adresu. Týchto položiek môžete vytvoriť stovky a riadiť týmto spôsobom celú sieť.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená.