NAT (Network Address Translation) NAT – usługa translacji adresów realizowana w celu: - umożliwienia dostępu do sieci większej ilości hostów niz ilość dostępnych adresów IP - podniesienia poziomu bezpieczeństwa sieci prywatnej - uproszczenia adaminstracji siecią prywatną NAT (Network Address Translation) NAT – zasada działania: Niech m – ilość adresów, które maja być tłumaczone. Niech n – ilość adresów na które będzie dokonywane tłumaczenie. Wyróżnimy trzy podstawowe rodzaje translacji: 8. NAT statyczny 9. NAT dynamiczny 10. Translację portów (NAPT) (Masquarading) NAT (Network Address Translation) NAT statyczny (m,n>=1 i m=n ) Przy statycznej translacji tłumaczymy adresy pomiędzy sieciami o takim samym rozmiarze. Dany adres IP jest zawsze tłumaczony na taki sam adres. Strategia ta jest łatwa do zaimplementowania i wymaga tylko kilku prostyczh transformacji adresu wejsciowego: new-address = new-network OR (old-address AND (NOT netmask)) Dodatkowo informacja o translacji nie musi być nigdzie przechowywana. Możliwy jest dostep do hostów z sieci zewnętrznej – ich adresy przy odwołaniach z zewnątrz są tylko inne niż adresy wewnętrzne. NAT (Network Address Translation) Przykład: Przypuśćmy że dokonujemy translacji adresów z sieci 192.168.0.128 na sieć 212.191.65.0 przy masce 255.255.255.128. Wtedy np. adres 192.168.0.220 jest tłumaczony na adres: 11010100101111110100000100000000 OR 11000000101010000000000011011100 AND NOT 11111111111111111111111110000000 co daje 212.191.65.92 NAT (Network Address Translation) NAT dynamiczny (m>=1 and m>=n ) Translacja dynamiczna jest konieczna gdy ilość adresów IP do translacji nie jest równa ilości adresów na które tłumaczymy lub gdy z innych względów (np. bezpieczeństwa) nie jest wskazane użycie translacji statycznej. Liczba hostów, które bedą mogły komunikować się z siecią zewnetrzną jest ograniczona przez ilość dostępnych adresów NAT (na które tłumaczymy). Gdy wszystkie adresy NAT zostaną użyte kolejne połączenia nie mogą być realiowane i muszą być odrzucone przez router NAT powiadamiając nadawcę np. że sieć docelowa (host) jest nieosiągalny. Dynamiczny NAT jest bardziej skomplikowany niż statyczny gdyż musi przechowywać informacje o odokonanej translacji. NAT (Network Address Translation) NAT dynamiczny może być użyteczny także gdy mamy wystarczajacą ilość adresów NAT np. m=n (lub nawet m<n) gdyż utrudnia on dostęp do sieci prywatnej z sieci zewnętrznej, gdyż ten sam adres IP może wskazywać na zupełnie inny host. Połączenia z sieci zewnętrznej są możliwe tylko gdy host, który ma być osiagniety ma wciąż przypisany adres NAT (przechowywany przez pewien „timeout”). NAT (Network Address Translation) Przykład: - - - - tłumaczymy wszystkie IP z sieci klasy B 138.201 na adresy sieci klasy C 178.201.112 (adrsy NAT) każde nowe połączenie z sieci wewnętrznej do sieci zewnętrznej ma przypisywane jeden z dostępnych(wolnych) adresów NAT jeżeli mapowanie dla danego adresu wewnętrznego istnieje jest ono używane tak długo jak mapowanie istnieje host może być osiagniety z zewnątrz NAT (Network Address Translation) NAT (Network Address Translation) Masquerading (NAPT) (m>=1 and n=1) Specjalny przypadek dynamicznego NAT (translacja m do 1). Najczęściej obecnie używana technika translacji. Powoduje że wiele adresów IP z sieci wewnetrznej jest ukrytych i widocznych na zewnatrz jako pojedynczy adres. W przciwieństwie do dynamicznego NAT nie oznacza to jednak że tylko jedno połączenie jest dostepne w danym czasie. Większa ilość połączeń jest multipleksowana przy użyciu informacji o portach TCP i jest ograniczona tylko przez ilość dostępnych portów. NAT (Network Address Translation) Zasada działania: - - dokonuje się dynamiczna translacja adresu IP z sieci wewnętrznej na pojedynczy adres NAT port zródłowy jest zmieniany na wolny port z pewnego skonfigurowanego zakresu, informacja o mapowaniu adresu zródłowego i portu żródłowego do nowego adresu i portu i zapisywana w tablicy NAT NAT (Network Address Translation) NAT (Network Address Translation) Zaletą maskowania jest że potrzebny jest tylko jeden publiczny adres IP pozwalając całej sieci prywatnej na dostęp do Internetu. Ponadto w przeciwieństwie do gatway-i aplikacyjnych maskowanie pozwala na używanie szerokiego zbioru usług np. opartych nie tylko na TCP, ale również UDP. NAT (Network Address Translation) Translacja adresów używana jest również do tworzenia tzw. wirtualnych serwerów w znaczeniu, że mamy jeden adres IP, który reprezntuje serwer określonej usługi, dla którego jednak nie istnieje rezczywiste urzadzenie oraz mamy szereg innych adresów IP, dla których istnieją takie urządzenia. Kiedy łączymy się z wirtualnym IP, NAT dokonuje translacji na adres rzeczywitego urządzenia. W zależności od algorytmu użytego do wyboru rzeczywistego adresu IP, wirtualne serwery mogą służyć różnym celom. NAT (Network Address Translation) NAT (Network Address Translation) Wirtualne serwery mogą być wykorzystane: dla zapewnienia mechanizmu „load balancing” (rozładowania obciążenia) gdy wybór rzeczywistego urządzenia będzie odbywał się np. na podstawie stopnia obciążenia rzeczywistych urządzeń lub np. urządzenia bedą wybierane sekwencyjnie. dla zapewnienia mechanizmu „fault tolerance” gdy rzeczywiste urządzenia duplikują usługi