SIECI
KOMPUTEROWE I - DHCP
DHCP (Dynamic Host Configuration Protocol) jest
protokołem komunikacyjnym umożliwiającym komputerom uzyskanie od serwera danych
konfiguracyjnych - adresu IP hosta, adresów bramy sieciowej oraz serwera DNS,
maski sieci. Protokół DHCP jest zdefiniowany w RFC 2131 i jest następcą BOOTP.
DHCP został opublikowany jako standard w roku 1993. W przeciwieństwie do
protokołu BOOTP protokół DHCP pozwala hostowi pobierać adres IP dynamicznie,
dzięki czemu administrator sieci nie musi tworzyć oddzielnych profili dla
każdego urządzenia. Do używania protokołu DHCP konieczne jest jedynie
zdefiniowane zakresu adresów IP na serwerze DHCP. Host, przyłączając się do
sieci, kontaktuje się z serwerem DHCP i żąda przypisania adresu. Serwer DHCP
wybiera adres i dzierżawi go odpowiedniemu hostowi. Protokół DHCP pozwala na
pobranie całej konfiguracji sieciowej komputera w jednym komunikacie. Oznacza
to pobranie wszystkich danych przesyłanych w komunikacie BOOTP oraz
wydzierżawionego adresu IP i maski podsieci.
Główną zaletą protokołu DHCP w porównaniu z protokołem BOOTP jest możliwość
obsługi użytkowników mobilnych. Mobilność umożliwia użytkownikom swobodną
zmianę połączeń sieciowych w zależności od miejsca pracy. Nie ma tutaj
występującej w systemie BOOTP potrzeby przechowywania stałego profilu dla
każdego urządzenia przyłączonego do sieci. Ważną zaletą protokołu DHCP jest
możliwość wydzierżawienia adresu IP oraz odzyskania go w celu przypisania
innemu użytkownikowi, gdy pierwszy użytkownik zwolni ten adres. Oznacza to, że
protokół DHCP umożliwia utworzenie relacji jeden do wielu między adresami IP i
komputerami, a także że adres jest dostępny dla każdego, kto przyłącza się do
sieci.
Protokół DHCP opisuje trzy techniki
przydzielania adresów IP:
Serwer DHCP może dostarczać swoim
klientom dodatkowe dane pozwalające na konfigurację sieci. Zostały one opisane
w specyfikacji RFC 2132. Niektóre z
dodatkowych opcji:
Historia i standaryzacja
1985 – BOOTP (Bootstrap
Protocol)
dla bezdyskowych stacji
roboczych,
poznanie własnego adresu IP oraz
poło˙zenia obrazu rozruchowego
do załadowania systemu
operacyjnego.
1993 – RFC 1531
pierwsza wersja DHCP.
1997 (RFC 2131)
obecnie stosowana wersja.
DHCPv6 (RFC 3315)
DHCP dla IPv6.
Authentication for DHCP Messages (RFC 3118)
rozszerzenia dla
bezpiecze´nstwa.
DHCP – problemy z bezpieczenstwem
Usługa zbudowana na
niezabezpieczonych IP i UDP.
Mo˙zna uruchomi´c
nieautoryzowany serwer
DHCP:
przypisywanie fałszywych
adresów,
przypisywanie duplikatów
adresów,
przypisywanie nieprawidłowego
adresu rutera,
przypisywanie nieprawidłowego
adresu serwera nazw.
Mo˙zna uruchomi´c
nieautoryzowanego klienta:
zdobywanie informacji
przeznaczonych dla tego klienta,
przy dynamicznym przyznawaniu
adresów, mo˙zliwe wyczerpanie
puli adresów serwera.
W warstwie sieciowej poza
protokołem IP (przesyłanie danych) istnieje
kilka protokołów steruja˛cych:
ICMP
ARP
RARP
BOOTP
DHCP
Termin |
Opis |
zakres |
Zakres jest pełnym obszarem kolejnych możliwych
do przydzielenia w danej sieci adresów IP. Zakresy zwykle określają
pojedynczą podsieć fizyczną danej sieci, w której są oferowane usługi DHCP.
Ponadto zakresy są dla serwera podstawą zarządzania dystrybucją i
przypisywaniem klientom w sieci adresów IP oraz innych związanych z nimi
parametrów konfiguracji. |
superzakres |
Superzakres jest administracyjną
grupą zakresów, która może być używana do obsługi wielu logicznych podsieci IP
w tej samej podsieci fizycznej. Superzakresy zawierają jedynie listę zakresów składowych (inaczej zakresów podrzędnych), które mogą być
uaktywniane razem. Superzakresy nie są używane do konfigurowania innych
szczegółów dotyczących korzystania z zakresu. Aby skonfigurować większość
właściwości używanych w obrębie superzakresu, trzeba indywidualnie
skonfigurować właściwości zakresów składowych. |
obszar wykluczeń |
Obszar wykluczeń jest ograniczoną
sekwencją adresów IP w zakresie, wykluczoną z ofert usługi DHCP. Obszary
wykluczeń zapewniają, że żaden z należących do nich adresów nie będzie
oferowany przez serwer klientom DHCP w danej sieci. |
pula adresów |
Po zdefiniowaniu zakresu DHCP i zastosowaniu
obszarów wykluczeń pozostałe adresy tworzą dostępną pulę adresów w zakresie. Adresy z tej
puli mogą być dynamicznie przypisywane przez serwer klientom DHCP w sieci. |
dzierżawa |
Dzierżawa to określony przez serwer DHCP czas,
przez jaki komputer kliencki może korzystać z przypisanego mu adresu IP. Gdy
dzierżawa zostanie utworzona dla klienta, staje się aktywna. Przed wygaśnięciem dzierżawy
adresu klient zwykle odnawia ją na serwerze. Dzierżawa staje się nieaktywna, jeśli wygaśnie lub
zostanie usunięta z serwera. Czas trwania dzierżawy określa, kiedy dzierżawa
wygasa i jak często klient musi ją odnawiać. |
zastrzeżenie |
Zastrzeżenie służy do utworzenia
przez serwer DHCP stałego przypisania dzierżawy adresu. Zastrzeżenia dają
pewność, że dane urządzenie sprzętowe w podsieci będzie mogło zawsze korzystać
z tego samego adresu IP. |
typy opcji |
Typy opcji są innymi
parametrami konfiguracji klienta, które serwer DHCP może przypisywać klientom
razem z dzierżawami. Na przykład niektóre powszechnie używane opcje obejmują
adresy IP domyślnych bram (routerów) oraz serwerów WINS i DNS. Zwykle te typy
opcji są włączane i konfigurowane dla każdego zakresu. Konsola DHCP umożliwia
również konfigurowanie domyślnych typów opcji używanych przez wszystkie
zakresy dodane i skonfigurowane na serwerze. Większość opcji jest wstępnie
zdefiniowana na podstawie specyfikacji RFC 2132, ale w razie potrzeby
konsoli DHCP można użyć do zdefiniowania i dodania niestandardowych typów
opcji. |
klasa opcji |
Klasa opcji daje serwerowi
dodatkową możliwość zarządzania typami opcji dostarczanych klientom. Po
dodaniu na serwerze klasy opcji klientom tej klasy można dostarczać typy
opcji specyficzne dla danej klasy. W przypadku systemów Microsoft®
Windows® 2000 i Windows XP komputery klienckie mogą podczas
komunikowania się z serwerem określać również identyfikator klasy. W
przypadku starszych klientów DHCP, którzy nie obsługują procesu identyfikacji
klas, serwer można skonfigurować do używania klas domyślnych i w nich
umieścić tych klientów. Istnieją dwa typy klas opcji: klasy dostawców i klasy
użytkowników. |
DHCP
Cały proces uzgadniania i przydzielania jest
czteroetapowy.
Ujawnienie DHCP (Discover)
Klient protokołu DHCP emituje pakiet żądania
konfiguracji DHCPDISCOVER, dostarczając swój adres MAC oraz nazwę hosta. Jeżeli
dany klient miał wcześniej przydzielony adres IP, to wysyła również tę
informację w polu opcji żądany adres. W ten sposób klient często utrzymuje ten
sam adres, nawet jeżeli został wyłączony na dłużej niż czas trwania jego
dzierżawy.
Oferta DHCP
Każdy serwer DHCP otrzymujący żądanie odpowiada
pakietem emisji DHCPOFFER, zawierającym oferowany adres IP (jeżeli ma jeden lub
więcej nieprzydzielonych) oraz jego własny adres IP. Serwery DHCP na dalekim
końcu routera mogą odpowiadać na emisję DHCPDISCOVER pod warunkiem, że router
ma włączone przesyłanie ruchu emisji DHCP.
Żądanie DHCP (Request)
To kolejny pakiet również wysyłany przez klienta
jako rozgłoszenie. Powodem takiego postępowania jest potrzeba powiadomienia
jednego serwera o przyjęciu oferty i, jednocześnie, wszystkich pozostałych o
jej odrzuceniu. W przypadku odebrania wielu ofert DCHP, proces podejmowania
decyzji przez klienta firmy Microsoft przebiega następująco:
·
klient DHCP
przyjmuje ofertę z serwera, który przydzielał adres IP używany ostatnio,
·
jeżeli
serwer przydzielający wcześniejszy adres nie odpowiada, przyjmowana jest
pierwsza oferta odebrana.
Potwierdzenie DHCP
Serwer DHCP oficjalnie przydziela żądany adres
klientowi w pakiecie emisji DHCPACK. Pakiet zawiera również podane w żądaniu
parametry opcjonalne, długość całkowitego okresu dzierżawy adresu oraz okresów
jego odnawiania. Serwer przechowuje te informacje w swojej bazie danych jako
przydzieloną dzierżawę.
Odświeżanie
(odnawianie) DHCP
Nieodłącznym elementem przydzielenia klientowi adresu
IP przez serwer DHCP jest przyznanie dodatkowo tzw. czasu użytkowania (lease).
Określa on czas ważności ustawień. W tle pracują dwa zegary - T1 odmierza
połowę czasu użytkowania, zaś T2 - 87,5 procent pełnego czasu użytkowania. Obie
wartości można zmienić w opcjonalnych ustawieniach serwera DHCP - jeśli takie
funkcje zostały zaimplementowane. Po upływie czasu T1 klient wysyła komunikat
DHCPREQUEST do serwera i pyta, czy serwer może przedłużyć czas użytkowania.
Stan ten określa się jako renewing status. Z reguły serwer odpowiada
wiadomością DHCPACK i przydziela nowy czas użytkowania. Serwer resetuje wówczas
zegary T1 i T2.
Jeżeli po upływie czasu T2 klient nie otrzyma
wiadomości DHCPACK, rozpoczyna się tak zwany rebinding status. Klient musi
wysłać komunikat DHCPREQUEST, żeby uzyskać przedłużenie czasu użytkowania.
Serwer może odpowiedzieć na to żądanie potwierdzeniem DHCPACK. Jeżeli jednak i
to żądanie pozostanie bez odpowiedzi, klient musi zażądać nowego adresu IP.
Wkracza wówczas ponownie opisany na początku mechanizm, który rozsyła zapytania
do wszystkich serwerów DHCP w sieci.
Obszar adresowania a
czas użytkownika
Zanim serwer DHCP będzie w ogóle mógł zacząć
przydzielać klientom adresy IP, musi zostać wyposażony w informacje na temat przewidzianego
do tych celów obszaru adresowego (rangę). Obszar adresowy jest zdefiniowany
poprzez adres początkowy i końcowy. W zależności od implementacji mogą też być
obszary wykluczone, a więc takie, których serwer nie może przydzielać.
Gwarantuje to bezkolizyjne współistnienie w sieci adresów stałych i dynamicznie
przydzielanych. Czas użytkowania określany jest zwykle w dniach, godzinach
i minutach. Nie ma w tym względzie żadnej złotej reguły. Parametr ten,
jeśli w ogóle jest zaimplementowany w poszczególnych produktach, musi
uwzględniać obciążenie serwera, zachowanie klientów i stabilność sieci.
Decydujące znaczenie ma liczba potencjalnych klientów. Reguła brzmi: czas
użytkowania powinien być dwukrotnie dłuższy niż czas potrzebny do przywrócenia
pracy serwera w razie jego awarii. W przypadku długiego czasu użytkowania,
odpowiednio później uwzględniane są zmiany opcji DHCP po stronie klientów.
Klient wysyła rozgłoszeniową ramkę
ethernetową - Ethernet broadcast.
Wysyłana ramka nie zawiera adresu żródłowego IP (gdyż najczęściej klient
jeszcze nie posiada przydzielonego IP), oraz podaje jako adres docelowy IP
255.255.255.255 : dowolny adres. Następne pola ramki zawierają :
Odpowiedź z serwera DHCP: |
Literatura
Wzorcowa implementacja Internet
Software Consortium
http://www.isc.org/products/DHCP/
dostępna dla większości systemów
uniksowych i dla Windows.
PRZYKŁADOWE ROZWIĄZANIE
1.
A) Edycja: /etc/sysconfig/network-scripts/ifcfg-eth0
: BOOTPROTO=dhcp ONBOOT=yes Restart sieci: # service network restart B) Edycja /etc/sysconfig/dhcpd: DHCPDARGS=eth0 C) Edycja /etc/dhcpd.conf : ddns-update-style none; subnet 192.168.15.0 netmask
255.255.255.0 { option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.15.17
192.168.15.33; } Uruchomić
serwer dhcpd: #
dhcpd –d Klient
po restarcie sieci (# service network restart)
powinien otrzymać adres z wybranej puli. 2. ADRES ROZGŁOSZENIOWY, BRAMA DOMYŚLNA,
2 SERWERY DNS. Edytujemy
/etc/dhcpd.conf : ddns-update-style
none; subnet 192.168.15.0 netmask
255.255.255.0 { option subnet-mask 255.255.255.0; range dynamic-bootp
192.168.15.17 192.168.15.33; option routers 192.168.15.1; option domain-name-servers 192.168.15.15,
192.168.15.16; option broadcast-address 192.168.15.255; } Restart
serwera: #
service dhcpd restart W
kliencie po restarcie sieci sprawdzić: -
serwery DNS: # cat /etc/resolv.conf ,
plik powinien zawierać adresy serwerów: nameserver 192.168.15.15 nameserver 192.168.15.16 -bramę domyślną
w tablicy routingu: # router -n 3. PRZYDZIELANIE TYCH SAMYCH ADRESÓW IP. Edycja
/etc/dhcpd.conf : ddns-update-style
none; subnet 192.168.15.0 netmask
255.255.255.0 { option subnet-mask 255.255.255.0; range dynamic-bootp
192.168.15.17 192.168.15.33; option routers 192.168.15.1; option domain-name-servers 192.168.15.15,
192.168.15.16; option broadcast-address 192.168.15.255; host klient{ hardware ethernet
00:02:44:93:f0:b0; fixed-address
192.168.15.3 } } Pliki *.leases Informacje
o wypożyczeniach adresów zapisane są w plikach: - serwer:
var/lib/dhcpd/dhcpd.leases - klient:
var/lib/dhcp/dhclient.leases |
Plik
konfiguracyjny to /etc/dhcpd.conf |
Logowanie
na serwer: login:
admin brak
hasła <tab>
-2xtabulator wyświetla polecenia dostępne
na danym poziomie ..
-powrót o poziom wyżej >
-polecenia wpisywane na mikrotik'u #
-polecenia wpisywane na komputerze stacjonarnym (sys. Linux) Hierarchiczna
konstrukcja polecen. Wycofanie
do poziomu nadrzednego: .. Odwołanie
do polecenia z poziomu nadrzednego poprzez / np : /system
reset Polecenie
sprawdzajace adresy ip : Ip
address> print Dodanie
nowego adresu: ip address> add adress: 192.168.10.15/24 interface: ether1 Dodawanie
z poziomu nadrzednego dla ip address : Ip> add address= 192.168.10.15/24
interface=ether1 broadcast=192.168.15.254 Blokowanie/Odblokowanie
adresu : Ip
address> disable 1 Ip
address> enable 1 (cyfra
jest numerem przyporzadkowanym adresowi, można ja sprawdzic poleceniem print,
które wypisze adresy) Edytowanie adresu: Ip address> Set 1 interface=ether1 KONFIGURACJA DHCP NA MIKROTIKU (1) Widok
po wywołaniu polecenia print : > address
network broadcast interface 1
192.168.10.15/24 192.168.10.0 192.168.10.255 ether1 Ustawiamy adres IP na komputerze hosta # ifconfig eth1
192.168.10.15/24 Konfiguracja
serwera DHCP na Mikrotiku. Ustawiamy
zakres przydzielanych adresów: > ip pool add name: dhcp-pool ranges: 192.168.10.18-192.168.10.111 Ustawiamy
siec w jakiej serwer bedzie działał oraz wpisujemy serwery DNS >
ip dhcp-server network
add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=11.11.11.11,11.22.33.44 Dodajemy serwer DNS >
ip dhcp-server add
interface=ether1 address-pool-dhcp-pool Restartujemy interfejsy hosta #service
network restart Sprawdzamy
czy zostały przydzielone adresy z puli. podgladamy plik
/var/lib/dhclient/dhclient-eth0.leases Sprawdzamy
czy otrzymalismy adresy DNS. podgladamy
plik /etc/resolv.conf Przydzielamy
statyczny adres dla jednego z klientów. Sprawdzamy komu zostały przydzielone
adresy IP >
ip dhcp-server lease
print Ustawiamy statyczny adres >
ip dhcp-server lease make
static number: 1 KONFIGURACJA DHCP NA MIKROTIKU (2) Resetujemy
konfiguracje serwera: >
system > reset-configuration Wyświetlenie
dostępnych interfejsów: >
interface > print Wchodzimy
do poziomu IP i sprawdzamy adres IP >
ip > address > print Polecenie
print pokazało puste pole, wiec ustawiamy adres ip >
ip > address > add Ustawiamy
IP na 192.168.10.15 z maska 24 bitowa na interfejsie Ether 2. Adres
logiczny IP można ustawić dodatkowo poleceniem > ip >
address > add address=192.168.15.7/24 interface=ether2 Sprawdzamy
poprawność wykonanych poleceń
wpisując print, które wyświetli nam
przypisane adresy. >
ip > address > print Polecenie
enable/disable [numer rekordu] włączamy/wyłączamy
dane IP na interfejsie.
Poleceniem 'set' możliwe jest edytowanie wpisów. Zmieniamy interfejs dla 1 rekordu > ip >
address > set 1 interface=ether1 Polecenie
remove usuwa dodany rekord. Usuwamy 1 rekord w tabeli >
ip > address > remove 1 Ustawiamy
na komputerze stacjonarnym IP z podsieci oraz podłączamy
do mikrotik'a,
w naszym przypadku do interfejsu ether2: #
ifconfig eth0 192.168.10.16/24 Ustawiamy
zakres IP przydzielanych przez serwer > ip > pool
> add name: siec ranges: 192.168.10.5-192.168.10.66 Wchodzimy
na poziom DHCP-server i dodajemy server: > ip > dhcp-server > add interface: ether2 Polecenie
print pokazało że server został dodamy ale
jest w stanie disable. poleceniem
set dodajemy nasz zakres adresow IP raz włączamy
server > ip > dhcp-server > set 0 address-pool=siec >
ip > dhcp-server > enable 0 Resetujemy
ustawienia sieciowe na komputerze stacjonarnym: #
service network restart Serwer
przydzielił adres IP dla komputera stacjonarnego, w naszym przypadku np.
adres 192.168.10.66. Liste przydzielonych adresów IP można sprawdzić na
MikroTik'u przez polecenie >
ip > dhcp-server > lease > print Aby
dany rekord był adresem statycznym zawsze przydzielanym przez serwer dla
danego komputera wpisujemy polecenie: > ip > dhcp-server > lease > make-static 0 Następnie
ustawiamy bramę domyślną
oraz dodajemy dwa DNS'y > ip > dhcp-server > network > add address=192.168.10.0/24 gateway=192.168.10.15
dns-serwer=1.2.3.4,5.6.7.8 Sprawdzamy
poprawność wpisanych poleceń
na komputerze stacjonarnym, resetując ustawienia
sieci: #
service network restart #
route -n |