Linux jako DHCP server

Lukáš Zapletal 19. 7. 2001

Protokol DHCP (Dynamic Host Configuration Protocol) používáme ke konfiguraci klíčových síťových parametrů jednotlivých klientů. Jejich nastavení umožňují DHCP servery, které přidělují klientům předem definované prostředky. Protože se DHCP využívá hojně i v jiných systémech, naučíme se nakonfigurovat takový server pro spolupráci s okolím a spravovat ho.

Jak to funguje

DHCP rozšiřuje BOOTP protokol, se kterým je zpětně kompatibilní. Klient vyšle do sítě multicast UDP požadavek DHCPDISCOVER. Servery zachytí požadavky a zašlou zprávu DHCPOFFER (opět multicast). Klient si vybere ze všech odpovědí tu nejvhodnější a pošle DHCPREQUEST. Server, který klient oslovuje, vše buď potvrdí (DHCPACK), nebo ne (DHCPNAK). Klient si to může ještě rozmyslet (DHCPDECLINE). Po vypršení lhůty (nebo pokud klient skončí před lhůtou a pošle DHCPRELEASE) se adresa může poskytnout jinému zájemci (existují i výjimky).

Instalace

Protokol vyvinula a spravuje ISC (Internet Software Consorcium). Dodává také příslusný software, který je šířen jako open source. Jedná se jak o serverovou, tak i klientskou část.

Instalace je snadná, musím vás ale upozornit na jeden chyták. Ve svém jádru musíte mít zakompilovanou podporu pro multicast adresy. Většina distribucí má tuto volbu zapnutou, o čemž se přesvědčíte příkazem ifconfig -a. Pokud ve výpisu uvidíte slovo MULTICAST (na počeštěných systémech je to VŠESMĚROVÉ_VY­SÍLÁNÍ), máte vyhráno.

Instalace vlastního DHCP probíhá obvyklým configure; make; make install. Pokud budete instalovat z binárek Red Hatu, je mojí povinností upozornit na skutečnost, že klientská část se nalézá v souboru dhcpcd-.rpm a serverová je k mání v dhcpd-.rpm. RedHat 6.x používá při standardní instalaci klienta jménem pump. Pokud chcete používat dhcpcd, musíte si jej nainstalovat. Pro zvědavce ještě uvedu, že dhcpcd znamená DHCP Client Daemon.

Server

Před vlastní instalací je třeba ještě malinko upravit směrovací tabulku, protože někteří klienti (co si budeme namlouvat – prostě Windows :-) se nechovají tak, jak dhcpd očekává. Musíme nastavit server tak, aby správně směroval pakety adresované 255.255.255.255­. Aby to provedl na síťovou kartu eth0, specifikujeme příkazem:

[lzap@alef /]# route add -host 255.255.255.255 dev eth0

Pro všechny následující příklady si vymyslíme fiktivní doménu firma.cz (192.168.1.0). DHCP server bude na 192.168.1.1. Nej­línější administrátor může vytvořit následující jednoduchou konfiguraci:

# [/etc/dhcpd.conf]
option domain-name "firma.cz";
option routers 192.168.1.254 192.168.1.253;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
default-lease-time 3600;
max-lease-time 7200;

subnet 192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.100 192.168.1.200;
}

host guru {
    hardware ethernet 08:00:4b:2c:22:23;
    fixed-address 192.168.1.100;
}

Při takovéto konfiguraci bude dhcpd přidělovat adresy 192.168.1.100 až 192.168.1.200 im­plicitně na 1 hodinu, ne déle než na 2 hodiny. Počítač „guru“ je pravděpodobně administrátorův a chce mít přidělovánu stálou adresu 192.168.1.100. Tato adresa je tedy rezervována a DHCP server zajistí, aby nebyla poskytnuta (to lease = poskytnout, pronajmout). Pokud bychom v naší firmě používali WINS name server, můžeme jeho adresu DHCP démonovi sdělit pomocí konfigurační hodnoty netbios-name-servers.

DHCP démon se překvapivě nazývá dhcpd. Jeho spouštění se liší od distribuce k distribuci. Obvykle postačí příkaz /etc/init.d/dhcpd start. Základní paramtetry hledá démon v /etc/dhcpd.conf (kde jinde :-) a samozřejmě na příkazové řádce. Po prvním startu vytvoří soubor /var/state/dhcp/dhcp­d.leases nebo /var/lib/dhcp­/dhcpd.leases (záleží na konfiguraci), kde si ukládá informace o poskytnutých adresách. Je to obyčejný textový soubor (díky bohu žádná metabáze).

Ještě se zmíním o bezpečnosti. DHCP server si přímo říká o nějaký DoS útok. Útočník může server účelně zbavit všech adres, různě šachovat s klienty atp. Proto nedopusťte, aby dhcpd naslouchal požadavkům z internetu (UDP porty 67 a 68).

DNS

DHCP klient může (ale nemusí – tak se chová implicitně i dhcpcd) se svou zprávou zaslat svoje jméno a doménu. DHCP si tuto informaci uloží do dhcpd.leases. Tohoto se využívá ve spojení s DNS serverem. Není totiž problém vydolovat z dhcpd.leases tyto informace a poslat DNS serveru zprávu, aby si upravil svoje tabulky. Pokud to budete dělat pravidelně (třeba z cronu), každý počítač, jehož DHCP klient pošle serveru svoje jméno, dostane relevantní DNS záznam (včetně reverzního). Jeden takový skript (napsaný samozřejmě v Perlu) je k mání pro ISC DHCP server (dhcpd) a ISC BIND8 server (named).

Klient

Instalace DHCP klientů je na každém systému jiná. U Linuxu stačí nainstalovat balíček a nakonfigurovat síť na DHCP. Ve Windows se musíte proklikat ke konfiguraci sítě a taktéž nastavit získávání IP adresy z DHCP. Po dalším restartu už bude síť aktivní (pokud váš správce sítě správně nainstaloval server).

Závěr

Samozřejmě, že jsme v tomto článku nepokryli veškeré možnosti, které DHCP nabízí – např. DHCP relay, komplikované přesuny notebooků přes různé sítě či bootování ze sítě. Doufám, že se najde někdo, kdo díky tomuto článku přejde z pevného přidělování adres na DHCP. Vždyť je to tak snadné!

Odkazy:
http://www.is­c.org/products/DHCP/
http://info.in­ternet.isi.edu/in-notes/rfc/files/rfc2131­.txt
http://info.in­ternet.isi.edu/in-notes/rfc/files/rfc2132­.txt
http://www.li­nuxdoc.org/HOW­TO/mini/DHCP/
http://www.dhcp­.org/

Našli jste v článku chybu?
Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte

Vitalia.cz: Ženy, které milují příliš, jsou neštěstí

Ženy, které milují příliš, jsou neštěstí

120na80.cz: Rozpustná vs. nerozpustná vláknina

Rozpustná vs. nerozpustná vláknina

Vitalia.cz: „Sjíždět“ porno není bez rizika

„Sjíždět“ porno není bez rizika

Vitalia.cz: Vakcína Cervarix je oficiálně i pro chlapce

Vakcína Cervarix je oficiálně i pro chlapce

Lupa.cz: Kdo vykrádá LinkedIn? Zjistit to má soud

Kdo vykrádá LinkedIn? Zjistit to má soud

Měšec.cz: Co když na dovolené přijdete o kartu?

Co když na dovolené přijdete o kartu?

DigiZone.cz: Vláda schválila digitální vysílání ČRo

Vláda schválila digitální vysílání ČRo

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!

Root.cz: Xiaomi má vlastní notebook podobný Macu

Xiaomi má vlastní notebook podobný Macu

DigiZone.cz: Fotbal na O2 TV Sport posiluje

Fotbal na O2 TV Sport posiluje

DigiZone.cz: ČTÚ červenec: rušení trochu vzrostlo

ČTÚ červenec: rušení trochu vzrostlo

Vitalia.cz: Kedlubna, neobyčejná zelenina

Kedlubna, neobyčejná zelenina

Podnikatel.cz: Zajímavý paradox: Daří se vedle konkurence

Zajímavý paradox: Daří se vedle konkurence

DigiZone.cz: Hodlá Markíza skončit v DVB-T?

Hodlá Markíza skončit v DVB-T?

DigiZone.cz: Elektrická Formule E. Práva má Arena Sport

Elektrická Formule E. Práva má Arena Sport

Vitalia.cz: 9 potravin, které nesmí chybět v jídelníčku těhotné

9 potravin, které nesmí chybět v jídelníčku těhotné

Měšec.cz: Test: Výběry z bankomatů v cizině a kurzy

Test: Výběry z bankomatů v cizině a kurzy

Vitalia.cz: Proč mu to dává? Copak už může kaši?

Proč mu to dává? Copak už může kaši?

DigiZone.cz: Sky Deutschland: dvakrát fotbal ve 4K

Sky Deutschland: dvakrát fotbal ve 4K