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