Network Address Translation

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

NAT (skr. od ang. Network Address Translation, translacja adresów sieciowych; czasem Native Address Translation, translacja adresów rodzimych), znane również jako maskarada sieci lub maskarada IP (od ang. network/IP masquerading) – technika przesyłania ruchu sieciowego poprzez router, która wiąże się ze zmianą źródłowych lub docelowych adresów IP, zwykle również numerów portów TCP/UDP pakietów IP podczas ich przepływu. Zmieniane są także sumy kontrolne (zarówno w pakiecie IP jak i w segmencie TCP/UDP), aby potwierdzić wprowadzone zmiany.

Większość systemów korzystających z NAT ma na celu umożliwienie dostępu wielu hostom w sieci prywatnej do internetu przy wykorzystaniu pojedynczego publicznego adresu IP (zob. brama sieciowa). Niemniej NAT może spowodować komplikacje w komunikacji między hostami i może mieć pewien wpływ na osiągi.

Zastosowanie NAT[edytuj | edytuj kod]

Wraz ze wzrostem liczby komputerów w Internecie, zaczęła zbliżać się groźba wyczerpania puli dostępnych adresów internetowych IPv4. Aby temu zaradzić, lokalne sieci komputerowe, korzystające z adresów prywatnych, mogą zostać podłączone do Internetu przez jeden router, posiadający mniej adresów internetowych niż komputerów w tej sieci. Mimo iż w każdej prywatnej sieci może być alokowane ponad 15 milionów[1] to ograniczeniem będą używane do NAT porty, których jest 65535.

Router ten, gdy komputery z sieci lokalnej komunikują się ze światem, dynamicznie tłumaczy adresy prywatne na adresy zewnętrzne, umożliwiając użytkowanie Internetu przez większą liczbę komputerów niż posiadana liczba adresów zewnętrznych.

NAT jest często stosowany w sieciach korporacyjnych (w połączeniu z proxy) oraz sieciach osiedlowych.

Wady i zalety NAT[edytuj | edytuj kod]

Korzystanie z Internetu poprzez NAT ma pewne wady:

  • Nie można na własnym komputerze uruchomić serwera dostępnego w Internecie bez zmian wymagających interwencji administratora.
  • Utrudnione korzystanie z sieci P2P i bezpośrednie wysyłanie plików
  • Utrudnione korzystanie z gier sieciowych z osobami spoza sieci, należy skorzystać z aplikacji VPN, np. Hamachi, można też przekierować porty, ale wtedy z gry może skorzystać tylko jeden komputer (jeżeli gra jest tak zaprogramowana że portu z którego korzysta nie można zmienić).

Do zalet należą:

  • większa anonimowość, gdyż serwery, z którymi nastąpiło połączenie nie mogą zidentyfikować konkretnego hosta po samym adresie IP,
  • możliwość dostępu do Internetu dla większej ilości komputerów niż ilość dostępnych, starego typu, publicznych adresów IPv4

Rodzaje NAT[edytuj | edytuj kod]

Można wyróżnić 2 podstawowe typy NAT:

  • SNAT (Source Network Address Translation) to technika polegająca na zmianie adresu źródłowego pakietu IP na jakiś inny. Stosowana często w przypadku podłączenia sieci dysponującej adresami prywatnymi do sieci Internet. Wtedy router, przez który podłączono sieć, podmienia adres źródłowy prywatny na adres publiczny (najczęściej swój własny).
  • DNAT (Destination Network Address Translation) to technika polegająca na zmianie adresu docelowego pakietu IP na jakiś inny. Stosowana często w przypadku, gdy serwer, który ma być dostępny z Internetu ma tylko adres prywatny. W tym przypadku router dokonuje translacji adresu docelowego pakietów IP z Internetu na adres tego serwera.

Szczególnym przypadkiem SNAT jest maskarada, czyli sytuacja, gdy router ma zmienny adres IP (np. otrzymuje go w przypadku połączenia modemowego dodzwanianego). Wtedy router zmienia adres źródłowy na taki, jak adres interfejsu, przez który pakiet opuszcza router.

Oprogramowanie[edytuj | edytuj kod]

W przypadku systemu operacyjnego Linux funkcje NAT definiowane są za pomocą programów iptables lub ipchains, a w przypadku FreeBSD ipfw (IP firewall), ipf (IP filter) lub pf (OpenBSD Packet Filter).

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]

Przypisy

  1. RFC 1918; Address Allocation for Private Internets; February 1996; 3. Private Address Space "24-bit block", the second as "20-bit block", and to the third as "16-bit" block"