ADRESY PRYWATNE W IPv4 Zgodnie z RFC 1918 zaleca się by organizacje dla hostów wymagających połączenia z siecią korporacyjną a nie wymagających połączenia zewnętrznego z Internetem wykorzystywały tzw. pule adresów prywatnych. W tym celu IANA (ang. Internet Assigned Numbers Authority) zarezerwowała następujące bloki adresów: Wadą stosowania adresów prywatnych jest, w przypadku połączenia hasta o takim numerze, konieczność stosowania translatorów adresów sieciowych NAT (ang. Network Address Translator) Z drugiej jednak strony stosowanie tych adresów w danej Organizacji upraszcza przenoszenie się od jednego operatora do drugiego.
TERMINOLOGIA NAT Występują dwa podstawowe typy translacji adresów: NAT (ang. Network Address Translation) PAT (ang. Port Address Translation) nazywany również w dokumentach IETF jako NAPT (ang.network Address and Port Translation) a w świecie LINUX-a jako masquerading.
NAT
PAT
PODSTAWY NAT NAT jest implementowany jako element routera i w najprostszej postaci dokonuje translacji zgodnie z tabelą obok.
NAT STATYCZNY I DYNAMICZNY Załóżmy, że host 10.0.0.1 otwiera połaczenie z hostem 198.5.5.55 Pierwszy pakiet, który dociera do routera spod adresu 10.0.0.1 powoduje, że router sprawdza swoją tablicę NAT Router zastępuje adres źródłowy wewnętrznym adresem globalnym znalezionym w tablicy NAT. Jeżeli w tablicy NAT brak odpowiedniego wpisu to musi nastąpić translacja dynamiczna. Adres źródłowy zostaje zastapiony adresem globalnym z predefiniowanej puli adresowej.
NAT STATYCZNY I DYNAMICZNY - cd
POŁĄCZENIA PRZEZ NAT W routerze translacja wewnątrz zewnątrz odbywa się po routingu. a wewnątrz zewnątrz pzed routingiem. Host 198.5.5.55 odpowiada hostowi 10.0.0.1 wykorzystując adres docelowy 193.9.9.1 Gdy router otrzyma pakiet z wewnętrznym globalnym adesem 193.9.9.1 dokonuje przeglądu tablicy NAT w celu określenia przypisanego w niej wewnętrznego adresu lokalnego.
POŁĄCZENIA PRZEZ NAT - cd Załóżmy, że host 10.0.0.1 (po lewej) przesyła pakiet do hosta również 10.0.0.1 (po prawej). Oczywiście ten ostatni host ma adres wewnetrzny globalny 198.5.5.1 i to on jest używany jako adres docelowy. Pierwszy pakiet. Który dociera do routera spod adresu 10.0.0.1 powoduje, że router sprawdza swoją tablicę NAT Router zastępuje adres źródłowy wewnętrznym adresem globalnym znalezionym w tablicy NAT. Jeżeli w tablicy NAT brak odpowiedniego wpisu to musi nastąpić translacja dynamiczna. Adres źródłowy zostaje zastapiony adresem globalnym z predefiniowanej puli adresowej.
TRANSLACJA PAT Translacja adresów w układzie jeden do wielu polega na określeniu połączenia za pomocą przypisanego mu portu w tablicy translacji. Metoda translacji jeden do wielu nazywana jest translacją PAT (ang. Port Addess Translation) lub według IETF jako NAPT (ang.network Address and Port Translation) a w świecie LINUX-a jako masquerading. Ograniczeniem tej metody jest ilość wolnych portów. Należy pamiętać, że PAT najpierw próbuje w trakcie translacji wykorzystać wszystkie dostępne numery portów dla danego adresu a dopiero potem wykorzystuje kolejny adres (przez kolejne przypisywanie numerów porów)
ZASADA TRANSLACJI PAT
ZASADA TRANSLACJI PAT - cd W przykładzie z poprzedniego i bieżącego slajdu, dwa hosty o adesach 10.1.1.1 oaz 10.1.1.2 nawiązały połączenie z serwerem WWW (port 80 serwera o adresie 65.38.12.9) Adresy lokalne zewnętrzne dla serwera są identyczne. Mogą one w niektórych przypadkach również podlegać translacji.
ZAMIANA I UKRYWANIE STRUKTURY ADRESOWEJ Należy zwrócić uwagę, że dla zapewnienia poprawności routingu, translacja adresów musi mieć miejsce tak w układzie wewnątrz zewnątrz jak i zewnątrz wewnątrz. Jeżeli z jakiś powodów zmieniamy pule adresową a nie ma mozliwości przenumerowania hostów wewnatrz naszej sieci można zatoswać NAT/PAT.
PROTOKÓŁ IPv4 - PRZYPOMNIENIE IP (ang. Internet Protocol) definiuje mechanizm zawodnego przenoszenia bez użycia połączenia. Zawiera trzy podstawowe grupy definicji: definicję podstawowej jednostki przesyłanych danych (ang. PDU) definicję operacji trasowania (ang. Routing) wykonywanej przez oprogramowanie IP (wybieranie trasy, przez którą będą przesyłane PDU) definicje reguł służących do realizacji idei zawodnego przenoszenia pakietów ( opis, w jaki sposób routery powinny przetwarzać pakiety, jak powinny być generowane komunikaty o błędach, kiedy pakiety mogą być porzucone itp)
PROTOKÓŁ IPv4 - PRZYPOMNIENIE IP jest przykładem sieci protokołu bezpołączeniowego co oznacza, że jest w stanie obsługiwać wymianę danych pomiędzy dwoma hostami z pominięciem fazy uprzedniego nawiązywania połączenia. IP nie zapewnia żadnej korekcji błędów, nie jest też w stanie zapewnić w skrajnym przypadku, że część pakietów w ogóle nie zaginie. IP ukrywa strukturę sieci przed użytkownikiem co oznacza, że z punktu widzenia użytkownika tworzy sieć wirtualną pomiędzy jego komputerem a komputerem, z którym wymieniane są dane; przezroczystość sieci uzyskuje się poprzez tzw. enkapsulacje. Pozwala to na łatwą instalację i konfigurację sieci opartych o IP szczególnie w przypadku podłączania wielu różnych sieci do gatway a. IP obsługuje tzw. fragmentację czyli dzieli poszczególne transmitowane PDU na mniejsze jednostki.
PROTOKÓŁ IPv4 - DATAGRAM Słowo 32 bitowe Słowo 16 bitowe bajt Słowo 16 bitowe bajt 4 bity 4 bity Wersja protokołu IP Długość nagłówka n*4 Bajty 3 bity Czas życia Datagramu TTL Długość całkowita datagramu w bajtach Typ usługi TOS Identyfikacja 13 bitów Przesunięcie fragmentacji Znaczniki Protokół przesyła-jący dane Suma kontrolna nagłówka Adres źródłowy datagramu - aaa.bbb.ccc.ddd Adres docelowy datagramu - xxx.yyy.zzz.vvv Opcje nagłówka (mogą nie występować) Dane przesyłane w pakiecie
PROTOKÓŁ IPv4 DATAGRAM - CD Słowo 32 bitowe Słowo 16 bitowe bajt 4 bity Wersja protokołu IP Słowo 16 bitowe bajt 4 bity Długość nagłówka n*4 Bajty 3 bity Typ usługi TOS 13 bitów Długość całkowita datagramu w bajtach Obecna wersja 4 Docelowo IPv6 z m.in. 128 bitowym adresem, oraz mechanizmami QoS TOS type of service 3 bitowy wskaźnik priorytetu danych (0-7) Flagi optymalizacji trasy: minimalne opóźnienia, maksymalna przepustowość, najlepsza poprawność, najniższy koszt połączenia
PROTOKÓŁ IPv4 DATAGRAM - CD Słowo 32 bitowe Słowo 16 bitowe bajt 4 bity Słowo 16 bitowe bajt 4 bity Identyfikacja Numer seryjny utworzonego przez nadawcę datagramu. Wraz jego adresem IP jednoznacznie identyfikuje każdy datagram w całym Intenecie. 3 bity 13 bitów Znaczniki Przesunięcie fragmentacji Umożliwia przesłanie datagramów przez podsieci o różnych MTU Używane są dwie flagi: Nie fragmentować Pakiet zfragmentowany
PROTOKÓŁ IPv4 DATAGRAM - CD Słowo 32 bitowe Słowo 16 bitowe bajt 4 bity Słowo 16 bitowe bajt 4 bity Czas życia Datagramu TTL 3 bity Protokół przesyła-jący dane Zmniejszany po każdym przejściu przez węzeł Zabezpiecza przed zapętleniem datagramu w sieci Użyteczny przy próbach śledzenia trasy (traceroute) 13 bitów Suma kontrolna nagłówka Zabezpiecza przed pojedynczymi i seryjnymi błędami w nagłówku. Prosty algorytm (suma modulo 2) ICMP (Internet Control Message Protocol) IGMP (Internet Group Management Protocol) UDP (User Datagram Protocol) TCP (Transmission Control Protocol)
PROTOKÓŁ IPv4 DATAGRAM - CD Słowo 32 bitowe Słowo 16 bitowe bajt 4 bity Słowo 16 bitowe bajt 4 bity 3 bity 13 bitów Opcje nagłówka (mogą nie występować) To pole nagłówka o zmiennej długości w zamierzeniach autorów umożliwiało uzyskanie m.in. następujących funkcji: ograniczenia dotyczące bezpieczeństwa, zapisu trasy podróży przez sieć, zapisu czasu wyjścia datagramu z danego węzła sieci (router), ustalenie swobodnej trasy routowania - lista węzłów przez które datagram musi przejść (pomiędzy nimi droga może być wybierana dowolnie), ustalenie dokładnej trasy routowania datagram nie może pójść inną drogą niż wskazana na liście
IPv4 VERSUS IPv6 Pomimo zwiększenia rozmiaru IP w wersji 6, jego format stał się zdecydowanie prostszy. Podstawowy nagłówek IPv6 ma stały rozmiar równy 40 oktetów, a w stosunku do nagłówka IPv4 6 z 12 pól zostało usunietych, pozostałe zostały poddane modyfikacji a kilka pół dodano całkowicie nowych.
IPv6 GŁÓWNE ZMIANY Rozszerzona przestrzeń adresowa do 16 bajtów Uproszczenie formtu nagłówków Brak sumy kontrolnej dla pakietu warstwy 3 OSI Brak segmentacji (zastosowanie Path MTU discovery) Wbudowane mechanizmy autentykacji i szyfrowania (IPSec) Brak adresowania brodcastowego.
NAGŁÓWEK IPv6 Version Number: Jest to 4 bitowe pole (znaczenie podobne jak w IPv4). Traffic Class: Jest to 8 bitow pole podobne znaczeniem do pola ToS (ang, type of service ). Traffic Class nadaje pakietowi klasę ruchu, która może być wykorzystywana przez modele QoS
NAGŁÓWEK IPv6 Flow Label: Jest to nowe w stosunku do IPv4, 20 bitowe pole. Pole to pozwala na przypisanie pakietu do określonego strumienia w celu wyróznienia go w warstwie 3. Dzięki temu możliwe jest specyficzne przetwaranie pakietu przez routery na ścieżce przesyłu. Payload Length: Znaczenie tego pola jest podobne do pola Całkowita Długość (ang. Total Length) w polu IPv4, pole Payload Length wskazuje całkowitą długośc danych w pakiecie.
NAGŁÓWEK IPv6 Next Header: Wartość tego pola wskazuje typ informacji dołaczony za podstawowym nagłówkiem IPv6. Może to być wartość wskazująca na pakiet warstwy transportowej, np. TCP lub UDP lub na tzw. Nagłówek Rozszerzony (ang. Extension Header) Hop Limit: Znaczenie ego pola jest podobne do pola Czas Życia (ang. Time to Live) w nagłówku IPv4. Wartośc pola określa maksymalną liczbę hop-ów na trasie datagramu IPv6.
NAGŁÓWEK IPv6 Source Address: 128 bitowy adres IPv6 nadawcy. Destination Address: 128 bitowy adres Ipv6 odbiorcy. Należy pamiętać, że w nagłówku IPv6 nie występuje pole Checksum dzięki czemu modyfikacja nagłówka nie powoduje konieczności przeliczania pól kontrolnych.