22.11. DHCP

22.11.1. DHCP protokol

Protokol DHCP (Dynamic Host Configuration Protocol) umožňuje centrální nastavení sítě na serveru místo individuální konfigurace pracovních stanic. Klient, který používá DHCP, nemá kontrolu nad svou statickou IP adresou, adresa je mu automaticky přidělována DHCP serverem.

Jednotlivé klienty je možné identifikovat podle hardwarové adresy síťové karty, tzv. MAC adresy, a tak jim, kdykoliv se spojí se serverem, přiřadit stejné nastavení. I přes dynamické přidělování IP adres je tak možno zachovat pro jednotlivé počítače stále stejné IP adresy (i když se počítače připojí až po delší době). Nefunguje to ale v případě, kdy je v síti více počítačů než adres; tehdy jsou adresy přidělovány podle potřeby.

Použití DHCP přináší dvě výhody. Zaprvé je možné jednoduše provádět i velice rozsáhlé změny v síti a spravovat všechny konfigurační soubory centrálně bez nutnosti individuální konfigurace všech klientů. Druhou výhodou je možnost velice jednoduchého připojování nových počítačů k síti. Připojovaným počítačům je automaticky přidělena IP adresa z vyčleněného adresního prostoru. To je požehnání zejména pro notebooky, které se pravidelně připojují do různých sítí.

Kromě IP adres a síťových masek je možné spravovat také názvy počítačů a domén, používané brány a adresy nameserverů, které jsou pak sdělovány klientům. Navíc je možné centrálně konfigurovat i např. server pro synchronizaci času (xntp) nebo tiskový server.

V následujícím textu krátce nahlédneme do světa DHCP a ukážeme si, jak je možné pomocí DHCP serveru dhcpd jednoduchým způsobem centrálně spravovat všechny síťové konfigurace.

22.11.2. DHCP softwarové balíčky

Pro systém SUSE LINUX je k dispozici jak DHCP server, tak i klientský DHCP software. V systému SUSE LINUX je DHCP server dhcpd od konzorcia ISC (Internet Software Consortium). Na straně klienta je výběr ze dvou možností. Můžete použít program dhclient (rovněž od ISC) nebo klientského démona z balíčku dhcpcd.

SUSE LINUX standardně používá dhcpcd, který je velmi snadno nastavitelný, spouští se automaticky při startu systému a okamžitě hledá DHCP server. Ke své práci nepotřebuje žádný konfigurační soubor a ve většině případů pracuje bez nutnosti jakéhokoliv zásahu. Pro složitější případy použijte ISC dhclient, který se nastavuje pomocí konfiguračního souboru /etc/dhclient.conf.

22.11.3. DHCP server dhcpd

Srdcem každého DHCP systému je démon Dynamic Host Configuration Protocol Daemon (dhcpd). Pronajímá adresy a kontroluje jejich používání tak, jak je nastaveno v konfiguračním souboru /etc/dhcpd.conf. Změnou parametrů a hodnot uvedených v tomto souboru lze nejrůznějšími způsoby ovlivnit chování programu. Podívejte se na jednoduchý příklad konfiguračního souboru /etc/dhcpd.conf:

default-lease-time 600;         # 10 minutes
max-lease-time 7200;            # 2  hours

option domain-name "kosmos.all";
option domain-name-servers 192.168.1.1, 192.168.1.2;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;

subnet 192.168.1.0 netmask 255.255.255.0
 {
  range 192.168.1.10 192.168.1.20;
  range 192.168.1.100 192.168.1.200;
 }

Tento jednoduchý konfigurační soubor stačí k tomu, abyste prostřednictvím DHCP mohli přidělovat v síti IP adresy. Nezapomeňte na středníky na konci každé řádky, bez kterých není možné dhcpd spustit!

Jak je vidět z výše uvedeného příkladu, soubor je rozdělen do tří bloků. V první části je uvedeno, na kolik vteřin bude IP adresa standardně počítači přidělena (default-lease-time), nezažádá-li o jiný časový úsek. Po uplynutí této doby musí počítač zažádat o prodloužení. Druhá položka určuje maximální dobu, o kterou si počítač může zažádat (max-lease-time).

V druhé části jsou nastaveny některé obecné síťové parametry:

  • Volbou option domain-name je definována výchozí doména sítě.

  • option domain-name-servers může obsahovat až tři DNS servery, které slouží pro převod IP adres na názvy počítačů (a obráceně). V ideálním případě máte již v systému nebo v síti provozuschopný jmenný server (nameserver). Ten by měl pro každou dynamickou adresu definovat jméno počítače a naopak. Více informací o konfiguraci nameserverů viz 22.7 – „DNS — Domain Name System“.

  • option broadcast-address určuje, jakou oznamovací (broadcast) adresu má použít dotazující se počítač.

  • option routers určuje, kam mají být zasílány pakety, které nejsou určeny počítači v lokální síti (podle zdrojové a cílové adresy a masky podsítě). U malých sítí je tento směrovač obvykle bránou k Internetu.

  • option subnet-mask určuje síťovou masku pro klienty.

Poslední část souboru definuje síť, včetně masek podsítě. Nakonec je zde uveden rozsah adres, které bude DHCP démon přiřazovat klientům. V našem příkladu může být klientům přiřazena libovolná adresa mezi 192.168.1.10 a 192.168.1.20 nebo mezi 192.168.1.100 a 192.168.1.200.

Pokud jste provedli tato nastavení, měli byste být sto spustit DHCP démona příkazem rcdhcpd start. Démon tak bude okamžitě připraven k provozu. Pro kontrolu syntaxe konfiguračního souboru můžete použít příkaz rcdhcpd check-syntax. Pokud nastanou problémy a server skončí s chybou nebo nevrátí po startu done, podívejte se na systémová hlášení do protokolového souboru /var/log/messages, případně na desátou konzoli (Ctrl-Alt-F10).

Ve výchozím nastavení systému SUSE LINUX se DHCP démon z bezpečnostních důvodů spouští ve chroot prostředí. Aby démon našel konfigurační soubory, musí být do chroot prostředí zkopírovány. Obvykle si s tím nemusíte lámat hlavu, protože příkaz rcdhcpd start soubory automaticky zkopíruje.

22.11.4. Počítač s pevnou IP adresou

Jak jsme zmínili výše, DHCP lze nastavit tak, aby určitý počítač dostal při každém požadavku přednastavenou statickou adresu. Explicitně určené adresy mají přednost před dynamickými adresami vybíranými z přiděleného rozsahu. Navíc statická adresa nikdy nevyprší, jak se to může stát s adresou dynamickou, například v případě, kdy je nedostatek adres a server je potřebuje mezi počítači přerozdělit.

K identifikaci počítače, který má mít přidělovánu statickou adresu, používá dhcpd celosvětově unikátní hardwarovou adresu (MAC). Hardwarová adresa sestává z šesti párů šestnáctkových číslic (např. 00:00:45:12:EE:F4).

host zeme {
hardware ethernet 00:00:45:12:EE:F4;
fixed-address 192.168.1.21;
}

Jméno počítače (host jmenopocitace, v našem příkladu zeme) se vkládá na první řádek. Hardwarová adresa (MAC) se zapisuje na řádek druhý. Na linuxových strojích lze MAC adresu zjistit příkazem (v případě síťového zařízení eth0) ifstatus eth0. Pokud karta není aktivní, aktivujte ji předem příkazem ifup eth0. Výstup příkazu ifstatus by měl obsahovat řádek podobný následujícímu:

link/ether 00:00:45:12:EE:F4

Při nastavení uvedeném v příkladu výše bude počítači se síťovou kartou s MAC adresou 00:00:45:12:EE:F4 automaticky přiřazena IP adresa 192.168.1.21 a jméno zeme. Typ hardwaru, který je rovněž nutno udat na řádku s MAC adresou, je téměř vždy ethernet, i když je podporován i token-ring často se vyskytující v systémech IBM.

22.11.5. Zvláštnosti v systému SUSE LINUX

Pro zvýšení bezpečnosti je verze ISC DHCP serveru dodávaná se systémem SUSE LINUX opatřena non-root/chroot záplatou Ari Edelkinda. Server dhcpd tak může běžet s uživatelským ID nobody ve chroot prostředí (/var/lib/dhcp). Aby to bylo skutečně možné, musí se konfigurační soubor dhcpd.conf nacházet v adresáři /var/lib/dhcp/etc. Startovací skript soubor do tohoto adresáře automaticky zkopíruje.

Použití této vlastnosti lze ovládat pomocí nastavení v souboru /etc/sysconfig/dhcpd. Chcete-li spouštět dhcpd bez prostředí chroot, nastavte proměnnou DHCPD_RUN_CHROOTED v tomto souboru na no.

Chcete-li aby dhcpd překládal jména počítačů i z prostředí chroot, musí se zkopírovat i některé další soubory:

  • /etc/localtime

  • /etc/host.conf

  • /etc/hosts

  • /etc/resolv.conf

Tyto soubory jsou startovacím skriptem kopírovány do adresáře /var/lib/dhcp/etc/. Tyto kopie je nutno brát v úvahu při dynamické modifikaci souborů skripty jako je /etc/ppp/ip-up. Pokud však konfigurační soubor specifikuje pouze IP adresy (a nikoliv jména počítačů), nemusíte se tím zabývat.

Pokud ve vaší konfiguraci potřebujete do chroot prostředí kopírovat další soubory, nastavte je v proměnné DHCPD_CONF_INCLUDE_FILES v souboru etc/sysconfig/dhcpd. Aby mohl DHCP server v prostředí chroot zaznamenávat údaje do protokolových souborů i po restartu syslog démona, musíte do proměnné SYSLOGD_PARAMS v souboru /etc/sysconfig/syslog vložit volbu "-a /var/lib/dhcp/dev/log".

22.11.6. Konfigurace DHCP pomocí nástroje YaST

YaST DHCP modul umožňuje nastavit vlastní DHCP server pro lokální síť. Modul pracuje ve dvou různých režimech:

Počáteční konfigurace (Průvodce nastavením DHCP serveru)

  Při prvním spuštění modulu budete dotázáni na několik základních nastavení serveru. Tím bude server připraven k použití ve většině běžných situací.

Expertní konfigurace

V tomto režimu můžete nastavit pokročilé volby spojené s dynamickým DNS, správou TSIG a další.

[Tip]Orientace v expertním modulu a zobrazení nápovědy

Všechny dialogy DHCP modulu mají podobné uspořádání. Levá část dialogového okna obsahuje stromový pohled pro přístup k jednotlivým konfiguračním krokům. Vybraný konfigurační dialog je zobrazen vpravo. Potřebujete-li zobrazit k aktuálnímu dialogu nápovědu, klikněte na ikonu záchranného kruhu v levé dolní části okna. Chcete-li nápovědu zavřít a opět zobrazit stromový pohled, klikněte na ikonu zobrazující stromovou strukturu.

22.11.6.1. Počáteční konfigurace (Průvodce nastavením DHCP serveru)

Při prvním spuštění modulu vyvolá YaST čtyřdílného průvodce, který vám pomůže provést základní konfiguraci DHCP serveru.

Výběr síťové karty

V prvním kroku YaST zjistí, jaká jsou na vašem systému dostupná síťová rozhraní, a zobrazí jejich seznam. Ze seznamu vyberte rozhraní, na kterém má DHCP server naslouchat, a otevřete pro toto rozhraní firewall zaškrtnutím položky Otevřít na firewallu zvolené rozhraní. Viz 22.29 – „DHCP server: Výběr síťové karty“.

Obrázek 22.29. DHCP server: Výběr síťové karty

DHCP server: Výběr síťové karty
Obecná nastavení

V jednotlivých polích zadejte podrobnosti o klientech, které má DHCP server spravovat. Je třeba určit jméno domény, adresu časového serveru, adresu primárního a sekundárního DNS serveru, adresu tiskového serveru, WINS serveru (v případě smíšené sítě zahrnující počítače se systémem Linux i Windows), adresu výchozí brány a výchozí čas přidělení adresy. Viz 22.30 – „DHCP server: Obecná nastavení“.

Obrázek 22.30. DHCP server: Obecná nastavení

DHCP server: Obecná nastavení
Dynamické DHCP

V tomto kroku nastavte, jak mají být klientům přiřazovány dynamické IP adresy. Určete rozsah adres, ze kterého budou přidělovány. Všechny tyto adresy musí mít stejnou masku. Nastavte rovněž dobu přidělení adresy, po jejímž uplynutí musí počítač zažádat o prodloužení přidělení. Můžete také určit maximální dobu, po kterou je IP na serveru blokována pro klienta (Max. čas přidělení). Viz obrázek 22.31 – „DHCP server: Dynamické DHCP“).

Obrázek 22.31. DHCP server: Dynamické DHCP

DHCP server: Dynamické DHCP
Ukončení konfigurace a nastavení režimu spouštění

V posledním dialogu konfiguračního průvodce zvolte, jak má být DHCP server spouštěn. První možností je spouštět server automaticky při startu operačního systému, druhou možností je ruční spouštění serveru v případě potřeby (např. pro testovací účely). Klikněte na Konec, konfigurace DHCP serveru se tak dokončí. Viz obrázek 22.32 – „DHCP server: Spouštění systému“.

Obrázek 22.32. DHCP server: Spouštění systému

DHCP server: Spouštění systému

22.11.7. Další informace

Více informací o DHCP najdete na stránkách Internet Software Consortium (http://www.isc.org/products/DHCP/). Řada důležitých informací je také v manuálových stránkách dhcpd, dhcpd.conf, dhcpd.leases a dhcp-options.


SUSE LINUX 9.2