Po co nam DHCP?
Serwer DHCP pomaga nam uporządkować i zautomatyzować sprawę nadawania adresów IP w sieci lokalnej. Dzięki niemu po kolejnej reinstalacji systemu (np. z wykorzystaniem programu Northon Gohst czy Particion Image) mamy jedną czynność mniej do wykonania. Program działa na architekturze klient-serwer należy więc na komputerach klienckich uruchomić odpowiedni program do współpracy. W większości systemów operacyjnych jest to jednak bardzo prosta czynność.
Instalacja oprogramowania
W przypadku dystrybucji CentOS wydajemy polecenie:
#yum install dhcp
Budowa pliku konfiguracyjnego
Plikiem konfiguracyjnym serwera dhcp jest /etc/dhcpd.conf. Budowę prostych plików konfiguracyjnych można podzielić na 3 części:
- opcji globalnych
- opcji dotyczących definiowanych sieci
- opcji dotyczących definicji poszczególnych stacji
Oczywiście sytuacje bardziej skomplikowane wymagają bardziej skomplikowanych plików.
Podstawowe opcje globalne
Podstawową opcją globalną, a właściwie jedyną wymaganą, jest ddns-update-style określająca czy serwer DHCP aktualizuje dane na podstawie DNSa (czyli dynamicznie, stąd nazwa zmiennej). W prostszych przypadkach (nad którymi łatwiej zapanować) należy ustawić ją na none czyli wyłączyć daną ceche.
ddns-update-style none;
Wygodnie jest również ustawić poziom ważności komunikatów wysyłanych do sysloga. Dokonujemy tego przy pomocy zmiennej log-facility.
log-facility local7
Jeżeli ten serwer DHCP jest oficjalnym serwerem DHCP dla sieci lokalnej należy dodać jeszcze opcję authoritative (domyślnie jest ona wyłączona). Stworzenie tej zmiennej wynikało z faktu iż często nieświadomi użytkownicy uruchamiali własne serwery DHCP czyniąc w nim szkody. Dzięki temu obecnie już takiego zagrożenia nie ma (trzeba świadomie dodać tą zmienną do pliku).
Definicje podsieci
Określmy teraz podsieć, dla której będziemy przydzielać adresy dynamicznie z serwera. Najprostsza definicja (wystarczająca do działania) określa jedynie adres sieci i jej maskę oraz pulę adresów z której przyznamy adresy. Definicję podsieci rozpoczynamy słowem kluczem subnet po którym podajemy adres sieci, następnie piszemy kolejne słowo kluczowe netmask i otwieramy nawias kwadratowy. Wszystko co znajdzie się w obszarze tego nawiasu tyczy tylko tej podsieci. Tutaj właśnie umieszczamy informację o puli adresów dodając parametr option a za nim range i zakres adresów.
Przykład:
subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.20; }
Oznacza ona iż nasz serwer obejmuje sieć 192.168.1.0/255.255.255.0 i przyznaje adresy z zakresu 192.168.1.10 – 192.168.1.20.
Określenie domeny podsieci oraz jej podstawowego serwera DNS
Do określenie nazwy domeny oraz podstawowego serwera DNS używamy następujących opcji: domain-name oraz domain-name-servers . Pierwsza oczywiście określa nazwę domeny a druga serwer DNS obsługujący sieć. Poprzedzamy je słowem kluczowym option a za nimi wstawiamy odpowiednie wartości.
Przykładowe wpisy:
option domain-name "xsoft.pl"; option domain-name-servers 192.168.1.1;
Router
Określenie domyślnego komputera, który kieruje pakiety do innych sieci (czyli routera) może także nam ułatwić konfigurację ustawień sieciowych na komputerach klienckich.
option routers 192.168.0.1;
Czasy dzierżawy
Klient DHCP powinien co jakiś czas kontaktować się z serwerem DHCP by sprawdzić czy jego aktualny adres jest jeszcze ważny czy też nie powinna nastąpić jego zmiana. Dokonujemy tego przy pomocy dwóch zmiennych:
- default-lease-time – określa czas w sekundach, po którym client DHCP ma się zgłosić by mu przyznano nowy lub przedłużono dzierżawę adresu IP.
- max-lease-time – maksymalny czas, który klient może nie uzyskać połączenia z serwerem.
Przykładowe wpisy:
default-lease-time 600; max-lease-time 7200;
Określenie domeny NIS
Serwer NIS pozwala przekazywać dane dotyczące użytkowników (np. loginy i hasła) oraz sieci (np. spis komputerów) między stacjami w podsieci. Informację o nazwie domeny możemy łatwo rozprowadzać dzięki opcji nis-domain. Na początku podajemy oczywiście słówko kluczowe option, następnie nazwę opcji czyli w naszym przypadku nis-domain a na końcu jej wartość, czyli nazwę domeny, ujętą w cudzysłowy.
Przykład:
option nis-domain "domain.org";
Definicje komputerów podsieci
Wygodnie jest nadawać automatycznie komputerom w podsieci nazwy oraz adresy IP. Dzięki temu mamy mniej kłopotów z konfigurowaniem komputerów oraz możliwości kontroli kto co robił. Przypisanie adresu oczywiście odbywa się po adresie MAC karty.
Dla każdego komputera tworzymy osobny moduł. Składnia każdego modułu jest następująca:
host nazwa_komputera { opcja... opcja... ... }
Podstawowe dwie opcje to:
- hardware ethernet określająca adres MAC karty (podawany jako argument)
- fixed-address pozwalająca przypisać adres IP do karty (podawany jako argument)
Przykład:
host ziutus { hardware ethernet 12:34:56:78:AB:CD; fixed-address 192.168.1.4; }
W ten sposób jesteśmy w stanie na stałe przypisać adresy IP do poszczególnych kart sieciowych, czyli do każdego komputera w sieci. Pozwala to uzyskać większą wiarygodność logom z programów kontrolujących działania użytkowników w sieci lokalnej.
Przykładowy plik konfiguracyjny
ddns-update-style none; subnet 192.168.0.0 netmask 255.255.255.0 { # default gateway option routers 192.168.0.1; option subnet-mask 255.255.255.0; option domain-name "xsoft.pl"; option domain-name-servers 192.168.0.1; option nis-domain "xsoft_biuro"; default-lease-time 21600; max-lease-time 43200; host ziutus { hardware ethernet 12:34:56:78:AB:CD; fixed-address 192.168.1.5; } host marcin { hardware ethernet 21:34:56:78:AB:CD; fixed-address 207.175.42.254; fixed-address 192.168.1.6; } host scorp { hardware ethernet 32:34:56:78:AB:CD; fixed-address 192.168.1.7; } host backup { hardware ethernet 32:34:56:78:AB:CD; fixed-address 192.168.1.3; } }