Skip to main content

7.6 DHCP server na smerovači

DHCP server

Hoci to nie je typická úloha smerovača, predovšetkým v prostredí SOHO plní smerovač aj úlohu DHCP servera, teda prideľuje IP adresy v LAN sieti. Zariadenia MikroTik s RouterOS majú túto funkciu plne implementovanú a je možné ju efektívne prepojiť aj s pokročilejšími funkciami, ako je napríklad firewall, NAT, či QoS.

Označenie DHCP je akronymom pre Dynamic Host Configuration Protocol. DHCP server prideľuje klientovi na požiadanie typicky:

  • IP adresu a masku;
  • adresu brány (default gateway);
  • adresu DNS servera;
  • adresu časového servera NTP.

Okrem toho môže klientovi poskytovať aj mnoho iných parametrov, napríklad trasy smerovania, pokyny na používanie proxy servera (WPAD), nastavenia NetBIOS, …

Za zmienku stojí, že pridelené údaje majú svoju časovú platnosť. Klient však nečaká do konca platnosti, ale už po uplynutí jej polovice požiada o predĺženie platnosti, čím zabráni výpadku spojenia, pokiaľ by bol server v kritickom okamihu práve preťažený.

Konfigurácia v MikroTik RouterOS

Ešte pred konfiguráciou DHCP servera je potrebné mať nakonfigurované príslušné LAN rozhranie (vrátane IP adresy)!

Konfigurácia DHCP servera pozostáva z troch nutných krokov.

1. Príprava balíka IPv4 adries

Balík adries pridávame cez WinBox ponuku IP → Pool. V prvom rade ho vhodne pomenujeme (Name), napríklad „pool-lan“, „pool-tlaciarne“, či „pool-dhcp-lan“.

Balíky IP adries nevyužíva len DHCP server, ale aj iné služby, napríklad VPN. Preto ich nenájdeme v sekcii DHCP servera, ale pod protokolom IP.

Balík IP adries pre účel DHCP servera musí byť podmnožinou rozsahu IP adries daného rozhrania. Teda napríklad, ak je na sieťovom rozhraní nastavená adresa smerovača 192.168.1.1/24, môžeme pre tento účel poskytnúť celý zvyšný rozsah 192.168.1.2-192.168.1.254. Zväčša však chceme nejakú časť ponechať na statické adresy známych klientov (servery, tlačiarne a podobne) a pre neznámych klientov vyhradiť inú časť, napríklad 192.168.1.100-192.168.1.199.

Pri prideľovaní adresného rozsahu je dobré premyslieť si adresný plán, napríklad:

  • prvé adresy .1 - .9 pre sieťové zariadenia a servery (obvykle priraďujeme staticky);
  • adresy .10 - .19 pre tlačiarne;
  • adresy .20 - .99 pre stabilné PC v kanceláriách;
  • adresy .100 - .199 budú predstavovať balík (pool) pre prinesené zariadenia.

Tento plán je však len príklad a každý si musí nájsť svoj systém, ktorý bude prehľadný.

2. Definícia parametrov IP siete

Parametre nastavujeme vo WinBox ponuke IP → DHCP Server → Networks:

  • Address: Tu uvedieme adresu konfigurovanej siete. Pozor, nejde o adresu smerovača! Príklad: 192.168.1.0/24
  • Gateway: Adresa predvolenej brány. Vypĺňame ju, pokiaľ majú mať zariadenia prístup do iných sietí (typicky áno). Ide o adresu smerovača v tejto sieti, teda napríklad 192.168.1.1. Obvykle je to adresa zariadenia, na ktorom konfigurujeme DHCP server, no nemusí to tak byť. V každom prípade však táto adresa musí patriť do siete definovanej v predošlej položke.
  • DNS Servers: Pre plnohodnotné využívanie internetu je samozrejme potrebný aj DNS server. Pokiaľ ho neuvedieme, klientom bude ponúknutý ten istý DNS server, ktorý má DHCP server nastavený / prijatý - overiť možno cez WinBox ponuku IP → DNS. V praxi je obvykle lepšie spustiť si vlastný DNS server, hoci aj jednoduchý DNS Forwarder priamo na našom zariadení (pozri bod 4). V takomto prípade uvedieme opäť adresu svojho vlastného smerovača, v našom príklade 192.168.1.1. A naopak, pokiaľ by sme chceli dosiahnuť, aby klientom nebol ponúknutý žiadny DNS server, je potrebné začiarknuť „No DNS“.

V skutočnosti nemusí byť v Address zadaná adresa celej siete daného rozhrania, ale môžeme definovať odlišné parametre pre jednotlivé podmnožiny - teda mohli by sme definovať parametre zvlášť napríklad pre 192.168.1.0/25 a zvlášť pre 192.168.1.128/25, hoci by obe podmnožiny boli súčasťou jedinej siete 192.168.1.0/24. Parametre by sa mohli líšiť napríklad DNS serverom (časť klientov bude mať nefiltrovaný prístup, ostatní filtrovaný) alebo bránou (časť klientov bude mať prístup do internetu cez iný smerovač / iného ISP).

3. Spustenie samotného DHCP servera

Samotný DHCP server spustíme jeho vytvorením vo WinBox ponuke IP → DHCP Server → DHCP, pričom uvedieme nasledovné parametre:

  • Name: Uvedieme vhodné meno, napríklad „dhcp-lan“ či „server-lan“.
  • Interface: Sieťové rozhranie, na ktorom má DHCP server reagovať na požiadavky a ponúkať IP adresy.
  • Lease Time: Tu nastavíme rozumnú dobu prenájmu IP adresy. Niekedy je vhodný 1 deň, niekedy dlhšie obdobie a niekedy zase kratšie. Pri vytváraní novej siete alebo experimentoch je vhodný krátky čas, ktorý po dokončení prác môžeme zvýšiť.
  • Address Pool: Zvolíme ten balík IP adries, ktorý prislúcha danému rozhraniu (pozri bod 1).
  • Delay Threshold: Tu definujeme zdržanie pred poskytnutím adresy klientovi. V prípade, že prevádzkujeme vlastnú sieť a máme všetko pod kontrolou, nepotrebujeme žiadne zdržiavanie. Pri výučbe a testovaní je bezpečnejšie nechať poistku v podobe 2-sekundového zdržania „00:00:02“ - pokiaľ omylom spustíme DHCP server do WAN siete, tento náš server bude omeškaný a nenaruší fungovanie oficiálneho servera.
  • Authoritative: Táto položka určuje, či je negatívna odpoveď už definitívna (autoritatívna). Týka sa to situácie, keď nemáme definovaný žiadny balík adries a o adresu požiada zariadenie, ktorému sme neposkytli ani konkrétnu rezerváciu (pozri bod 5). Klient v takom prípade okamžite zahodí aj svoju doterajšiu adresu, pokiaľ nejakú mal a žiadal o jej predĺženie. V prípade, že prevádzkujeme vlastnú sieť a máme všetko pod kontrolou, volíme možnosť „yes“, inak je bezpečnejšie nechať poistku v podobe 2-sekundového zdržania „after 2 s delay“. Tým dáme šancu inému DHCP serveru, aby poskytol klientovi adresu.

Týmto bodom začne DHCP server fungovať. Prehľad DHCP klientov (aj s ich pridelenými adresami) nájdeme v IP → DHCP Server → Leases.

Čo znamená „rozumná doba prenájmu IP adresy“?

To záleží od okolností, predovšetkým od počtu pripájaných zariadení a miery ich vracania sa do siete. Napríklad v kaviarni turistického mesta sa vystriedajú denne stovky návštevníkov a ak by sme nechali príliš dlhú dobu platnosti, ľahko minieme celý balík adries v priebehu pár hodín a ďalším návštevníkom už „nepôjde internet“. V tomto prípade by stačila doba prenájmu 1 hodina.

Na druhej strane, doma sa nám nestrieda kopa rôznych zariadení a viac-menej zostávajú stabilne tie isté. Pokiaľ máme doma aj nejaké servery (môže ísť aj o sieťovú tlačiareň, či NAS), ku ktorým pristupujeme cez IP adresu, zrejme nechceme, aby sa každý deň menila. Preto je v tejto situácii vhodné nastaviť dlhú dobu platnosti adresy - napríklad 7 dní, či pokojne aj mesiac.

4. Spustenie vlastného DNS servera

Tento krok je potrebný, len ak náš DNS server priraďujeme klientom (pozri bod 2). V ponuke IP → DNS postačuje začiarknuť možnosť Allow Remote Requests a tým DNS server nášho zariadenia sprístupníme všetkým sieťovým klientom.

V skutočnosti nejde o plnohodnotný (nezávislý) DNS server, ale len o preposielanie požiadaviek (DNS Forwarder) inému DNS serveru. Pre nás to však z praktického hľadiska nepredstavuje rozdiel a svoju úlohu to plní rovnako.

Výhodou vlastného DNS servera je zrýchlenie operácií prekladu mien vďaka vyrovnávacej pamäti (cache). Obzvlášť v prípade, že máme pomalé alebo preťažené internetové pripojenie, môže toto jednoduché opatrenie výrazne zrýchliť prvé načítavanie každého webu.

Zapnutie tejto funkcie môže predstavovať bezpečnostné riziko, pokiaľ má smerovač verejnú IP adresu! V druhej časti tohto kurzu to vyriešime pomocou firewallu.

Takýto jednoduchý DNS server môžeme tiež využiť na definovanie vlastných DNS mien (cez tlačidlo Static) - stačí uviesť :

  • Name: doménové meno, napríklad server.intranet - je potrebné uvádzať aj doménu, či skutočnú alebo fiktívnu;
  • Address: IPv4 adresa, na ktorú má odkazovať uvedené doménové meno (ak máme zvolený typ A);
  • TTL: doba platnosti DNS záznamu, pre naše lokálne servery vyhovuje krátka doba, napríklad 5 minút.

Môžem si takto zadefinovať DNS mená pre akékoľvek domény?

V podstate áno. No ak použijeme existujúcu doménu, namiesto skutočného cieľa sa dostaneme na ten cieľ, ktorý sme si definovali. Môže to byť zámer (napríklad po zadaní webovej adresy nášho webu sa neotvorí jeho aktuálna verzia v internete, ale naša pripravovaná verzia na lokálnom počítači), no zväčša je to nežiaduce.

Vhodné fiktívne domény pre LAN siete uvádza dokument RFC 6762, napríklad .intranet, .lan, .home. Oficiálne vyhradená pre interné siete (napríklad vo virtualizácii) je však len doména .internal. Rozhodne sa treba vyvarovať doméne .local - tá sa prekladá cez mDNS (multicast) a nie je určená pre štandardný DNS.

5. Rezervácia pevných adries

Tento záverečný bod nie je nutný, no často je v praxi potrebný. Umožňuje vopred rezervovať konkrétnu IP adresu pre konkrétne zariadenie na základe jeho MAC adresy, pričom táto IP adresa by nemala byť (hoc môže byť) z rozsahu IP Pool. Týmto môžeme dosiahnuť, aby napríklad tlačiarne a servery mali vždy tú istú IP adresu a zároveň ich nemusíme konfigurovať manuálne priamo na zariadení - ide teda o pevné adresy pridelené cez DHCP.

Vybraným klientom našej siete môžeme rezervovať adresy cez WinBox ponuku IP → DHCP Server → Leases. Pridáme teda MAC adresu zariadenia a určíme mu IP adresu, ktorú bude dostávať.

V niektorých situáciách nechceme definovať konkrétnu adresu, ale chceme uviesť špeciálny balík adries - vtedy namiesto uvedenia adresy len zvolíme balík.

Je vhodné (a v prípade, že máme spustené viaceré DHCP servery, tak nutné) určiť aj konkrétny DHCP server (položka Server), ktorý má prideľovať určenú IP adresu.

Prečo je potrebné zadávať aj konkrétny DHCP server? Predvolená možnosť „all“ vari nebude fungovať?

Bude fungovať aj možnosť „all“, kým zariadenie pripojíme do správneho rozhrania. No predstavme si situáciu, že máme definované dve Wi-Fi siete, každú s iným rozsahom IP adries. Ak vytvoríme rezerváciu adresy z rozsahu siete 1, bude to pekne fungovať po pripojení zariadenia do siete 1. No ak sa pripojí do siete 2, namiesto korektnej adresy z balíka siete 2 dostane zariadenie adresu zo siete 1, teda nebude môcť nájsť ani svoju bránu, a teda mu nebude fungovať internet.