logo

Tłumaczenie adresów sieciowych (NAT)

Aby uzyskać dostęp do Internetu, potrzebny jest jeden publiczny adres IP, ale możemy używać prywatnego adresu IP w naszej sieci prywatnej. Ideą NAT jest umożliwienie wielu urządzeniom dostępu do Internetu za pośrednictwem jednego adresu publicznego. Aby to osiągnąć, wymagane jest tłumaczenie prywatnego adresu IP na publiczny adres IP. Tłumaczenie adresów sieciowych (NAT) to proces, w którym jeden lub więcej lokalnych adresów IP jest tłumaczonych na jeden lub więcej globalnych adresów IP i odwrotnie, w celu zapewnienia dostępu do Internetu lokalnym hostom. Dokonuje także translacji numerów portów, tj. maskuje numer portu hosta innym numerem portu w pakiecie, który będzie kierowany do miejsca docelowego. Następnie dokonuje odpowiednich wpisów adresu IP i numeru portu w tabeli NAT. NAT zazwyczaj działa na routerze lub zaporze sieciowej.

Działa translacja adresów sieciowych (NAT) –
Ogólnie rzecz biorąc, router graniczny jest skonfigurowany dla NAT, tj. router, który ma jeden interfejs w sieci lokalnej (wewnątrz) i jeden interfejs w sieci globalnej (zewnętrznej). Kiedy pakiet przechodzi poza sieć lokalną (wewnątrz), wówczas NAT konwertuje ten lokalny (prywatny) adres IP na globalny (publiczny) adres IP. Kiedy pakiet wchodzi do sieci lokalnej, globalny (publiczny) adres IP jest konwertowany na lokalny (prywatny) adres IP.



Jeżeli w NAT zabraknie adresów, tj. w skonfigurowanej puli nie pozostanie żaden adres, pakiety zostaną odrzucone i wysłany zostanie nieosiągalny pakiet protokołu ICMP (Internet Control Message Protocol) do miejsca docelowego.

Po co maskować numery portów?
Załóżmy, że w sieci są połączone dwa hosty A i B. Teraz obaj jednocześnie żądają tego samego miejsca docelowego, na tym samym numerze portu, powiedzmy 1000, po stronie hosta. Jeśli NAT wykonuje tylko translację adresów IP, to gdy ich pakiety dotrą do NAT, oba ich adresy IP zostaną zamaskowane przez publiczny adres IP sieci i wysłane do miejsca docelowego. Miejsce docelowe będzie wysyłać odpowiedzi na publiczny adres IP routera. Zatem po otrzymaniu odpowiedzi dla NAT nie będzie jasne, która odpowiedź należy do którego hosta (ponieważ numery portów źródłowych zarówno dla A, jak i B są takie same). Dlatego, aby uniknąć takiego problemu, NAT maskuje również numer portu źródłowego i dokonuje wpisu w tabeli NAT.

Adresy wewnętrzne i zewnętrzne NAT –
Wewnątrz znajduje się adres, który należy przetłumaczyć. Zewnętrzne odnosi się do adresów, które nie podlegają kontroli organizacji. Są to adresy sieciowe, w których zostanie wykonane tłumaczenie adresów.



hashset vs hashmap
    Inside local adres – adres IP przypisany do hosta w sieci Inside (lokalnej). Adres prawdopodobnie nie jest adresem IP przydzielonym przez usługodawcę, czyli są to prywatne adresy IP. To jest host wewnętrzny widziany z sieci wewnętrznej.
    Wewnętrzny adres globalny – adres IP reprezentujący jeden lub więcej wewnętrznych lokalnych adresów IP na zewnątrz. To jest host wewnętrzny widziany z sieci zewnętrznej.
    Zewnętrzny adres lokalny – Jest to rzeczywisty adres IP hosta docelowego w sieci lokalnej po translacji.
    Zewnętrzny adres globalny – jest to host zewnętrzny widziany z sieci zewnętrznej. Jest to adres IP zewnętrznego hosta docelowego przed translacją.

Typy translacji adresów sieciowych (NAT) –
Istnieją 3 sposoby konfiguracji NAT:

    Statyczny NAT – w tym przypadku pojedynczy niezarejestrowany (prywatny) adres IP jest mapowany na legalnie zarejestrowany (publiczny) adres IP, tj. mapowanie jeden do jednego między adresami lokalnymi i globalnymi. Jest to powszechnie używane w przypadku hostingu internetowego. Nie są one używane w organizacjach, ponieważ istnieje wiele urządzeń wymagających dostępu do Internetu, a do zapewnienia dostępu do Internetu potrzebny jest publiczny adres IP.

    Załóżmy, że jeśli istnieje 3000 urządzeń wymagających dostępu do Internetu, organizacja musi kupić 3000 adresów publicznych, co będzie bardzo kosztowne.
    Dynamiczny NAT – w tym typie NAT niezarejestrowany adres IP jest tłumaczony na zarejestrowany (publiczny) adres IP z puli publicznych adresów IP. Jeśli adres IP puli nie jest wolny, pakiet zostanie odrzucony, ponieważ tylko stała liczba prywatnych adresów IP może zostać przetłumaczona na adresy publiczne.



    Załóżmy, że jeśli istnieje pula 2 publicznych adresów IP, w danym momencie można przetłumaczyć tylko 2 prywatne adresy IP. Jeśli trzeci prywatny adres IP chce uzyskać dostęp do Internetu, pakiet zostanie odrzucony, dlatego wiele prywatnych adresów IP jest mapowanych na pulę publicznych adresów IP. Translację NAT stosuje się, gdy liczba użytkowników chcących uzyskać dostęp do Internetu jest stała. Jest to również bardzo kosztowne, ponieważ organizacja musi kupić wiele globalnych adresów IP, aby utworzyć pulę.
    Translacja adresów portów (PAT) — jest to również znane jako przeciążenie NAT. W ten sposób wiele lokalnych (prywatnych) adresów IP można przetłumaczyć na jeden zarejestrowany adres IP. Numery portów służą do rozróżniania ruchu, tj. tego, który ruch należy do jakiego adresu IP. Jest to najczęściej stosowane rozwiązanie, ponieważ jest ekonomiczne, ponieważ tysiące użytkowników może być podłączonych do Internetu przy użyciu tylko jednego prawdziwego globalnego (publicznego) adresu IP.

Zalety NAT-u –

  • NAT przechowuje legalnie zarejestrowane adresy IP.
  • Zapewnia prywatność, ponieważ adres IP urządzenia, wysyłający i odbierający ruch, będą ukryte.
  • Eliminuje konieczność zmiany numeracji adresów w miarę rozwoju sieci.

Wady NAT –

  • Tłumaczenie powoduje opóźnienia ścieżki przełączania.
  • Niektóre aplikacje nie będą działać, gdy włączona jest funkcja NAT.
  • Komplikuje protokoły tunelowania, takie jak IPsec.
  • Ponadto router będący urządzeniem warstwy sieciowej nie powinien ingerować w numery portów (warstwa transportowa), ale musi to zrobić ze względu na NAT.