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:
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
20 – „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).
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.
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".