23.4. 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 ovlivnit chování programu. Podívejte se na jednoduchý příklad konfiguračního souboru /etc/dhcpd.conf v 23.1 – „Konfigurační soubor /etc/dhcpd.conf“:

Příklad 23.1. Konfigurační soubor /etc/dhcpd.conf


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

option domain-name "cosmos.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:

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.

23.4.1. 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). Pokud jsou do konfiguračního souboru 23.1 – „Konfigurační soubor /etc/dhcpd.conf“ přidány řádky podobné těm z příkladu 23.2 – „Additions to the Configuration File“, bude danému počítači vždy přidělováno stejné nastavení.

Příklad 23.2. Additions to the Configuration File


host earth {
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 earth) se vkládá na první řádek. Hardwarová (MAC) adresa 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 není karta aktivní, aktivujte ji 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 earth. Na řádce s MAC adresou je zapsán i typ hardwaru, většinou ethernet. Je ale podporován i token-ring často se vyskytující v systémech IBM.

23.4.2. Zvláštnosti v systému SUSE Linux

Pro zvýšení bezpečnosti je SUSE verze ISC DHCP serveru opatřena non-root/chroot záplatou Ari Edelkinda. Server 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 ho tam automaticky zkopíruje.

Tuto vlastnost lze nastavit v souboru /etc/sysconfig/dhcpd. Chcete-li spouštět dhcpd bez prostředí chroot, nastavte v něm proměnnou DHCPD_RUN_CHROOTED 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/. Kopie je nutno brát v úvahu při dynamické modifikaci souborů skripty jako např. /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".