ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl NAT, PAT, ACL 1
Wykład Translacja adresów sieciowych: NAT PAT Listy kontroli dostępu: ACL NAT, PAT, ACL 2
NAT Translacja adresów sieciowych - NAT (ang. Network Address Translation) została opisana w dokumencie RFC 1631. Wyróżniamy dwa typy translacji: statyczny dynamiczny NAT, PAT, ACL 3
Adresy IP publiczne i prywatne NAT, PAT, ACL 4
Statyczna translacja adresów Translacja statyczna polega na odwzorowaniu adresu sieci wewnętrznej na adres unikatowy w skali światowej w stosunku 1:1, tzn. jednemu adresowi w sieci lokalnej odpowiada jeden adres unikatowy w skali globalnej. Jej stosowanie jest uzasadnione, gdy posiadamy niewiele hostów w sieci lokalnej i odpowiednią liczbę adresów globalnych. Adres sieci lokalnej Adres globalny 192.168.1.3 212.110.254.12 192.168.1.5 212.110.254.15 192.168.1.6 212.110.254.19 192.168.1.34 212.110.254.6 192.168.1.14 212.110.254.8 NAT, PAT, ACL 5
Statyczna translacja adresów NAT, PAT, ACL 6
Translacja adresów Widok nagłówka pakietu IP przed translacją: Wersja Długość nagłówka Typ obsługi Długość całkowita Identyfikacja Znacznik Przesunięcie fragmentu Czas życia Typ Suma kontrolna nagłówka 192.168.1.14 212.51.207.68 Opcje IP Uzupełnienie Początek danych NAT, PAT, ACL 7
Translacja adresów Widok nagłówka pakietu IP po translacji: Wersja Długość nagłówka Typ obsługi Długość całkowita Identyfikacja Znacznik Przesunięcie fragmentu Czas życia Typ Suma kontrolna nagłówka 212.110.254.8 212.51.207.68 Opcje IP Uzupełnienie Początek danych NAT, PAT, ACL 8
Translacja adresów Widok nagłówka pakietu IP przed translacją: Wersja Długość nagłówka Typ obsługi Długość całkowita Identyfikacja Znacznik Przesunięcie fragmentu Czas życia Typ Suma kontrolna nagłówka 212.51.207.68 212.110.254.8 Opcje IP Uzupełnienie Początek danych NAT, PAT, ACL 9
Translacja adresów Widok nagłówka pakietu IP po translacji: Wersja Długość nagłówka Typ obsługi Długość całkowita Identyfikacja Znacznik Przesunięcie fragmentu Czas życia Typ Suma kontrolna nagłówka 212.51.207.68 192.168.1.14 Opcje IP Uzupełnienie Początek danych NAT, PAT, ACL 10
Dynamiczna translacja adresu sieciowego Dynamiczna translacja adresu sieciowego polega na odwzorowaniu adresów sieci lokalnej na publiczne adresy globalne, w szczególności na pojedynczy publiczny adres globalny. Wyróżniamy dwa zasadnicze typy dynamicznej translacji adresów sieciowych: translacja adresów sieciowych (NAT ang. Network Address Translation) translacja adresów portów (PAT ang. Port Address Translation) NAT, PAT, ACL 11
Dynamiczna translacja adresu sieciowego Dodatkowo translacje adresów sieciowych dzielimy na: SNAT (ang. Source Network Address Translation) translacja adresu źródłowego DNAT (ang. Destination Network Address Translation) translacja adresu docelowego NAT, PAT, ACL 12
SNAT SNAT jest to technika polegająca na zmianie adresu źródłowego w wyniku translacji adresu na podstawie wpisów w tablicy translacji. Stosowana jest ona powszechnie w sieciach lokalnych, które maja jeden bądź kilka przydzielonych adresów globalnych. Pakiet wysłany z hosta w sieci lokalnej przychodzi do routera, gdzie na podstawie wpisu w tablicy translacji następuje zmiana adresu źródłowego z adresu tego hosta na adres zdefiniowany w tablicy translacji. Może być to jeden z wielu adresów zdefiniowanych w puli. NAT, PAT, ACL 13
SNAT NAT, PAT, ACL 14
DNAT DNAT jest to technika polegająca na zmianie adresu docelowego w wyniku translacji adresu na podstawie wpisów w tablicy translacji. Stosowana jest często w przypadku chęci posiadania dostępu do hosta/serwera znajdującego się wewnątrz sieci lokalnej, z np. hosta w Internecie. Pakiet wysłany z hosta znajdującego sie poza siecią lokalną dochodzi do urządzenia obsługującego NAT, gdzie na podstawie wpisu w tablicy translacji następuje zmiana adresu docelowego w pakiecie na adres hosta/serwera znajdującego się w sieci lokalnej. NAT, PAT, ACL 15
DNAT NAT, PAT, ACL 16
Translacja adresów portów (PAT) PAT jest to mechanizm polegający na odwzorowaniu wielu adresów prywatnych na jeden adres publiczny. W mechanizmie tym dokonywana jest zmiana adresu źródłowego na adres (w tym może być to adres rutera/bramy). Następuje próba zachowania pierwotnego numeru portu, na którym aplikacja próbuje uzyskać połączenie z serwerem/hostem znajdującym sie w Internecie. W przypadku, gdy dany port jest juz wykorzystywany następuje zmiana numeru portu na kolejny z odpowiedniej grupy: 1-511;512-1023;1024-65535. NAT, PAT, ACL 17
PAT NAT, PAT, ACL 18
Charakterystyka NAT (bezpieczeństwo) Zastosowanie translacji adresów pozwala na zabezpieczenie sie przed rozpowszechnianiem informacji o topologii sieci LAN do sieci WAN. Do sieci WAN nie przedostają się żadne informacje o sposobie adresowania w sieci lokalnej, a także o topologii sieci lokalnej. Z sieci lokalnej do sieci WAN przedostają sie jedynie informacje o adresie zewnętrznym, czyli adresie przydzielonym od usługodawcy internetowego. Stosując translację adresów nie mamy możliwości śledzenia pakietu na całej ścieżce od nadawcy do odbiorcy. NAT, PAT, ACL 19
Charakterystyka NAT (adresy IPv4) We wczesnych latach istnienia sieci Internet, kiedy tylko uniwersytety i instytucje rządowe go używały, cztery miliardy adresów IPv4 wydawały się być granicą nie do osiągnięcia. W chwili obecnej szacuje się, że każdego dnia przybywa kilkanaście tysięcy nowych hostów podłączonych do sieci. NAT, PAT, ACL 20
Charakterystyka NAT (adresy IPv4) W obecnej sytuacji, translacja adresów pozwala na znaczne zredukowanie zapotrzebowania na adresy publiczne. W przypadku sieci np. ze 100 hostami, aby wszystkie hosty miały dostęp do sieci Internet powinniśmy każdemu hostowi przypisać adres publiczny. Jeśli zastosowalibyśmy translację adresów, to moglibyśmy ustawić jeden adres wyjściowy do sieci zewnętrznej dla całej sieci LAN (100 hostów). Pozwoliłoby to na zaoszczędzenie aż 99 adresów publicznych, co w obecnej sytuacji, gdy wyczerpują sie adresy publiczne pozwala na podłączenie znacznie większej ilości hostów do Internetu. NAT, PAT, ACL 21
Charakterystyka NAT (dostęp do LAN z zewnątrz) Stosowanie techniki NAT powoduje to, że nie będziemy mogli umieścić serwera w sieci LAN, tak, by był on widoczny z zewnątrz (z sieci WAN). Administrator sieci LAN, musi ustawić na routerze odpowiednią translację DNAT. NAT, PAT, ACL 22
Charakterystyka NAT (DNS) W przypadku stosowania DNAT, wpis w DNS prowadzi do adresu zewnętrznego, który następnie zostanie przez bramę przetłumaczony na adres z sieci LAN. NAT, PAT, ACL 23
Charakterystyka NAT (zmiana ISP) Zastosowanie translacji adresów pozwala na zaoszczędzenie kosztów. W przypadku niestosowania translacji adresów i zmiany usługodawcy dostarczającego nam Internet musimy zmienić adresy na wszystkich hostach, które mają mieć dostęp do Internetu. Operacja taka zabiera sporo czasu i generuje niepotrzebne koszty. W przypadku zastosowania translacji adresów cała operacja zajmuje zaledwie chwile wystarczy zmodyfikować konfigurację routera przez co koszty tej czynności są ograniczone do minimum. NAT, PAT, ACL 24
Charakterystyka NAT (trasy alternatywne) Dzięki zastosowaniu translacji możemy skierować ruch generowany przez różne usługi na różne adresy zewnętrzne, co pozwala na zoptymalizowanie obciążenia łącz. Są to tak zwane pule równoważące połączenie. Możemy dzięki temu także monitorować, która z usług (protokół) (SMTP, POP3, FTP, HTTP) generuje największy ruch. NAT, PAT, ACL 25
Charakterystyka NAT (opóźnienia) Niestety zastosowanie translacji adresów powoduje także wprowadzanie opóźnień. Czas przepływu pakietu wydłuża sie ze względu na to, że przy transmisji adres źródłowy w każdym pakiecie musi zostać zamieniony (na routerze brzegowym) na inny - zewnętrzny. Podobnie jeśli chodzi o adresy źródłowe przy pakietach powrotnych, wtedy adres w polu adresu docelowego zmieniany jest na ten, który został odczytany z tablicy translacji. Powoduje to, że opóźnienia transmisji w przypadku niektórych sieci mogą być znaczne. NAT, PAT, ACL 26
Charakterystyka NAT (wiele serwerów tej samej usługi w LAN) W przypadku gdy w sieci LAN istniej wiele serwerów tej samej usługi i tylko jeden adres zewnętrzny, jeden z serwerów nie będzie mógł korzystać ze swojego standardowego portu (widok z sieci zewnętrznych). NAT, PAT, ACL 27
Charakterystyka NAT (FTP, VoIP, VPN, ) W przypadku translacji adresów, szczególnie DNAT, mogą pojawić się różnego rodzaju problemy z działaniem innych protokołów, które przenoszone przez zmienione pakiety IP mogą nie działać prawidłowo np.: FTP, VoIP, VPN. NAT, PAT, ACL 28
Problemy z komunikacją w sieci laboratoryjnej OUTSIDE 200. 200.200.0/24 Rozwiązanie: outside security- level 0 inside security- level 100 192. 168.1.0/24 dmz security- level 50 176.16.0.0/16 Routing dynamiczny Routing statyczny + NAT 10.0.0.0/8 VLAN1 10.1.0.0/16 10.10.0.0/16 VLAN 10 10.20.0.0/16 VLAN 20 NAT, PAT, ACL 29
SNAT w sieci laboratoryjnej OUTSIDE 200. 200.200.0/24 dmz security- level 50 outside security- level 0 192. 168.1.0/24 inside security- level 100 176.16.0.0/16 VLAN1 10.0.0.0/8 10.1.0.0/16 10.10.0.0/16 VLAN 10 10.20.0.0/16 VLAN 20 NAT, PAT, ACL 30
DNAT w sieci laboratoryjnej NAT, PAT, ACL 31
Access Control List Idea działania list dostępu: NAT, PAT, ACL 32
ACL Etapy tworzenia ACL: Definiowanie listy dostępu Dodanie listy dostępu do interfejsu NAT, PAT, ACL 33
ACL definiowanie Definicja warunku (dopasowania) rozszerzonej listy dostępu: ASA(config)# access-list nr_listy extended <permit deny> protokół adres_źródła maska_źródła adres_celu maska_celu eq nr_portu Router(config)# access-list nr_listy <permit deny> protokół adres_źródła maska_źródła adres_celu maska_celu eq nr_portu NAT, PAT, ACL 34
ACL definiowanie Jeśli chcemy określić każdy, dowolny adres i maskę sieci można zastąpić słowem any (any = 0.0.0.0 0.0.0.0). Jeśli chcemy do listy dostępu dodać wiele warunków (dopasowań) należy w następnym poleceniu access-list podać ten sam numer listy. Kolejność kolejnych warunków (dopasowań) jest ważna, zgodnie z nią będą sprawdzane kolejne dopasowania. NAT, PAT, ACL 35
ACL dodanie do interfejsu Dodanie listy dostępu do interfejsu: ASA(config)# access-group nr_listy <in out> interface nazwa_interfejsu Router(config-if)# ip access-group nr_listy <in out> NAT, PAT, ACL 36
ACL weryfikacja ASA# show interface ASA# show access-list Router# show ip interface Router# show access-list NAT, PAT, ACL 37
ZiMSK KONIEC NAT, PAT, ACL 38