Zgodnie z RFC 1918 zaleca się by organizacje dla hostów

Transkrypt

Zgodnie z RFC 1918 zaleca się by organizacje dla hostów
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.