http://www.baseciq.org/linux/dhcp DHCP Dynamic Host

Transkrypt

http://www.baseciq.org/linux/dhcp DHCP Dynamic Host
http://www.baseciq.org/linux/dhcp
DHCP
Dynamic Host Configuraton Protocol (dynamiczny protokół konfiguracji hostów) jest protokołem
umożliwiającym zdalną konfiguracje protokołu TCP/IP. Praktycznie każdy system operacyjny
posiadający obsługę TCP/IP oferuje możliwość pobrania konfiguracji TCP/IP poprzez DHCP, czyli
ustalenia: adresu IP, maski podsieci, domyślnej bramy w sieci, serwerów DNS, domeny w jakiej
hosty pracują, oraz wielu innych parametrów. W tym tekście opiszę jak skonfigurować prosty
serwer DHCP, dzięki któremu będziemy mogli automatycznie przydzielać adresy IP w sieci
lokalnej.
W praktyce DHCP jest przydatne chociażby do tego, iż M$ Windows po zainstalowaniu karty
sieciowej automatycznie sobie pobieże parametry konfiguracji, albo będzie można sobie ustalać
która osoba jaki adres IP ma posiadać w naszym lanie.
Zacznijmy konfigurować. Wbrew pozorom konfiguracja dhcp jest bardzo prosta. Plik
konfiguracyjny (/etc/dhcpd.conf) nie jest skomplikowany.
Na początek zdefiniujmy podsieć na w której ma działać serwer DHCP - parametry te muszą się
zgadzać z parametrami karty sieciowej na której ma pracować serwer. Jeżeli nasza sieć lokalna to
192.168.1.0/255.255.255.0 (adresy od 192.168.1.0 do 192.168.1.255) definujemy ją w taki sposób:
subnet 192.168.1.0 netmask 255.255.255.0 {
#
# Tutaj wstawiamy opcje tej podsieci, ale to zaraz ;-)
#
}
Tutaj mała uwaga - znakiem # poprzedzamy wszelakie komentarze. Oki teraz opcje tej podsieci:
range <adres ip startowy> <adres ip koncowy> - komendą range definujemy początkowy i
końcowy adres ip jaki może przydzielić DHCP. Np. range 192.168.1.100 192.168.1.200 spowoduje że serwer DHCP będzie przydzielał adresy od 192.168.1.100 do 192.168.1.200.
default-lease-time <czas w sekundach> - okres ważności dzierżawy adresu IP liczony w
sekundach. Poinformuje to komputer który skorzysta z DHCP o tym ile czasu spokojnie może ten
adres IP używać. Przykładowo dzierżawa na jeden dzień to: default-lease-time 86400.
option domain-name "domena" - ta opcja informuje o tym w jakiej domenie pracują komputery
w naszej sieci. Przykładowy wygląd tej opcji to: option domain-name "wiosenna.com".
option domain-name-servers <adres ip> [, adres ip] - tutaj definiujemy adres ip serwerów DNS
jakie mają używać komputery w naszej sieci lokalnej. Np. option domain-name-servers
192.168.1.1, lub option domain-name-servers 194.204.159.1, 194.204.152.34.
option subnet-mask <maska podsieci> - maska podsieci jaką ma ustawić sobie komputer kliencki.
Np. option subnet-mask 255.255.255.0.
option broadcast-address <adres rozgłoszeniowy sieci> - adres rozgłoszeniowy sieci (broadcast).
Np. dla sieci 192.168.1.0/255.255.255.0 wygląda to tak: option broadcast-address 192.168.1.255.
option routers <domyślna brama> - adres domyślnej bramy w podsieci (gateway'a). Np. u mnie
jest to 192.168.1.1, więc wpisuje: option routers 192.168.1.1.
Jak widać są to bardzo podstawowe parametry które przydadzą się w normalnych
nieskomplikowanych sieciach. Konfiguracja DHCP może być bardzo rozbudowana. Jeżeli szukacie
bardziej wyszukanych opcji polecam poczytać dokumentacje od DHCP. Oki, teraz stwórzmy
przykładowy plik konfiguracyjny który możemy napisać na podstawie powyższych parametrów (po
każdej opcji podajemy średnik):
# sieć 192.168.1.0/255.255.255.0
subnet 192.168.1.0 netmask 255.255.255.0 {
# domyślnie przydzielamy adresy 192.168.1.100-199:
range 192.168.1.100 192.168.1.199;
# na jeden dzień
default-lease-time 86400;
# poinformujmy że hosty będą korzystać z domeny ultra.net.pl
option domain-name "ultra.net.pl";
# niech używają naszego routera jako serwera DNS:
option domain-name-servers 192.168.1.1;
option routers 192.168.1.1;
# i dodatkowe info:
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
}
Więc mamy już skonfigurowaną sieć. Ale jak stworzyć wpisy dla konkretnych kart sieciowych?
Tworzymy w definicji podsieci definicje hosta:
subnet 192.168.1.0 netmask 255.255.255.0 {
#
# Tutaj opcje globalne jakie wpisaliśmy już
#
}
host ranger {
hardware ethernet 52:54:05:E1:EE:97;
fixed-address 192.168.1.6;
}
hardware ethernet - tutaj wpisujemy adres sprzętowy karty - w Windowsie możemy go odczytać po
uruchomieniu komendy winipcfg (Menu Start/Uruchom), w Linuxie komendą ifconfig (karty w
komputerze) lub z root'a komenda arp (wyświetli wszystkie karty które "słyszy" w sieci nasz
komputer). W opcji fixed-address podajemy adres ip dla danego komputera. Oczywiście w definicji
hosta możemy także użyć którejś z opcji globalnych, np. możemy podać konkretnemu komputerowi
żeby używał innego routera w sieci albo innego serwera DNS:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.199;
default-lease-time 86400;
option domain-name "ultra.net.pl";
option domain-name-servers 194.204.159.1, 194.204.152.34;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
host ranger {
hardware ethernet 52:54:05:E1:EE:97;
fixed-address 192.168.1.6;
option domain-name-servers 192.168.1.1;
option routers 192.168.1.2;
}
}
Uf. A co jeżeli mamy dwie karty sieciowe? Otóż wystarczy stworzyć poprostu drugą definicje
podsieci.
Uruchamianie (w Slackware) DHCP polega na wpisaniu z root'a komendy 'dhcpd', 'killall -9 dhcpd'
aby go zatrzymać. Jeżeli np. mamy w serwerze dwie karty sieciowe i tylko na jednej sieci chcemy
uruchomić DHCP, to poprostu wpisujemy 'dhcpd eth0' czy też 'dhcpd eth1'. Aby serwer DHCP się
uruchamiał automagicznie podczas startu systemu wpisujemy do /etc/rc.d/rc.local:
/usr/sbin/dhcpd (tutaj ewentualnie parametry)
W RedHatach i jemu podobnych:
chkconfig --level 345 on; chkconfig --lever 0126 off
A! W RH uruchamiamy DHCP w taki sposób:
/etc/rc.d/init.d/dhcpd (start|stop|restart)
W sumie to chyba wszystko tak na początek. Jeżeli chcesz więcej się nauczyć i rozumiesz do czego
służy DHCP polecam komendę 'man dhcpd.conf' ;).

Podobne dokumenty