|
|
Jak skonfigurowac DHCP
Zacząć należałoby od krótkiego wyjaśnienia, do czego służy DHCP. Jeśli chodzi o nazwę, to jest to skrót od Dynamic Host Configuration Protocol. Protokół, dzięki któremu można automatycznie konfigurować stacje robocze w sieci. Jak wiadomo, żeby komputer mógł korzystać z dostępu do sieci lokalnej i internetu, konieczne jest ustalenie przy konfiguracji protokołu TCP-IP kilku istotnych informacji, jak przydzielony numer IP i maska podsieci, adresy serwerów DNS, adres domyślnej bramy (gateway) itp. Można wpisywać wszystkie te informacje ręcznie, lecz z punktu widzenia administratora mile widziana jest pewna automatyzacja tego procesu.
W systemie Linux dostępny jest serwer dhcpd (w przypadku dystrybucji RedHat należy zainstalować pakiet dhcp-xxx.i386.rpm, gdzie xxx jest numerem wersji). Po właściwym jego skonfigurowaniu (i uruchomieniu na serwerze :-) w komputerach z systemem Windows podłączonych do naszej sieci wystarczy w konfiguracji protokołu TCP/IP wybrać opcję "Automatycznie uzyskaj adres IP". Opcja ta jest ustawiona domyślnie i oznacza nie tylko pobranie z serwera numeru IP, lecz również pozostałych istotnych informacji. Dzięki temu administrator może uniknąć wielu namolnych pytań przy okazji reinstalacji systemu przez użytkowników.
Przechodząc do kwestii konfiguracji serwera: najważniejszy plik konfiguracyjny omawianego daemona to /etc/dhcpd.conf.
U mnie zawartość tego pliku wygląda następująco:
shared-network siec
{
subnet 62.233.168.192 netmask 255.255.255.224
{
default-lease-time 72000;
max-lease-time 144000;
option subnet-mask 255.255.255.224;
option broadcast-address 62.233.168.223;
option routers 62.233.168.194;
option domain-name-servers 62.233.168.194, 195.82.176.1;
option netbios-name-servers 62.233.168.194;
option domain-name "milanet.org";
range 62.233.168.220 62.233.168.221;
}
subnet 192.168.0.0 netmask 255.255.255.0
{
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
[...]
}
}
host h1{
hardware ethernet 00:18:34:2F:A2:6F;
fixed-address 62.233.168.195;
}
host h2{
hardware ethernet 00:20:fF:f8:1D:02;
fixed-address 192.168.0.2;
}
[...]
W pliku konfiguracyjnym może się znaleźć kilka sekcji.
Najważniejsze to: subnet oraz host. Sekcja shared-network obejmująca w powyższym przykładzie dwie definicje podsieci jest potrzebna w przypadku gdy kilka podsieci "współistnieje" na jednej karcie sieciowej (poprzez ip-aliasing) i zapewnia, że komputery z obydwu sieci będą mogły korzystać z serwisu DHCP.
Zaznaczę może w tym miejscu, że w takim przypadku jeśli dhcpd przy starcie zgłosi, że nasłuchuje np. na eth1, to znaczy, iż obejmuje to też interfejsy aliasowe eth1:0, eth1:1 itp., jeśli tylko została w konfiguracji zdefiniowana odpowiednia podsieć. Nie wiedząc o tym próbowałem swego czasu za wszelką cenę zmusić dhcpd do nasłuchu na eth1:1 komendą dhcpd eth1:1, co mi się oczywiście nie udało ;-)))).
W nagłówku sekcji subnet należy określić adres i maskę podsieci. Dalej umieszczać można w dowolnej kolejności szereg opcji mających zastosowanie do całej podsieci.
Opcje default-lease-time oraz max-lease-time pozwalają określić typowy i maksymalny czas na jaki wydzierżawiany jest numer IP (w sekundach). W przypadku stosowanego zwykle statycznego przydziału IP (patrz dalej) wartości te powinny być dość duże - tu odpowiednio 20 i 40 godzin.
Nazwy dalszych opcji nie pozostawiają raczej wątpliwości co do swojego przeznaczenia, są to po kolei: maska podsieci, adres rozgłoszeniowy, domyślna brama, adresy serwerów DNS (primary i secondary), IP serwera Wins oraz nazwa domeny, do której należą komputery w danej sieci.
Parametrów typu option nazwa xxx; jest jeszcze sporo, szczegóły poznać można czytając dokumentację (np. man dhcpd.conf), tu wymieniłem tylko te, które zwykle są niezbędnę. Każdy z tych parametrów można umieścić na początku pliku - będzie wtedy miał charakter globalny. Można go również umieścić w sekcji subnet - tak jak w przykładzie, czy host, co ograniczy jego zasięg tylko do tej właśnie sekcji.
Opcja
range adr1 adr2
może znajdować się tylko w sekcji subnet i pozwala przeznaczyć pewien zakres adresów IP (od adr1 do adr2 włącznie) na pulę adresów przydzielanych dynamicznie. Jeśli w sieci pojawi się komputer, który nie otrzymał jeszcze swojego wpisu w dalszej części pliku konfiguracyjnego, to przydzielony mu zostanie jeden z adresów z tego zakresu (o ile pozostały jeszcze jakieś wolne).
Sekcja
host nazwa{...}
pozwala na statyczne przydzielenie numeru IP komputerowi zgodnie z adresem hardware karty sieciowej (tzw. MAC). Adres MAC o postaci xx:xx:xx:xx:xx:xx (gdzie xx to wartość zapisana szesnastkowo) - przynajmniej teoretycznie - powinien być unikalny i na stałe przypisany karcie - bez możliwości zmiany. Pozwala to na jednoznaczne zidentyfikowanie karty sieciowej na jego podstawie. Adres ten można odczytać przy pomocy standardowo instalowanego z systemem Windows programu winipcfg. Program ten może również przydać się do sprawdzenia, czy stacja prawidłowo odczytuje przydzielone parametry poprzez serwis DHCP.
Znając adres MAC określonej stacji wystarczy w odpowiadającej jej sekcji wpisać:
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address ip;
gdzie ip jest unikalnym numerem IP przydzielonym na stałe danej stacji.
Dopóki w danym komputerze zainstalowana będzie ta karta sieciowa, z której odczytano adres MAC, a nikt nie będzie nic kombinował ze zmianą tego adresu, komputerowi przy uruchamianiu systemu przypisywany będzie zawsze ten sam numer IP.
W czasie instalacji programu dhcpd na serwerze należy pamiętać, by w katalogu /etc utworzyć plik dhcpd.leases (np. komendą touch /etc/dhcpd.leases). W pliku tym serwer zapisuje sobie informacje na temat aktualnie wydzierżawionych numerów IP i jeśli go nie będzie, nie uda się uruchomić daemona dhcpd.
Jak większość serwerów - czy jak kto woli - daemonów, dhcpd powinno być uruchamiane automatycznie przy starcie systemu. Odpowiednie skrypty są przy instalacji dodawane do katalogu /etc/rc.d.
Po każdej modyfikacji pliku konfiguracyjnego, by zmiany odniosły skutek, należy zrestartować serwer DHCP. Można zrobić to np. wydając polecenie /etc/rc.d/init.d/dhcpd restart.
|
|