background image

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 rangeoption routersoption 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).  

background image

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

 

background image

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>