1 adresacja IPv4 host, aby móc działać w Internecie, host musi otrzymać globalnie unikatowy adres istnieją dwie możliwości przypisania adresu IP o statycznie o dynamicznie przypisanie statyczne administrator ręcznie przypisuje i zarządza adresami IP każdego komputera, drukarki lub serwera w intranecie konieczne jest prawidłowe zarządzanie przydziałem adresów: żaden adres IP nie może być powielony w tym samym segmencie sieci, w przypadku adresów publicznych unikalność musi być globalna skalowanie: sposób ten działa najlepiej w małych sieciach, w których rzadko zachodzą zmiany! urządzenia sieciowe, którym należy przypisywać statyczne adresy IP o serwery usług o drukarki sieciowe o routery przypisane dynamiczne RARP BOOTP DHCP
2 RARP: Reverse Address Resolution Protocol (RFC 903, 1931) protokół RARP stanowi odwrócenie roli protokołu ARP: przypisuje znanemu adresowi MAC adres IP używany jest w celu pozyskania adresu IP dla hosta o adresie sprzętowym MAC urządzenia używające protokołu RARP wymagają obecności w sieci serwera RARP, który odpowiada na ich żądania (jest nim zwykle router) protokół RARP używa takiego samego formatu pakietów jak protokół ARP - jednak w żądaniu RARP występują inne niż w żądaniu ARP nagłówki MAC i pole kodu operacji 32 bits Typ sprzętu Typ protokołu HLEN PLEN Kod operacji Adres sprzętowy nadawcy (oktety 0-3) zmienna długość Adres sprzętowy nadawcy (oktety 4-5) Adres protokołowy nadawcy (oktety 2-3) Adres protokołowy nadawcy (oktety 0-1) Adres sprzętowy odbiorcy (oktety 0-1) Adres sprzętowy odbiorcy (oktety 2-5) Adres protokołowy odbiorcy (oktety 0-3) kod operacji: 1 = żądanie ARP 2 = odpowiedź ARP 3 = żądanie RARP 4 = odpowiedź RARP
3 działanie 1. komunikację inicjuje urządzenie, które zamierza uzyskać adres IP, wysyłając jako rozgłoszenie (broadcast) żądanie RARP urządzenie nie zna ani swojego adresu IP ani adresu MAC dostarczyciela oczekiwanego dla siebie adresu IP pole źródłowego adresu IP jest puste (stacje robocze używające protokołu RARP mają zapisany w pamięciach ROM kod powodujący rozpoczęcie procesu żądania RARP) 2. rozgłoszenie jest odbierane przez wszystkie urządzenia w segmencie 3. analizę żądania RARP podejmują tylko serwery RARP 4. na podstawie unikatowego identyfikatora urządzenia (adresu fizycznego) wysyłającego żądanie, serwer RARP wyszukuje w tablicy adres IP urządzenia znajdującego się w danym segmencie sieci 5. przydzielony adres IP jest wysyłany w odpowiedzi RARP do urządzenia, które przysłało żądanie RARP (znany jest jego adres fizyczny) żądanie RARP kapsułkowane w ramce Ethernet: odpowiedź RARP kapsułkowana w ramce Ethernet:
4 BOOTP: Bootstrap Protocol (RFC 951, 1395) BOOTP to protokół typu klient - serwer nowość: w przeciwieństwie do protokołu RARP pakiety BOOTP mogą zawierać nie tylko adres IP, ale i adres routera, adres serwera oraz informacje zależne od producenta sprzętu BOOTP nie został zaprojektowany do dynamicznego przypisywania adresów - aby użyć tego protokołu, administrator sieci tworzy plik konfiguracyjny zawierający parametry dla każdego urządzenia (bazę BOOTP) chociaż adresy są przypisywane dynamicznie, nadal istnieje relacja jeden do jednego pomiędzy liczbą adresów IP a liczbą hostów - dla każdego hosta IP w sieci musi istnieć profil BOOTP zawierający przypisany mu adres IP (żadne dwa profile nie mogą zawierać takich samych adresów IP ponieważ mogłyby być użyte w tym samym czasie, co oznaczałoby przypisanie dwóm hostom tego samego adresu IP) protokół BOOTP do przesyłania komunikatów używa protokołu UDP, który jest enkapsulowany w pakiecie IP działanie klient BOOTP wysyła pakiet na rozgłoszeniowy adres IP (255.255.255.255) - adres IP serwera BOOTP jest nieznany, oraz adres rozgłoszeniowy MAC (FF:FF:FF:FF:FF:FF) stacje w segmencie lokalnym przekazują ten pakiet do warstwy sieci i wykrywają, że docelowy IP jest rozgłoszeniowy przekazują dalej do warstwy transportowej i odrzucają serwer BOOTP nie odrzuca pakietu żądania BOOTP i w odpowiedzi wysyła również pakiet rozgłoszeniowy IP na adres MAC stacji, z której przyszło żądanie (klient nie zna jeszcze swojego adresu IP i tylko adres rozgłoszeniowy zapewni, że klient przeczyta odpowiedź) inne stacje odrzucają ten pakiet, ponieważ nie jest adresowany na MAC adres żadnej z nich ani na adres rozgłoszeniowy MAC klient otrzymuję ramkę i sprawdza jej adres MAC - jeżeli w polu adresu docelowego znajdzie swój adres MAC, a w polu adresu docelowego IP adres rozgłoszeniowy, pobierze adres IP i inne informacje zawarte w komunikacie odpowiedzi BOOTP (np. adres serwera TFTP) w warstwie transportowej odpowiedź BOOTP serwera jest rozpoznawana na podstawie zawartości pola OP dane odpowiedzi są zapisywane w odpowiednich miejscach pamięci stacji (stacja ma teraz dostęp np. do serwera TFTP, skąd może pobrać system operacyjny oraz do domyślnej bramy) źródłowy adres IP i adres MAC serwera BOOTP są zapisywane w tablicy ARP klienta
5 struktura komunikatu BOOTP BITY 0-7 8-15 16-23 24-31 OP (1 BAJT) TYP ADR SPRZ. (1) DŁ. ADR SPRZ. (1) HOPS (1) XID (4) SEKUNDY (2) NIEUŻYWANE ADRES IP KLIENTA (4) TWÓJ (KLIENTA) ADRES IP (4) IP NASTĘPNEGO SERWERA UŻYWANEGO W PROCESIE URUCHAMIANIA NP. TFTP (4) IP AGENTA PRZEKAZUJĄCEGO NP. BRAMY DOMYŚLNEJ (4) ADRES SPRZĘTOWY KLIENTA (16) NAZWA SERWERA (32 BYTES) NAZWA PLIKU URUCHOMIENIOWEGO (64) OPCJONALNE INFO DLA HOSTA (32) Op - kod operacji =bootrequest/bootreply Hops pole używane przez serwer bootp podczas wysyłania żądania do innej sieci =0 dla klienta Xid identyfikator transakcji Sekundy liczba sekund, które upłynęły od chwili rozpoczęcia procesu pobierania lub odnawiania adresu IP agenta przekazującego adres IP maszyny-pośrednika (jeśli taki sposób jest używany) Nazwa pliku uruchomieniowego umożliwia używanie wielu plików uruchomieniowych, dzięki czemu na hostach mogą działać różne systemy operacyjne
6 DHCP: Dynamic Host Configuration Protocol (RFC 2131) protokół dynamicznej konfiguracji hostów, działa w trybie klient-serwer jest następcą protokołu BOOTP o pozwala hostowi pobierać adres IP dynamicznie (nie statycznie), dzięki czemu administrator sieci nie musi tworzyć oddzielnych profili dla każdego urządzenia o przypisanie jest dzierżawione na określony czas (nie stałe) o liczba obsługiwanych parametrów to ok. 30 (w BOOTP - 4): maska podsieci, router, nazwa domeny, serwer(y) DNS, serwer(y) WINS itp. (RFC 1533) host, przyłączając się do sieci, kontaktuje się z serwerem DHCP i żąda przypisania adresu serwer DHCP wybiera adres i wydzierżawia go temu hostowi. Dzierżawa następuje na czas ustalony przez administratora - po jej wygaśnięciu klient musi zażądać nowego adresu (zazwyczaj dostaje ten sam) jeden klient IP może uzyskiwać adresy od wielu serwerów DHCP i może być przenoszony - jeśli klient uzyska odpowiedź od wielu serwerów, może wybrać tylko jedną z ofert protokół DHCP pozwala na pobranie całej konfiguracji sieciowej komputera w jednym komunikacie (wszystkich danych przesyłanych w komunikacie BOOTP oraz wydzierżawionego adresu IP i maski podsieci) klient DHCP wchodzi w skład większości znanych systemów operacyjnych protokół DHCP nie jest przeznaczony do konfigurowania routerów, przełączników ani serwerów - tego typu hosty muszą mieć przydzielone statyczne adresy IP protokołem transportowym wykorzystywanym przez protokół DHCP jest UDP: klient wysyła komunikaty do serwera na port 67, serwer wysyła komunikaty do klienta na port 68 konfiguracja serwera DHCP serwer DHCP tworzy pule adresów IP i skojarzonych z nimi parametrów pule przeznaczone są dla poszczególnych logicznych podsieci IP - nie w każdej sieci musi być obecny serwer DHCP mechanizmy przydzielania adresów IP dla klientów alokacja ręczna: adres IP dla klienta jest przydzielany przez administratora, protokół DHCP jedynie przesyła adres do klienta, dzierżawa stała alokacja automatyczna: jak w alokacji ręcznej protokół DHCP przypisuje klientowi stały adres IP, ale jest on wyciągany dynamicznie z puli adresów, dzierżawa stała alokacja dynamiczna: protokół DHCP dzierżawi klientowi adres IP na pewien ograniczony czas, dowolny przydział wolnego adresu (w dalszej części opisano ten mechanizm przydzielania adresów)
7 proces przydziału adresu IP przez serwer DHCP 1. Klient wysyła do serwera żądanie uzyskania konfiguracji IP komunikatem rozgłoszeniowym DHCPDISCOVER w celu znalezienia serwera DHCP (IP źródłowy=0.0.0.0, IP docelowy=255.255.255.255, MAC źródłowy=mac klienta, MAC docelowy=ff:ff:ff:ff:ff:ff ); klient czeka na nadejście odpowiedzi określony czas i jeśli nie nadejdzie ponawia żądanie 2. Po odebraniu tego komunikatu serwer określa, czy może obsłużyć określone żądanie przy użyciu własnej bazy danych a. jeśli żądanie nie może zostać obsłużone, serwer może przekazać odebrane żądanie dalej, do innego serwera DHCP b. jeśli serwer DHCP może obsłużyć żądanie, do klienta wysyłana jest oferta z konfiguracją IP w formie rozgłoszenia DHCPOFFER, który zawiera propozycję konfiguracji, która może obejmować adres IP, adres serwera DNS i okres dzierżawy (IP źródłowy=ip serwera, IP docelowy=255.255.255.255, MAC źródłowy=mac serwera, MAC docelowy=mac klienta) 3. Klient wysyła na adres IP wskazany przez serwer DHCP rozgłoszenie ARP - jeśli żaden host nie odpowie (adres jest wolny), klient akceptuje go i wysyła komunikat rozgłoszeniowy DHCPREQUEST, z żądaniem uzyskania tych konkretnych parametrów IP (wykorzystywany jest komunikat rozgłoszeniowy, ponieważ pierwszy komunikat, DHCPDISCOVER mógł zostać odebrany przez wiele serwerów DHCP i więcej niż jeden mógł przesłać ofertę - dzięki komunikatowi rozgłoszeniowemu DHCPREQUEST serwery te będą mogły poznać ofertę, która została zaakceptowana); zazwyczaj akceptowana jest pierwsza odebrana oferta 4. Serwer, który odbierze sygnał DHCPREQUEST wysyła a. potwierdzenie w formie komunikatu transmisji pojedynczej DHCPACK; odebranie komunikatu DHCPACK upoważnia klienta do natychmiastowego użycia przypisanego adresu b. negatywne potwierdzenie DHCPNACK, jeśli spełnione są warunki: -klient próbuje wydzierżawić wcześniej używany adres IP, a ten jest już zajęty, -klient próbuje wydzierżawić wcześniej używany adres IP, a został fizycznie przeniesiony do innego segmentu sieci; Po otrzymaniu negatywnego potwierdzenia klient rozpoczyna proces pozyskiwania adresu IP od początku. 5. Jeśli klient wykryje, że określony adres jest już używany w lokalnym segmencie, wysyła komunikat DHCPDECLINE i cały proces zaczyna się od początku 6. Gdy klient nie potrzebuje już adresu IP, wysyła do serwera komunikat DHCPRELEASE
8 odnowa dzierżawy połowa czasu trwania dzierżawy: klient DHCP próbuje odnowić dzierżawę wysyłając transmisją pojedynczą wiadomość DHCPREQUEST bezpośrednio do serwera DHCP, od którego dostał adres IP - jeśli serwer ten nie może przedłużyć dzierżawy, klient używa jej do końca trwania dzierżawy bieżącej 87.5% czasu trwania dzierżawy: klient stara się skontaktować z dowolnym serwerem DHCP - jeśli to nie powiedzie się, a czas bieżącej dzierżawy skończy się, klient nie może używać adresu IP
9 przykład
10 struktura komunikatu DHCP BITY 0-7 8-15 16-23 24-31 OP (1 BAJT) TYP ADR SPRZ. (1) DŁ. ADR SPRZ. (1) HOPS (1) XID (4) SEKUNDY (2) FLAGI (2) ADRES IP KLIENTA(CIADDR)(4) TWÓJ ADRES IP(YIADDR)(4) IP NASTĘPNEGO SERWERA UŻYWANEGO W PROCESIE URUCHAMIANIA NP. TFTP (SIADDR)(4) IP AGENTA PRZEKAZUJĄCEGO NP. BRAMY DOMYŚLNEJ (GIADDR)(4) ADRES SPRZĘTOWY KLIENTA (CHADDR)(16) NAZWA SERWERA DHCP (SNAME)(32 BYTES) NAZWA PLIKU URUCHOMIENIOWEGO (64) OPCJONALNE INFO DLA HOSTA (32) Flagi w miejsce pola nieużywanego przez BOOTP Opcjonalne info dla hosta tutaj przesyłane są informacje konfiguracyjne np. maska, serwer DNS itp. jest to zestaw numerowanych opcji 0-254 (RFC 1533) każda opcja składa się z pola kodu opcji (1B), z pola długości opcji (1B) i danych opcji przykład opcja: maska podsieci (kod=1, długość=4, dane=4b) kod dług. maska sieciowa +-----+-----+-----+-----+-----+-----+ 1 4 m1 m2 m3 m4 +-----+-----+-----+-----+-----+-----+ Pozostałe pola są identyczne do pól w komunikacie BOOTP.
11 przekazywanie rozgłoszeń DHCP poza podsieć (RFC 1542) problem: zazwyczaj w złożonej sieci hierarchicznej klienci znajdują się w innej podsieci, niż kluczowe serwery (a routery domyślnie nie przekazują wysłanych przez klientów komunikatów rozgłoszeniowych poza ich podsieć) rozwiązanie: o umieszczenie serwerów we wszystkich podsieciach mało efektywne o router można skonfigurować tak, by był przekaźnikiem (relay agent) wymiany komunikatów DHCP między różnymi podsieciami konfiguracja routera polega na włączeniu na interfejsie tzw. pomocniczej funkcji adresowania ( ip helper ) do przekazywania rozgłoszeń związanych z kluczowymi usługami UDP o usługa czasu o TACACS (serwer autoryzacji) o DNS o serwer BOOTP/DHCP o klient BOOTP/DHCP o TFTP o obsługa nazw NetBIOS o NetBIOS router skonfigurowany jako przekaźnik przyjmuje żądania w formie komunikatów rozgłoszeniowych, a następnie przesyłał je już jako komunikaty transmisji pojedynczej (unicast) do konkretnych adresów IP proces rodzaj i kolejność komunikatów DHCP nie zmienia się klient rozgłasza pakiet DHCPDISCOVER w lokalnym segmencie sieci - pakiet ten jest odbierany przez bramę (zakładamy, że skonfigurowana jest pomocnicza funkcja adresowania) router przekaźnik przed przekazaniem wiadomości DHCP od klienta, router bada pole GIADDR w wiadomości DHCPDISCOVER - jeśli jest tam adres IP 0.0.0.0, wpisuje tam adres IP interfejsu, od strony której przyszło rozgłoszenie rozgłoszenie DHCP jest przekazywane dalej do określonego adresu
12 serwer DHCP odbiera pakiet wykrywania sprawdza pole GIADDR, aby po adresie bramy ustalić z jakiej puli (jakiej podsieci) wydzierżawić adres IP znaleziona pula ta jest używana do przypisania klientowi adresu IP odsyła ofertę bezpośrednio do routera przekaźnika (GIADDR), a ten rozgłasza ją do klienta przykład
13 przykład klient i serwer DHCP w tym samym segmencie sieci pole GIADDR jest puste
14 NAT i PAT (RFC 1631, 2663, 1918) adresy publiczne publiczne adresy internetowe muszą zostać zarejestrowane przez odpowiednią organizację administrującą siecią Internet, np. ARIN (American Registry for Internet Numbers) lub RIPE (Réseaux IP Européennes) zarejestrowane publiczne adresy internetowe mogą być także dzierżawione od dostawcy usług internetowych adresy prywatne bloki prywatnych adresów IP (RFC 1918) o 1 adres klasy A (10.0.0.0/8, 10.0.0.0-10.255.255.255) o 16 adresów klasy B (172.16.0.0/12, 172.16.0.0-172.31.255.255) o 256 adresów klasy C (192.168.0.0/16, 192.168.0.0-192.168.255.255) router nie powinien nigdy routować adresów wymienionych w dokumencie RFC 1918 - dostawcy usług internetowych zazwyczaj konfigurują routery brzegowe tak, aby zapobiec przekazywaniu ruchu przeznaczonego dla adresów prywatnych ten sam adres prywatny może zostać wykorzystany w wielu różnych sieciach prywatnych NAT: Network Address Translation to proces translacji prywatnego adresu wewnętrznego hosta na publiczny adres zewnętrzny, który może być routowany urządzenie realizujące translację NAT zazwyczaj działa na routerze granicznym rodzaje translacji statyczna translacja NAT umożliwia utworzenie odwzorowania typu jeden-do-jednego pomiędzy adresami lokalnymi i globalnymi szczególnie przydatne w wypadku hostów, które muszą mieć stały adres dostępny z Internetu (serwery lub urządzenia sieciowe) dynamiczna translacja NAT hostowi w sieci jest przypisywany dowolny adres z puli publicznych adresów IP
15 zalety NAT zwiększenie poziomu bezpieczeństwa w sieci: w wypadku sieci prywatnej nie są rozgłaszane adresy wewnętrzne ani informacje o topologii wewnętrznej zapewnienie spójności schematu adresowania sieci wewnętrznej: eliminacja konieczności ponownego przypisania adresów IP do każdego hosta po zmianie dostawcy usług internetowych (ISP) zwiększenie elastyczności i niezawodności połączeń z siecią publiczną: istnieje możliwość zaimplementowania wielu pul połączeń, zapasowych pul połączeń i pul równoważących obciążenie wady NAT utrata funkcjonalności: w przypadku protokołów lub aplikacji wykorzystujących wysyłanie informacji o adresie IP w treści zasadniczej pakietu IP na urządzeniu realizującym translację NAT musi być dodatkowa funkcjonalność dla zmiany zawartości pakietów, w przeciwnym razie protokoły takie nie mogą działać opóźnienia: opóźnienia podczas przełączania ścieżek są spowodowane operacjami translacji wszystkich adresów IP w nagłówkach pakietów spadek wydajności: procesor musi zbadać każdy pakiet, aby stwierdzić, czy podlega on translacji, następnie musi zmodyfikować nagłówek IP, ewentualnie również nagłówek TCP lub UDP utrata możliwości śledzenia pakietów IP na całej ścieżce transportowej (end-to-end): śledzenie pakietów jest znacznie utrudnione, ponieważ w kolejnych przeskokach z translacją NAT adres w pakiecie wielokrotnie się zmienia; ale jest to i zaleta, ponieważ hakerzy mają utrudnione uzyskanie adresu źródłowego i docelowego wyłączenie niektórych aplikacji wykorzystujących adresy źródłowe i docelowe: aplikacje wykorzystujące adresy fizyczne zamiast kwalifikowanych nazw domen nie będą mogły określić adresu docelowego, ponieważ jest on poddawany translacji na routerze z obsługą NAT - czasami istnieje możliwość uniknięcia tego problemu przez zaimplementowanie statycznych odwzorowań NAT mechanizm NAT obsługuje następujące typy ruchu w sieci (przykład Cisco IOS) ICMP protokół FTP (łącznie z poleceniami PORT i PASV) usługi związane z przesyłaniem danych NetBIOS przez sieci TCP/IP, obsługą datagramów, nazw i sesji usługa RealAudio zapytania DNS typu A i PTR H.323/Microsoft NetMeeting IP Multicast
16 brak obsług aktualizacje tablic routingu przenoszenie stref DNS BOOTP protokoły talk i ntalk protokół SNMP PAT: Port Address Translation technika przeciążenia, która służy do odwzorowania wielu prywatnych adresów IP na jeden publiczny adres IP oszczędność adresów IP! tłumaczone adresy są rozróżniane przy użyciu unikatowych numerów portów źródłowych powiązanych z globalnym adresem IP teoretycznie całkowita liczba adresów wewnętrznych, które mogą być przetłumaczone na jeden adres zewnętrzny, może wynosić do 2 16 = 65 536 (maksymalna liczba portów) rzeczywista liczba adresów wewnętrznych: do jednego adresu IP może zostać przypisanych około 4000 portów w mechanizmie PAT podejmowana jest zawsze próba zachowania pierwotnego portu źródłowego o jeśli określony port źródłowy jest już używany, funkcja PAT przypisuje pierwszy dostępny numer portu, licząc od początku zbioru numerów odpowiedniej grupy portów (0 511, 512 1023 lub 1024 65535) o gdy zabraknie dostępnych portów, a skonfigurowanych jest wiele zewnętrznych adresów IP, mechanizm PAT przechodzi do następnego adresu IP w celu podjęcia kolejnej próby przydzielenia pierwotnego portu źródłowego o ten proces jest kontynuowany aż do wyczerpania wszystkich dostępnych numerów portów i zewnętrznych adresów IP