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.
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.
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.
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.
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".
YaST DHCP modul umožňuje nastavit vlastní DHCP server pro lokální síť. Modul pracuje ve dvou různých režimech:
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í.
V tomto režimu můžete nastavit pokročilé volby spojené s dynamickým DNS, správou TSIG a další.
![]() | 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. | |
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 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 . Viz 22.29 – „DHCP server: Výběr síťové karty“.
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í“.
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 (). Viz obrázek 22.31 – „DHCP server: Dynamické DHCP“).
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 , konfigurace DHCP serveru se tak dokončí. Viz obrázek 22.32 – „DHCP server: Spouštění systému“.
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.