DHCP w Windows Server 2000/2003 - Arek Iskra

Transkrypt

DHCP w Windows Server 2000/2003 - Arek Iskra
Domain Host Configuration Protocol - jak tego używać?
DHCP w Windows Server 2000/2003
Protokół dynamicznej konfigubrak możliwości konfiguracji
racji hosta DHCP (ang. Domain
dodatkowych parametrów (np.
Host Configuration Protocol) został
maski podsieci),
Arkadiusz Iskra opracowany z myślą o uproszczeadministrator sieci musiał ręcznie
[email protected]
niu administrowania konfiguracjami
przypisać adres IP dla poszczególOd dzieciństwa pasjonował
adresów
IP.
Wdrożenie
tej
usługi
nych kart sieciowych i ich adresów
się komputerami, choć wiele
MAC na serwerze.
wody upłynęło w Wiśle zanim w sieci lokalnej eliminuje potrzebę
w domu pojawiła się pierwsza
ręcznego
przydzielania
adresów
IP
Wkrótce
też RARP został zastąpiony
maszyna. Jednak dostęp
do fachowych czasopism poszczególnym komputerom oraz BOOTP (Bootstrap Protocol), który
i komputerów znajomych
pozwala na zcentralizowane zarzą- został dokładnie scharakteryzowany
pozwolił na realizowanie
w RFC 951, 1533 i 1542. Protokół
hobby, a w poźniejszym dzanie tymi adresami.
czasie na znalezienie pracy
ten pozwalał już na przypisywanie
w branży. Na codzień mieszka
dodatkowych parametrów, takich jak
w Singapurze. W pracy i w życiu Trochę historii
prywatnym realizuje swoje
Korzenie
DHCP
sięgają
czasów,
maska podsieci czy adres routera.
wieloletnie zainteresowania,
stawiając wyzwanie kiedy były popularne (głównie Umożliwiał też komunikację z serwewszelkiego rodzaju problemom
ze względów ekonomicznych) bez- rami BOOTP na innych segmentach
komputerowym. Po kilku latach
przerwy, znowu w gronie dyskowe stacje robocze, jak również sieci poprzez zastosowanie agentów
kolegów z IT FAQ (choć trzeba
adres IP, aby komputer mógł zaistnieć przekazywania (ang. Relay Agents).
było niesamowitego zrządzenia
losu, aby do tego doszło). w sieci. By sprostać wymaganiom, Ciągle jednak administrator musiał
grupa inżynierów pod kierownic- ręcznie skonfigurować serwer tak, aby
twem Rossa Finlayssona opracowała przydzielał adres IP klientom sieci.
protokół RARP (Reverse Address Re- Jak łatwo się domyślić, prowadziło
solution Protocol), szczegółowo opi- to do błędów w postaci duplikujących
sany w RFC (Request for Comments) się adresów IP w sieci, czy pomyłek
903. Protokół ten jest spokrewniony we wprowadzaniu adresu MAC.
Protokół dynamicznej konfiguracji hosta
DHCP (Domain Host Configuration Protocol)
został opracowany z myślą o uproszczeniu
administrowania konfiguracjami
adresów IP. Wdrożenie tej usługi w sieci
lokalnej eliminuje potrzebę ręcznego
przydzielania adresów IP poszczególnym
komputerom oraz pozwala na
zcentralizowane zarządzanie tymi
adresami.
z ARP (Address Resolution Protocol)
używanym do dziś. Różnica polega
na tym, ze RARP przekładał adres
MAC karty sieciowej na adres IP
(ARP czyni dokładnie odwrotnie).
Szybko okazało się jednak, ze RARP
nie spełnia pokładanych w nim oczekiwań. Główne ograniczenia to:
16
IT FAQ
maj 2004
W końcu projektanci zdołali jasno
określić wymagania, jakie powinien
spełniać protokół BOOTP tak, aby zapewniać automatyczną konfigurację
IP klientów sieci. Wymagania te były
następujące:
pozbycie się ręcznej konfiguracji
– każdy klient sieci powinien być
w stanie uzyskać odpowiednią konfigurację bez ingerencji ze strony
użytkownika czy administratora.
Administrator nie powinien być
zmuszony do indywidualnego
konfigurowania klientów czy też
przydzielania im dodatkowych
parametrów,
DHCP nie powinien wymagać
osobnego serwera na każdej
z podsieci – aby dać możliwość
dalszego rozwoju sieci, jak również ze względów ekonomicznych,
DHCP powinien współpracować
z routerami, ewentualnie wspomagać zastosowanie agenta przekazywania BOOTP,
klient powinien być przygotowany na otrzymanie wielokrotnych
odpowiedzi dotyczących konfiguracji – niektóre instalacje sieciowe
wymagają istnienia kilku serwerów
DHCP, m.in. dla zapewnienia lepszej wydajności oraz bezawaryjności,
DHCP musi koegzystować z klientami, którym statycznie przydzielono
konfigurację,
DHCP musi uwzględniać istniejące
implementacje protokołów sieciowych,
DHCP musi współpracować z istniejącymi klientami BOOTP,
DHCP ma zapewnić, że żaden
z przydzielonych adresów IP nie
zostanie użyty w tym samym czasie
przez innego klienta sieci,
klient DHCP powinien zachować
konfigurację po restartowaniu
komputera – o ile jest to możliwe,
host powinien otrzymać tę samą
konfigurację, co poprzednio,
klient powinien zachować konfigurację po zrestartowaniu serwera
DHCP – jak poprzednio, o ile
to możliwe klient powinien utrzymać ta samą konfigurację co przed
restartem serwera,
uwzględnienie innych klientów,
którym konfiguracja została przypisana ręcznie.
W ten sposób powstał dokument
RFC 2131 definiujący protokół dynamicznej konfiguracji hosta DHCP (ang.
Domain Host Configuration Protocol).
Protokół ten działa w oparciu o mechanizm typu klient/serwer i spełnia dwa
podstawowe zadania:
1. dynamicznie przydziela adres IP
klientom sieci na zasadzie dzierżawy,
2. pozwala na automatyczną konfigurację dodatkowych parametrów
TCP/IP, takich jak domyślny router,
maska podsieci, adres serwera
DNS czy WINS.
Jak to działa
Jak wspomniano powyżej, usługa
DHCP korzysta z modelu klient-serwer.
Administrator sieci instaluje jeden lub
więcej serwerów DHCP, które przechowują informacje o konfiguracji TCP/IP
i przekazują je klientom. W bazie
danych serwera znajdują się m.in.
następujące informacje:
prawidłowe parametry konfiguracji
wszystkich klientów w sieci,
pula
prawidłowych
adresów
IP dostępnych klientom, adresy
zarezerwowane dla konkretnych
maszyn oraz adresy zastrzeżone
do przydzielania ręcznego,
czas trwania dzierżawy oferowany
przez serwer, dzierżawa określa
czas, przez jaki może być używany
przydzielony adres IP.
Alokacja adresów IP
Aby serwer mógł przydzielić poprawny adres IP klientowi sieci, musi
najpierw zostać zdefiniowana pula
dostępnych adresów, inaczej zakres
(ang. scope). Definiuje się go odrębnie dla każdej podsieci. Kiedy klient
próbuje uzyskać adres IP, serwer
przydziela adres ze zdefiniowanego
zakresu i odpowiednio aktualizuje
swoją bazę danych, aby zaznaczyć,
że ten adres jest już w użyciu. Baza
danych jest aktualizowana na bieżąco tak, by serwer nie przydzielił żadnemu z klientów adresu, który jest
już w użyciu. Adres IP może zostać
przydzielony klientowi na trzy różne
sposoby:
ręcznie – znajduje to zastosowanie w przypadku, gdy komputer
musi korzystać na stałe z określonego adresu IP (np. serwer
WWW czy DNS),
automatycznie – kiedy klient
otrzymuje adres IP ze zdefiniowanego na serwerze zakresu,
konfiguracja taka zostaje zachowana dopóki administrator
sam nie zmieni ustawień. Jest
to przydatne w sytuacji, gdy komputer rzadko zostaje przenoszony
z jednej podsieci do drugiej, albo
gdy dysponujemy wystarczającą
ilością wolnych adresów IP. Takie
rozwiązanie pozwala również
ograniczyć zbędny ruch w sieci
spowodowany przesyłaniem komunikatów DHCP,
dynamicznie – adres IP zostaje
przydzielony na zasadzie dzierżawy. W momencie przydzielenia adresu zaczyna się okres
odliczania czasu pozostałego
do odnowienia dzierżawy. Jeśli Rys. 1: Format komunikatu DHCP
klient nie odnowi na czas swojej
dzierżawy, adres zostaje zwrócoSecs (2 bajty) – czas (w sekundach)
ny do puli na serwerze. Pozwala
od rozpoczęcia dzierżawy albo
to na dowolne przenoszenie komprocesu odnowy dzierżawy,
puterów pomiędzy podsieciami
Flags (2 bajty) – wskazuje czy serbez obawy, że limit dostępnych
wer DHCP i agent przekazywania
adresów IP się wyczerpie.
powinny używać emisji (broadcast)
czy bezpośrednio komunikować się
Komunikaty DHCP
z klientem (unicast),
Zarówno klient, jak i serwer DHCP
Ciaddr (4 bajty) – zawiera adres IP
używają tego samego formatu komuklienta, gdy ten znajduje się w fazie
nikatu, aby przesyłać sobie wzajemnie
pozyskiwania albo odnawiania adinformacje. Format ten został przedstaresu,
wiony na Rys. 1.
Yiaddr (4 bajty) – zawiera adres IP
A oto bardziej szczegółowe objaoferowany klientowi przez serwer,
śnienie wszystkich pól:
Siaddr (4 bajty) – określa adres IP
Op (1 bajt) – określa, czy komunastępnego serwera w sekwencji
nikat został wysłany z klienta lub
bootstrap. Używany tylko w przyserwera,
padku, gdy serwer DHCP dostarHtype (1 bajt) – typ fizycznego
cza wykonywalny plik startowy
adresu w polu Chaddr,
do bezdyskowej stacji roboczej,
Hlen (1 bajt) – długość fizycznego
Giaddr (4 bajty) – jeśli to konieczadresu w polu Chaddr (w bajtach),
ne, zawiera adres agenta przekaHops (1 bajt) – liczba routerów
zywania umieszczonego na innym
pomiędzy klientem a serwerem,
segmencie sieci,
Xid (4 bajty) – zawiera identyfiChaddr (16 bajtów) – zawiera
kator transakcji, używany do kojafizyczny adres klienta, używając
rzenia wywołań ze strony klienta
do tego typu i długości określonych
i odpowiedzi serwera,
w polach Htype i Hlen,
maj 2004
IT FAQ
17
Rys. 2: Zaawansowane opcje DHCP używane w Microsoft Windows Server 2000 i 2003.
Sname (64 bajty) – zawiera albo
nazwę hosta serwera DHCP, albo
informacje nie mieszczące się
w polu Options,
File (128 bajtów) – zawiera nazwę
i ścieżkę dostępu do wykonywalnego pliku startowego dla bezdyskowych stacji roboczych,
Options (zmienna) – zawiera opcje
DHCP, które służą do określania
parametrów konfiguracji klienta. Pole Options musi zawierać
przynajmniej jeden, ale może też
zawierać wiele parametrów DHCP.
Oto niektóre z nich:
Typ komunikatu – określa
funkcję, jaką spełnia komunikat
DHCP, których jest w sumie
osiem:
DHCPDISCOVER – używana
przez klienta w celu zlokalizowania serwera DHCP wtedy,
kiedy ubiega się on o otrzymanie adresu IP i innych parametrów,
DHCPOFFER – odpowiedź serwera na DHCPDISCOVER z ofertą
parametrów DHCP,
DHCPREQUEST
–
zachodzi
w przypadku, kiedy klient prosi
jeden z dostępnych serwerów
DHCP o parametry konfiguracji,
jednocześnie odrzucając ofertę
18
IT FAQ
maj 2004
innych serwerów; lub potwierdza aktualność otrzymanej
konfiguracji, np. po restarcie;
albo chce przedłużyć okres
dzierżawy danego adresu IP,
DHCPACK – pozytywna odpowiedź serwera na prośbę
klienta zawierająca parametry
konfiguracji i adres IP,
DHCPNACK – negatywna odpowiedź ze strony serwera na żądanie klienta (np. w przypadku,
gdy klient znajduje się w innej
podsieci, albo gdy dzierżawa
wygasła),
DHCPDECLINE – używana przez
klienta w celu odrzucenia oferowanego mu adresu IP,
DHCPRELEASE – stosowana
przez klienta, aby zakończyć
okres dzierżawy,
DHCPINFORM – używana przez
klienta w celu otrzymania dodatkowych parametrów konfiguracji TCP/IP. W przypadku, gdy
klient został skonfigurowany
ręcznie, opcja ta jest używana,
aby poinformować o tym fakcie
serwer DHCP.
Opcje BOOTP – początkowo opcje
BOOTP zostały sklasyfikowane w RFC
1497. Przez lata jednak dokonano
szeregu zmian i poprawek, które zostały uwzględnione w FC 2132, w dokumencie zawierającym zarówno opis
wcześniej scharakteryzowanych opcji
BOOTP, jak i nowych opcji specyficznych dla DHCP. Wśród opcji BOOTP
warto wymienić następujące:
Subnet mask – definiuje maskę
podsieci,
Router – określa adres IP domyślnego routera w sieci lokalnej,
do którego klient powinien się
odwoływać w celu nawiązania
komunikacji z innymi sieciami,
Domain Name Server – określa adres IP serwera lub serwerów DNS,
których klient powinien używać,
WINS Server – definiuje adres serwera lub serwerów WINS,
Host Name – przydziela klientowi
nazwę hosta DNS,
Domain Name – określa nazwę
domeny, w której znajduje się
dany klient.
Opcje stosowane przez Microsoft
Windows Server 2000 i 2003 zostały
przedstawione w Ramce.
Opcje zaawansowane: klasy
producenta
W specyfikacji DHCP uwzględniono również możliwość konfiguracji
własnych opcji przez niezależnych
producentów oprogramowania. Aby
upewnić się, że dodatkowe parametry
konfiguracji są przekazane tylko tym
komputerom, które używają oprogramowania danego producenta, stosuje
się tzw. identyfikator klasy producenta
(z ang. vendor class identifier). Klasy
producenta są na stałe wpisane w system operacyjny i nie można ich zmienić. Zostają one przyporządkowane
komputerowi w zależności od tego,
jaki system operacyjny został na nim
zainstalowany. Jak widać na Rys. 2,
Microsoft udostępnia cztery możliwości wyboru w tym zakresie:
1. Microsoft Options,
2. Microsoft Windows 2000 Options,
3. Microsoft Windows 98 Options,
4. Standardowe opcje DHCP.
I tak na przykład wszystkim komputerom opartym na Microsoft Windows
2000 zostanie automatycznie przypisana klasa Microsoft Windows 2000
Options, a wszystkim komputerom,
które używają Windows 98 czy Me –
klasa Microsoft Windows 98 Options.
Warto przy tym zauważyć, że gdy wybierzemy Standardowe opcje DHCP,
mamy dostęp do podstawowych
opcji uwzględnionych w RFC 2132.
Co ciekawe w przypadku wyboru
Microsoft Windows 98 Options lista
jest pusta. Widocznie firma Microsoft
przewidziała możliwość konfiguracji
dodatkowych opcji dla Windows 98
i Me, ale nigdy z tej możliwości nie
skorzystała. W przypadku pozostałych dwóch możliwości wyboru – Microsoft Options i Microsoft Windows
2000 Options – ukażą nam się te
same, następujące opcje:
1. 001 Microsoft Diable NetBIOS
Option – pozwalająca wyłączyć interfejs NetBIOS-over-TCP (NetBT).
W przypadku, gdy nasza sieć
zbudowana jest w oparciu o systemy działające na Windows 2000
i powyżej, pozwala to na wyraźną
poprawę wydajności (aby opcja
zadziałała należy w polu wartości
wprowadzić 0x2). Sieci, w których
znajdują się Windows NT ciągle
niestety potrzebują NetBT.
2. 002 Microsoft Release DHCP Lease
on Shutdown Option – aktywacja
tej opcji spowoduje, że klient zakończy dzierżawę adresu DHCP
podczas zamykania systemu. Jest
to przydatne w przypadku użytkowników, którzy często zabierają
ze sobą komputer do domu lub
używają go zarówno w biurze,
jak i w podróży służbowej. Gdy
użytkownik zechce się połączyć
np. z firmowym serwerem poczty
korzystając z modemu, zaoszczędzi to trudu ręcznego odnowienia
adresu IP przy użyciu polecenia
IPCONFIG/RELEASE i IPCONFIG/
RENEW.
Rys. 3: Definiowanie nowej klasy producenta/użytkownika w Microsoft Windows Serwer 2000 i 2003.
3. 003 Microsoft Default Router Metric
Base – pozwala na zmianę metryki
Default Routing and Remote Access dows Server 2000 i 2003, dokonuje
dla domyślnego routera/ domyślClass – używana przez komputery się tego z konsoli MMC dla DHCP, jak
nej bramy. Szczerze mówiąc,
łączące się z siecią przy zastoso- ilustruje Rys. 3.
trudno sobie wyobrazić sytuację,
waniu RRAS,
w której zastosowanie tej opcji
Domyślna klasa użytkownika – kla- Proces negocjacji konfiguracji
byłoby naprawdę przydatne.
sa ta używana jest we wszystkich DHCP
innych przypadkach: gdy klient nie
Aby komputer został skonfigurowany
Opcje zaawansowane: klasy
należy do żadnej uprzednio zdefi- jako klient DHCP, musi najpierw nastąużytkownika
niowanej klasy, kiedy klient DHCP pić wymiana odpowiedniej informacji
W odróżnieniu od klas producennie rozpoznaje pojęcia klasy (na pomiędzy serwerem a klientem. Podta, klasy użytkownika mogą zostać
przykład Windows NT – wtedy czas startu klient emituje serię pakietów
przyporządkowane
dowolnemu
RFC 2132 nie było jeszcze oficjal- używając komunikatu DHCPDISCOVER
komputerowi lub grupie komputerów
nie przyjętym standardem) itp.
(emisja to jedyny sposób, w jaki klient
w sieci. Znajdują one zastosowanie
Zarówno w przypadku klas produ- może wysłać wiadomość, gdyż nie
w przypadkach, kiedy chcemy wy- centa, jak i klas użytkownika, istnieje posiada on jeszcze własnego adresu
odrębnić daną grupę komputerów możliwość zdefiniowania własnych IP). Celem transmisji jest odnalezienie doi przypisać im inne parametry DHCP. opcji. Posługując się przykładem Win- stępnego w sieci serwera DHCP. Kiedy
Najbardziej oczywisty przykład
to stacje robocze i komputery przenośne – administrator może zdefiniować różne okresy dzierżawy dla tych
dwóch grup tak, aby zminimalizować
ruch w sieci związany z komunikacją
DHCP (dłuższy okres dzierżawy dla
stacji roboczych, krótszy dla komputerów przenośnych). W przypadku
Microsoft dostępne są następujące
klasy:
Default BOOTP Class – klasa
ta zostaje domyślnie przypisana
wszystkim komputerom opartym
na Windows 2000 i powyżej,
Rys. 4: Przykład negocjacji adresu IP pomiędzy klientem a serwerem DHCP
maj 2004
IT FAQ
19
już RFC? Instalacja odrębnego serwera
DHCP w każdej podsieci raczej odpada, chociażby ze względu na jej koszt.
Można w tym celu posłużyć się agentem
przekazywania (ang. relay agent), którego rola polega na przechwyceniu emisji
pochodzącej z komputera wysyłającego
komunikat DHCPDISCOVER i przesłaniu
jej już za pomocą transmisji bezpośredniej do podsieci, gdzie zainstalowano
serwer DHCP. Jak łatwo wywnioskować, agenta przekazywania należy
zainstalować w każdej podsieci, gdzie
nie występuje serwer DHCP i nie ma
możliwości emisji BOOTP do innego segmentu sieci. W przypadku Windows NT
4.0 (zarówno Workstation, jak i Server),
agenta instaluje się poprzez zakładkę
we właściwościach protokołu TCP/IP
(Panel Sterowania -> Sieć). Od Windows 2000 powyżej kwestia ta ulega
małej komplikacji, bowiem tylko wersja
Server daje nam możliwość konfiguracji
agenta. Dokonuje się tego poprzez konsolę RRAS (Routing and Remote Access),
co przedstawiono na Rys. 5.
Rys. 5: Konfiguracja agenta przekazywania w konsoli RRAS.
serwer otrzymuje wiadomość od klienta,
odpowiada on klientowi za pomocą
komunikatu DHCPOFFER. Ponieważ
klient wysłał wcześniej swój komunikat
DHCPDISCOVER drogą emisji, możliwe
jest, że odpowiedź przyjdzie z więcej niż
jednego serwera DHCP (w przypadku,
gdy znajdują się one w sieci). Z praktyki
wynika, że klient zwykle akceptuje pierwszą otrzymaną ofertę.
By poinformować serwer DHCP,
że wysłana oferta została zaakceptowana, komputer wysyła komunikat
DHCPREQUEST. Komunikat ten zawiera
adres serwera, którego ofertę klient akceptuje, a także adres IP, którego ofertę
właśnie otrzymał. Ponieważ odbywa się
to w drodze emisji (komputer ciągle nie
ma przypisanego adresu IP), inne serwery zostają powiadomione, że ich oferta
została odrzucona. Serwer, którego
oferta została wybrana, odpowiada
komunikatem, zapisuje adres sprzętowy
klienta w swojej bazie danych, a następnie wysyła potwierdzenie DHCPACK
do klienta. Komunikat DHCPACK zawiera uzgodniony adres IP oraz dodatkowe
parametry i opcje, które administrator
mógł skonfigurować. Opisany powyżej
20
IT FAQ
maj 2004
proces negocjacji został przedstawiony
w sposób schematyczny na Rys. 4.
Agent przekazywania (Relay
agent)
Jak wspomniano przy opisie konfiguracji DHCP, klient używa emisji celem
odnalezienia serwera, który mógłby mu
przydzielić odpowiedni adres IP. Co zatem w przypadku, gdy sieć jest podzielona na segmenty połączone routerami?
Jak wiadomo, routery zwykle nie przenoszą emisji, aby ograniczyć zbędny ruch
w sieci, a emisja BOOTP jest tutaj wyjątkiem. Wszystkie routery zgodne z RFC
1542 (a jest to w chwili obecnej zdecydowana większość z nich) są w stanie
przekazać transmisję do innych podsieci.
A gdyby jednak zdarzyło się, że router
nie jest kompatybilny ze wspomnianym
Podsumowanie
Zastosowanie usługi DHCP pozwala
administratorowi sieci w znacznym stopniu zautomatyzować proces konfiguracji adresów IP oraz dodatkowych parametrów TCP/IP. W zasadzie trudno jest
sobie wyobrazić jakąkolwiek sieć komputerową, która by z niej nie korzystała.
W powyższym artykule główny nacisk
położono na kwestie teoretyczne, natomiast w następnej części będzie mowa
o zainstalowaniu, skonfigurowaniu i zarządzaniu serwerem DHCP w oparciu
o platformę Microsoft Windows 2000
i 2003. Zajmiemy się także konfiguracją
zakresów i superzakresów, tworzeniem
kopii zapasowej bazy danych DHCP
i monitorowaniem serwera. Poświęcimy
również kilka słów na temat, jak radzić
sobie z potencjalnymi problemami. Ã
Więcej informacji
1. RFC (Request For Comments): 903, 906, 951, 1533, 1542, 2131 i 2132
(http://www.faqs.org/rfcs)
2. Pomoc techniczna systemu Microsoft Windows Server 2003

Podobne dokumenty