DHCP, DNS i wprowadzenie do Katalogów Marek Kozłowski Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska Warszawa, 2014/2015
Plan wykładu 1 DHCP 2 DNS 3 Usługi katalogowe
BOOTstrap Protocol (BOOTP) Opracowany (RFC 951, 1985 rok) dla stacji bezdyskowych. Umożliwia uzyskanie adresu IP oraz informacji o serwerze TFTP i pliku zawierającym obraz systemu operacyjnego (który można następnie pobrać). Korzysta z transportu UDP. Działa dla różnych protokołów warstwy dostępu do sieci: w nagłówku jest 16 bajtów na adres MAC oraz pola typ sprzętu i długość adresu MAC. Zapytanie (BOOTREQUEST) jest broadcastem. Jeśli serwer BOOTP nie ma odpowiednich parametrów dla klienta, może przekierować je (unicastowo) do innego serwera BOOTP. W konsekwencji BOOTP umożliwia bootowanie zdalne (przez router).
Dynamic Host Configuration Protocol (DHCP) DHCP (RFC 2131) jest rozszerzeniem/następcą protokołu BOOTP (znajduje to czasem odzwierciedlenie w nazewnictwie). Pierwsza wersja standardu (propozycji standardu) RFC 1531 pochodzi z roku 1993. Wprowadza następujące rozszerzenia względem BOOTP: dwie metody przydzielania adresów IP: statyczne lub dynamiczne, możliwe przekazywanie niemal dowolnych parametrów do hosta, w przypadku kilku ofert DHCP host może wybrać jedną z nich a także dopytywać się o brakujące parametry, możliwość synchronizacji serwerów DHCP z serwerami DNS (Dynamic DNS, RFC 2136).
DHCP przydział adresów Dzierżawa na podany okres (w sekundach). Przydział dynamiczny: poprzez zakres (pulę) adresów IP. Przydział statyczny: adres IP przypisany do MAC. Opcje (parametry) definiowane globalnie mogą być nadpisywane opcjami dla pul i adresów statycznych. DHCP pozwala na przechowywanie parametrów TCP/IP sieci i hostów w jednym miejscu.
DHCP parametry Parametry, które mogą być przekazywane do klienta DHCP (RFC 2132), to m.in.: parametry RFC 1497 (1-18), m.in: maska, router, serwer DNS, nazwa hosta, nazwa domeny DNS, parametry IP dla hosta (19-25), np. domyślny TTL, maksymalna wielkość datagramu, parametery IP dla interfejsu (26-33), np. MTU, adres broadcastowy, wpisy do tablicy routingu statycznego, parametry 2. warstwy OSI (34-36), np. ARP Cache Timeout, parametry TCP (37-39), np. TCP Keepalive Interval, parametry górnych warstw OSI (40-49, 64, 65, 68-76), m.in: serwery SMTP, POP3, WWW, NNTP, parametry NIS, NETBIOS i systemu X Window, rozszerzenia DHCP (50-61, 66, 67), np. czas dzierżawy, parametry BOOTP, pozostałe i nieprzydzielone (62, 63, 77-223), np. NDS Tree, NDS Context.
DHCP komunikaty DHCP wykorzystuje transport UDP i te same porty IANA co BOOTP, tj. 67 (serwer) i 68 (klient). Podstawowe komunikaty DHCP: DHCPDISCOVER broadcast (od klienta) opcjonalnie zawierający sugestię dot. adresu IP i czasu użycia, DHCPOFFER unicastowa (serwer do klienta) oferta adresu IP i innych parametrów. Serwer DHCP powinien mieć możliwość sprawdzenia, czy adres jest wolny (np. ping), DHCPREQUEST broadcast (klient) informujący o wyborze oferty (serwera DHCP) lub prośba o przedłużenie dzierżawy, DHCPACK (unicast: serwer do klienta) potwierdzenie (przesłanie) adresu i parametrów. W przypadku, gdy przyznanie zaoferowanych parametrów nie jest możliwe wysyłany jest pakiet DHCPNAK, DHCPINFORM (unicast: klient do serwera lub broadcast) prośba klienta o podanie dodatkowych parametrów, DHCPRELEASE (unicast).
DHCP implementacje Jedną z pierwszych implementacji (1994 rok) DHCP była implementacja firmy Microsoft dla Windows NT 3.51 ( a new feature from Microsoft ;-) ) W systemach *nix najczęściej korzysta się z implementacji Internet Systems Consortium zawierającej klienta DHCP, serwer DHCP i relay agenta. Pierwsza wersja (1.0) 1997 rok. Obecna wersja: 4.2.6. Implementacja firmy Novell (1998) integruje usługi DHCP z usługami katalogowymi NDS (edirectory). Systemy Solaris, poczynając od wersji 8 (2.8, 2001 rok) korzystają z implementacji firmy Sun (Oracle).
Plan wykładu 1 DHCP 2 DNS 3 Usługi katalogowe
Domain Name Services (DNS) Protokół DNS standaryzowany jest przez RFC 1034 i RFC 1035 (wraz z licznymi suplementami i uzupełnieniami). Wykorzystuje transport UDP, port 53. Umożliwia używanie nazw do identyfikacji hostów i usług. Uwaga: plik hosts (/etc/hosts) domyślnie ma pierwszeństwo nad zapytaniem DNS. Jeśli nazwa może zostać zamieniona na adres IP w opraciu o ten plik zapytanie DNS nie jest generowane. System nazw domenowych jest systemem informatyczno-prawnym hierarchicznym i rozproszonym.
Top Level Domains Domeną najwyższego poziomu (TLD) jest domena. (domena kropka). Obsługiwana jest ona przez 13 serwerów (tzw. root nameservers): a.root-servers.net, b.root-servers.net,... m.root-servers.net (precyzyjniej: C, F, I, J, K i M to nie serwery ale grupy anycastowe). W domenie. wydzielone są domeny gtld (generic, funkcjonalne), np..com,.org oraz domeny cctld (country code, krajowe), np..pl.
DNS delegacja domen Na najwyższym poziomie (.) nadzór nad domenami DNS sprawują ICANN (Internet Corporation For Assigned Names and Numbers) i IANA. Organizacje te delegują administrację domenami innym podmiotom (zob. http://www.icann.org/registries/listing.html). Domeną.pl a także szeregiem domen regionalnych (np. waw.pl) i funkcjonalnych (np. org.pl, com.pl) administruje NASK. Domeną gov.pl administruje IPPT PAN. Uwaga: Domeny w domenie.pl są dzierżawione, a nie sprzedawane. Informacje o domenach można uzyskać poprzez zapytania whois.
DNS typy domen Każda domena ma taki sam opis formalny, wszystkie domeny leżą we wspólnej hierarchii domen DNS, jednakże ze względów funkcjonalnych często mówimy o domenach: prostych, IPv6 i domenach odwrotnych (revdns). Domeny IPv6 to domeny zawierające rekordy dla protokołu IP wersji 6., np. rekord AAAA mapowanie nazwy na adres IPv6. Domeny odwrotne to domeny w hierarchii in-addr.arpa grupujące rekordy PTR, tj. mapowania adresów IP na nazwy domenowe. Np. domena 178.29.194.in-addr.arpa zawiera mapowania adresów 194.29.178.x (sieć wydziałowa) na nazwy. Domeny odwrotne pomocne są dla identyfikacji z jakiej domeny został wysłany dany pakiet (na podstawie adresu IP nadawcy w nagłówku IP).
Rekordy DNS Najważniejsze rekordy DNS to: SOA Start Of Authority, początek opisu domeny, NS Name Server domeny (nazwa), A adres IP hosta o danej nazwie, CNAME Canonical Name, alias (np. www, ftp, smtp) dla hosta o danej nazwie, PTR nazwa hosta o danym adresie IP, przeważnie w domenach in-addr.arpa, MX mailserver(y) dla hosta/domeny. Uwaga: Rekordy A i PTR mogą być redundantne; CNAME muszą być unikalne.
DNS rekord SOA Rekord SOA zawiera szereg parametrów administracyjnych związanych z daną domeną. Do najważniejszych należą: TTL czas przez jaki wynik zapytania może być cache owany, główny (primary) serwer domeny, adres e-mail administratora, serial number wartość, która pozwala sprawdzić, czy opis domeny uległ zmianie. Przeważnie jest to data ostatniej zmiany a następnie 2 cyfry, tzw. numer sekwencyjny, parametry refresh i expire dla pozostałych serwerów domeny informują o odstępie pomiędzy kolejnymi synchronizacjami i czasie ważności opisu domeny.
DNS resolving
Implementacje BIND BIND (Berkeley Internet Domain Names) implementacja pierwotnie stworzona na uniwersytecie Berkeley i włączona do BSD 4.3, W kolejnych latach rozwijana przez DEC (BIND 4), ostatecznie przejęta przez Internet Systems Consortium (BIND 8). Najnowsza stabilna wersja BIND BIND 9 napisana została niemal od zera, ze szczególnym uwzględnieniem aspektów bezpieczeństwa. Obecnie BIND 9 można postrzegać jako standard DNS dla systemów Linux/Unix.
BIND serwery DNS Dla każdej strefy jest jeden nameserver primary i jeden lub więcej serwerów secondary. Konfiguracja przez pliki tekstowe: konfiguracyjny (/etc/named.conf) i pliki opisu stref (przeważnie w /var/named/*.zone). Zmiany na serwerze primary dokonywane są w pliku opisu domeny. W przypadku stwierdzenia niezgodności numeru seryjnego SOA, serwery secondary pobierają cały plik opisu domeny (tzw. zone transfer).
Inne implementacje Systemy z rodziny Windows wyposażone są w implementację DNS firmy Microsoft. Od 1998 Novell lansował własne rozwiązanie, które wraz z DHCP zintegrowane jest z usługami katalogowymi edirectory. Ze względu na systemy uprawnień w usługach edirectory, a także spójność informacji, Novell stworzył osobne, graficzne narzędzie do administracji usługami DNS i DHCP DNS/DHCP Java Management Console.
Korzystanie z DNS w systemach Linux/Unix Konfiguracja klienta DNS zapisana jest w pliku: /etc/resolv.conf. Istotne mogą być też ustawienia z pliku: /etc/nsswitch.conf. Popularne narzędzia do wysyłania zapytań DNS to: dig, host, nslookup. Zapytania do bazy whois można generować poleceniem whois.
Plan wykładu 1 DHCP 2 DNS 3 Usługi katalogowe
X.500 W latach 80. Międzynarodowa Unia Telekomunikacyjna wspólnie z ISO opracowały rodzinę standardów X.500 (ISO/IEC 9594), określających ramy usług katalogowych. Rozwijane były one pierwotnie na potrzeby standardu wymiany poczty elektronicznej i systemu nazw (name lookup) X.400. Model X.500, podobnie jak X.400 stał się częścią stworzonego przez ISO zestawu protokołów (stosu) OSI. Stos OSI zarzucono w połowie lat 90. Pozostałościami tego ekhem... nieco... skomplikowanego projektu są m.in.: model referencyjny OSI, standard infrastuktury kryptograficznej X.509 (ISO/IEC 9594-8), zaadoptowany później przez stos TCP/IP, koncepcja usług katalogowych X.500 (ISO/IEC 9594-1), także rozwijana następnie w ramach stosu TCP/IP. Oryginalny protokół dostepu do usług katalogowych został wkrótce wyparty przez protokół LDAP wchodzący w skład stosu TCP/IP.
Usługi katalogowe Zestaw aplikacji przechowujących informacje o użytkownikach, komponentach sieci i systemie powiązań między nimi, a także tworzących abstrakcyjny system identyfikacji, opisu i zarządzania zasobami sieciowymi. Przechowują informacje o obiektach i ich atrybutach. Obiekty zorganizowane są w sposób hierarchiczny, hierarchia ta odzwierciedla logiczną, a nie fizyczną strukturę sieci. Obiekt identyfikowany jest poprzez tzw. distinguished name. DN składa się z wartości pewnego atrybutu obiektu oraz DN obiektu nadrzędnego ( ścieżki dostępu ). Przeważnie usługi katalogowe realizowane są jako obiektowa, nierzadko rozproszona, zoptymalizowana dla odczytu i wyszukiwania baza danych. Typ informacji reprezentowanych w bazie opisywany jest poprzez modyfikowalny schemat.
Usługi katalogowe
Usługi katalogowe vs. baza danych Typy operacji. Usługi katalogowe optymalizowane są dla operacji odczytu i wyszukiwania. Często są rozpraszalne. Informacje w usługach katalogowych mogą być redundantne. Przeważnie nie zaimplementowane są: transakcyjność ani możliwość cofania (rollback) dokonanych zmian. Dziedziczenie. Usługi katalogowe zorganizowane są logicznie jako hierarchiczna struktura drzewiasta. Położenie obiektu (namespace, context) wpływa na jego własności. Atrybuty są definiowane przez schemat niezależnie od obiektów. Dla danej klasy obiektów określane są atrybuty wymagane i opcjonalne. Atrybuty są często wielowartościowe. Dla usług zgodnych z LDAP podstawowe klasy obiektów i atrybuty standaryzowane są przez IANA (http://www.iana.org/assignments/ldap-parameters)
Lightweight Directory Access Protocol (LDAP) LDAP to lekki protokół dostępu do usług katalogowych (bazujących na modelu X.500) wchodzący w skład stosu TCP/IP. Protokół LDAP wykorzystuje jako transport protokół TCP i port 389 (TLS 663), jest protokołem binarnym. Obecnie wykorzystywana, trzecia wersja protokołu (LDAPv3) opisana jest w kilku dokumentach RFC, aktualna lista tych dokumentów podana jest w RFC 3377. Protokół LDAP do wymiany danych korzysta z formatu LDIF (LDAP Data Interchange Format, RFC 2849), chociaż sam LDAP, podobnie jak X.500 zdefiniowany jest w notacji ASN.1 (X.680).
LDAP cd. Podstawowe operacje, które możne wykonać na Katalogach wykorzystując protokół LDAP, to: bind uwierzytelnienie i ustalenie wersji protokołu, start TLS (LDAPS, port 636), search compare operacja zwraca wynik boolean, update (add, delete, modify), unbind zamknięcie połączenia. Wartości atrybutów w LDAPv3 kodowane są UTF-8 i zależnie od schematu mogą być case-sensitive lub case-insensitive. DN przedstawiane są w notacji classful, gdzie poszczególne człony oddzielane są przecinkami, np. cn=jan Kowalski,ou=mini,o=pw,c=pl.
Implementacje Katalogów LDAP Novell edirectory Jedna z najbardziej zaawansowanych implementacji usług katalogowych. M.in. umożliwia całkowite, dynamiczne rozpraszanie bazy, wykorzystuje elastyczny schemat, pozwala na pełne rozproszenie administracji dzięki złożonym systemom praw do obiektów i atrybutów oraz możliwość synchronizacji z różnymi systemami baz danych. Pierwsza publiczna wersja NDS 6 (ok. 1994 roku) tworzona była jako komponent systemu NetWare 4.x bazującego na stosie IPX/SPX. Dopiero w wersji NDS 8 (ok. 1998 roku) opracowanej dla NetWare 5, później znanej jako osobny produkt edirectory, dostępny dla różnych platform m.in. Linux, Unix i Windows, wprowadzono wsparcie dla protokołu LDAPv3. Konsekwencją są drobne niezgodności podstawowego schematu (np. obiekty klasy group).
Implementacje Katalogów LDAP OpenLDAP OpenLDAP to otwarta, wieloplatformowa implementacja usług katalogowych wykorzystująca protokół dostepu LDAPv3. Projekt rozwijany jest od 1998 roku na Uniwerstycie Michigan. Najnowsza wersja oznaczona jest numerem 2.4.x. Usługi katalogowe OpenLDAP dostępne są w szczególności dla platformy Linux/GNU, port Gentoo: net-nds/openldap wykorzystywany jest na serwerze beta jako centralny punkt systemu kont Wydziału.
Implementacje Katalogów LDAP iplanet Usługi iplanet to system będący owocem współpracy firm Sun i Nestcape (AOL) dostepny dla platform Solaris, Linux i Windows. Po 2002 roku drogi firm Sun i AOL rozeszły się. Od 2003 roku Sun rozwija usługi katalogowe pod nazwą Sun Java System Directory Server w ramach bardziej rozbudowanego systemu Sun Java Enterprise System, natomiast AOL sprzedał w 2004 swój produkt (Netscape Directory Server) firmie RedHat (RedHat Directory Services, RHDS).
Implementacje Katalogów LDAP ActiveDirectory Stworzony przez Microsoft system zarządzania zasobami dla Windows z rodziny NT5 (2000, XP, etc) ActiveDirectory jest wg producenta zgodny z protokołem LDAP. W przeciwieństwie do wspomnianych wcześniej rozwiązań, AD jest ściśle związany z systemem operacyjnym Windows i zasobami obsługiwanymi przez ten system; obiekty w AD zostały odziedziczone po grupach roboczych (workgroups) implementowanych we wcześniejszych wersjach systemu Windows.