Konfiguracja serwera DHCP
Strona 1
S
ERWER
DHCP
Wszystkie operacje związane z konfiguracją DHCP muszą być wykonywane w try-
bie superużytkownika, więc uważaj co robisz. Do edycji pliku konfiguracyjnego możesz
wykorzystywać edytor wbudowany w Midnight Commander’a lub zwykłego joe.
1. Konfiguracja
dhcpd.conf
Cała konfiguracja DHCP odbywa się w pliku
dhcpd.conf
, który znajduje się
w katalogu
/etc/
, więc jedynym niezbędnym narzędziem jest tu zwykły edytor. Można wy-
korzystać
Midnight Commandera
(uruchamiając go z lini poleceń
mc <Enter>
) korzystając
z jego wewnętrznego edytora
<F4>
. Jednak jeżeli nie mamy bezpośredniego dostępu do serwe-
ra (tylko przez SSH) musimy wykorzystać edytor
joe
(w lini komend wpisujemy po prostu:
joe <Enter>
).
Cała konfiguracja polega na przyporządkowywaniu ściśle określonym opcjom odpowiednich
wartości. Dlatego też cała filozofia opiera się na tym aby wiedzieć, że akurat opcji
option
domain
przyporządkowujemy nazwę naszej domeny (umieszczając ją w cudzysłowach i za-
kańczając średnikiem) –
option domain „internetem.pl”;
Poniżej przedstawiony jest przykła-
dowy plik dhcpd.conf, którego struktura jest najczęściej wykorzystywana.
default-lease-time 86400;
max-lease-time 604800;
option subnet-mask 255.255.255.0;
option domain-name “internetem.pl”;
option domain-name-servers 192.168.0.1, 212.121.65.3;
subnet 192.168.0.0 netmask 255.255.255.0{
range 192.168.0.10 192.168.0.25;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
}
default-lease-time sekundy;
Podajemy tu (w sekundach) jak długo będzie trwała dzierżawa adresu. Jest to ustawienie do-
myślne, wykorzystywane gdy klient nie żąda dostępu na określony czas.
max-lease-time sekundy;
W tym przypadku określamy maksymalny czas dzierżawy jaki można zażądać.
option subnet-mask maska;
Określa maskę podsieci.
option domain-name “domena”;
Określa nazwę domeny (pamiętaj o cudzysłowach).
option domain-name-servers adres[,adres…];
Definiuje serwery DNS, które powinien używać klient w kolejności wybierania.
subnet numer_ip netmask maska {}
Wyrażenie wykorzystywane do definiowania danej (pod)sieci. Opcje użyte w ramach tego
wyrażenia (zawarte w klamrach) są aktualne tylko dla definiowanej (pod)sieci. Najczęściej
jest to range, option routers, option broadcast-address.
range dolny_ip górny_ip;
Określa zakres wolnych adresów, które mogą być wykorzystywane podczas dynamicznego
przydzielania klientom. Określenie to stosujemy jako parametr dla wyrażenia
subnet numer_ip
netmask maska {}
(w nawiasach klamrowych).
Konfiguracja serwera DHCP
Strona 2
Jeśli na przykład potrzebujemy zdefiniować więcej zakresów, na przykład ze względu na to,
że kilka IP jest już przydzielonych na stałe, stosujemy odpowiednią ilość definicji
range
. Jeśli
w sieci 192.168.0.0 chcemy udostępnić zakres od 192.168.0.5 do 192.168.0.50, jednocześnie
wiedząc, że IP od 192.168.0.15 do 192.168.0.18 i od 192.168.0.25 do 192.168.0.34 są już
zajęte, musimy użyć następującego zapisu:
range 192.168.0.5 192.168.0.14;
range 192.168.0.19 192.168.0.24;
range 192.168.0.35 192.168.0.50;
option routers adres[,adres…];
Określa routery, których powinien używać klient.
option broadcast-address adres;
Określa adres rozgłoszeniowy.
option interface-mtu bajty;
Określa wielkość MTU (maksymalny rozmiar pakietu), którego powinien używać klient.
get-lease-hostnames flaga;
Informuje server dhcpd czy podczas dynamicznego przydzielania adresu ip powinna zostać
wysłana do klienta również nazwa hosta pobrana z DNS. Możliwe wartości to true lub false.
Opcja ta spowalnia pracę serwera DHCP.
Uwagi:
2. Należy pamiętać o średniku na końcu lini – z wyjątkiem definicji
subnet numer_ip netmask
maska {}
3. Plik
dhcpd.conf
umieszczony w systemie zawiera polskie wyjaśnienia niektórych opcji.
Są tam również opcje, na początku których znajduje się # dezaktywizujący je. Aby je
uaktywnić wystarczy po prostu go zmazać i zmodyfikować przypisane im wartości.
4. Plik
dhcpd.leases
W katalogu
/var/state/dhcpd
znajduje się jeszcze jeden wymagany plik:
dhcpd.leases
.
Zawiera on informacje o aktualnych „dzierżawach” IP udostępnianych przez serwer. Nie
trzeba go modyfikować – on po prostu musi tylko istnieć, inaczej serwer DHCPD się nie
uruchomi.
5. Aktywacja
zmian
Gdy już dokonamy zmian musimy powiadomić o nich serwer DHCPD – po prostu restartując
go. Wykonujemy następujące polecenie:
killall dhcpd <Enter>
- proces serwera zostanie ”zabity”.
dhcpd <Enter>
- i ponownie uruchomiony dzięki.
Po uruchomieniu dhcpd albo wszystko będzie w porządku i na ekranie pojawi się:
[root@alison /]#
killall dhcpd
[root@alison /]#
dhcpd
Internet Software Consortium DHCP Server V3.0b1pl0
Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
All rights reserved.
Please contribute if you find this software useful.
For info, please visit http://www.isc.org/dhcp-contrib.html
Listening on LPF/eth0/00:00:c0:f5:86:80/192.168.0.0
Sending on LPF/eth0/00:00:c0:f5:86:80/192.168.0.0
Sending on Socket/fallback/fallback-net
Konfiguracja serwera DHCP
Strona 3
albo pojawią się informacje o błędach w pliku konfiguracyjnym dhcpd.conf – trzeba się wtedy
dokładnie przyjrzeć o jakie dokładnie błędy mu chodzi i poprawić plik konfiguracyjny.
Przykładowo jeżeli po uruchomieniu otrzymamy poniższy wydruk, znaczy tu, że popełniliśmy
błąd i zamiast
subnet-mask
napisaliśmy
sbnet-mask
:
[root@alison /]#
dhcpd
Internet Software Consortium DHCP Server V3.0b1pl0
Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
All rights reserved.
Please contribute if you find this software useful.
For info, please visit http://www.isc.org/dhcp-contrib.html
/etc/dhcpd.conf line 5: unknown option dhcp.sbnet-mask
option sbnet-mask 255.
^
Configuration file errors encountered -- exiting
exiting.
Mogą się również pojawić błędy związane z opisywanym wcześniej plikiem
dhcpd.leases
.
Zauważyłem dwa rodzaje tych błędów.
Z pierwszym mamy do czynienia gdy w katalogu
/var/state/dhcp
po prostu nie ma pliku
dhcpd.leases
– poinformuje nas o tym serwer gdy go będziemy próbowali uruchomić. Należy
wtedy po prostu utworzyć pusty plik o tej nazwie wpisując (
touch nazwa_pliku
– polecenie do
tworzenia plików) i uruchomić jeszcze raz
dhcpd
:
touch /var/state/dhcp/dhcpd.leases <Enter>
[root@alison /]#
dhcpd
Internet Software Consortium DHCP Server V3.0b1pl0
Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
All rights reserved.
Please contribute if you find this software useful.
For info, please visit http://www.isc.org/dhcp-contrib.html
Can't open lease database /var/state/dhcp/dhcpd.leases: Nie ma takiego
pliku ani katalogu -- check for failed database rewrite attempt!
Please read the dhcpd.leases manual page if you
don't know what to do about this.
exiting.
[root@alison /]#
touch /var/state/dhcp/dhcpd.leases
[root@alison /]#
dhcpd
Inny błąd związany z dhcp.leases może się pojawić gdy w katalogu
/var/state/dhcp
nagroma-
dzi się sporo tymczasowych plików. Wystarczy wtedy wykasować jego zawartość i utworzyć
nowy
dhcpd.leases
.
Uwaga: Uważaj korzystając z polecenia kasującego pliki (
rm
) – masz prawa roota i możesz
narobić wiele szkód.
rm -f /var/state/dhcp/* <Enter>
touch /var/state/dhcp/dhcpd.leases <Enter>
I taraz ponownie spróbój uruchomić serwer:
dhcpd <Enter>