Prijevod mrežne adrese
Prijevod mrežne adrese ljepljiva je traka koja je omogućila rad IPv4 dugo nakon što su njegove adrese ponestale. To je i razlog zašto peer-to-peer aplikacijama treba bušenje rupa, zašto se vaš telefon ne može izravno kontaktirati s interneta i zašto se video pozivi ponekad odbijaju spojiti na određene mreže. Vrijedno razumijevanja u detalje.
Cjeloviti članak nalazi se u nastavku na engleskom jeziku.
Prevođenje mrežne adrese (NAT) je tehnika koju usmjerivač koristi kako bi mnogim uređajima na privatnoj mreži omogućio dijeljenje jedne javne IP adrese. To je izvorno bila zaustavna točka za iscrpljenost IPv4 adrese; postao je stalni dio gotovo svake potrošačke internetske veze.
Osnovni rad
Vaša kućna mreža obično koristi privatne IP adrese iz jednog od raspona RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Oni se ne mogu usmjeravati na javnom Internetu; 192.168.1.42 vašeg prijenosnog računala ne znači ništa izvan vaše kuće.
Kada vaše prijenosno računalo otvori vezu s example.com:443, paket napušta vaše prijenosno računalo s izvorom 192.168.1.42:55123. Vaš usmjerivač presreće paket i prepisuje izvor na your.public.ip:55123 (ili na novi priključak koji je usmjerivač odabrao), zatim ga prosljeđuje dalje. Vaš usmjerivač pamti mapiranje. Kada se odgovor vrati naslovljen na your.public.ip:55123, usmjerivač pregledava mapiranje i prepisuje odredište u 192.168.1.42:55123, zatim ga prosljeđuje prijenosnom računalu. Prijenosno računalo i odredište nemaju pojma da se išta od ovoga dogodilo.
Tablica mapiranja
A potrošački usmjerivač održava NAT tablicu indeksiranu prema (interni IP, interni port, vanjski IP, eksterni port, protokol). Svaki red istekne nakon što veza prestane biti aktivna — obično 30 sekundi za UDP, nekoliko minuta za TCP. Kada se tablica popuni (jeftini usmjerivači pohranjuju samo nekoliko tisuća unosa), stari ili neaktivni unosi se izbacuju.
Tipovi NAT
NAT razlikuju se po tome koliko su popustljivi u ponovnoj upotrebi preslikavanja:
- NAT s punim konusom: jednom
192.168.1.42:55123mapiran je napub.ip:55123, bilo koji vanjski host može poslati paket napub.ip:55123i on će biti proslijeđen unutra. Najviše dopušta. - Restricted-cone NAT: samo vanjski hostovi kojima je interni uređaj već poslao mogu odgovoriti.
- Port-restricted-cone: kao restricted-cone, ali također mora odgovarati port.
- Symmetric NAT: kreira se različito mapiranje za svako vanjsko odredište. Izvana, isti unutarnji uređaj izgleda kao da ima više javnih adresa koje se neprestano mijenjaju. Najrestriktivniji — i najteži za proći za peer-to-peer protokole.
Zašto NAT kvari stvari
NAT je bilo lako implementirati jer nije zahtijevao promjene na krajnjim točkama. Ali razbio je izvorni end-to-end model interneta. Specifične žrtve:
- IDolazne veze. Bez eksplicitnog prosljeđivanja porta, nitko na internetu se ne može spojiti na uređaj iza NAT-a. Samostalno hostiranje poslužitelja za igre, Minecraft svijeta ili osobne web stranice na kućnoj vezi zahtijeva ili prosljeđivanje porta ili relej.
- Per-to-peer aplikacije. Dva uređaja oba iza NAT-a ne mogu izravno nazvati jedan drugoga. Potreban im je poslužitelj za koordinaciju (STUN/ICE) za otkrivanje njihovih javnih mapiranja, a možda i relej (TURN) ako su njihovi NAT-ovi previše restriktivni da bi se mogli proći.
- Protokoli koji ugrađuju IP-ove u njihov korisni teret. Klasični FTP i SIP stavljaju klijentov IP unutar tijela protokola, što NAT ne zna da treba prepisati. Pristupnici aplikacijskog sloja (ALG-ovi) u usmjerivaču moraju raščlaniti i prepisati korisni teret — krhko zaobilazno rješenje.
NAT protiv PAT-a protiv CGNAT
Strogo govoreći, ono što većina kućnih usmjerivača radi je Port Address Translation (PAT) — port za prevođenje brojeva kao i adresa za multipleksiranje mnogih unutarnjih tokova preko jedne vanjske IP adrese. "NAT" je svakodnevni naziv za ovo. Carrier-Grade NAT ista je ideja, ali na razini ISP-a: mnogi korisnici dijele jednu javnu IP adresu, s ISP-om koji radi PAT u većem broju.
Prosljeđivanje portova i UPnP
Da biste prihvatili dolazne veze iza NAT-a, morate reći usmjerivaču "pošalji bilo koji paket koji pogodi javni port X na interni IP Y na priključak Z." To je port prosljeđivanje. Može se postaviti ručno u administratoru usmjerivača ili automatski zatražiti aplikacija putem UPnP (Universal Plug and Play) ili NAT-PMP. UPnP je zgodan i notorno nesiguran — bilo koji program na LAN-u može otvoriti rupe u vatrozidu, zbog čega neki sigurnosni vodiči preporučuju njegovo isključivanje.
Hairpin NAT i refleksija
IAko proslijedite priključak sa svog javnog IP-a na poslužitelj unutar vaše mreže, pristup tom poslužitelju iz vaše mreže koristeći javni IP naziv funkcionira samo ako usmjerivač podržava "hairpin NAT" (također nazvan NAT povratna petlja / refleksija). Mnogi jeftini usmjerivači to ne rade, zbog čega je "moj poslužitelj koji sam hostira radi izvana, ali ne iz mog kauča" uobičajena zabuna.
Ono što zamjenjuje NAT
IPv6 ima toliko adresa da je NAT nepotreban — svaki uređaj dobiva globalno usmjerivačku adresu. IPv6 mreže obično umjesto toga imaju vatrozid s praćenjem stanja, koji pruža sigurnosnu prednost NAT-a (bez neželjenog ulaza) bez kvarova s kraja na kraj. Kako usvajanje IPv6 bude raslo, NAT će postupno nestajati — ali postojat će desetljećima.
Često postavljana pitanja
- Je li NAT vatrozid?
- Ne baš, ali djeluje kao za dolazne veze. Budući da NAT stvara samo preslikavanja kao odgovor na odlazni promet, neželjeni ulazni paketi nemaju kamo otići i biti odbačeni. Ovo je stvarna zaštita, ali se ponekad brka s vatrozidom s eksplicitnim pravilima koji bi također trebao biti prisutan.
- Zašto videopozivi ponekad ne uspijevaju iza NAT-a?
- Videopozivi obično koriste UDP za medijski tok. Dva uređaja iza simetričnih NAT-ova mogu imati problema s pronalaženjem izravnog puta jer se vanjski priključak razlikuje za svako odredište. Zamjena su TURN releji kojima upravlja pozivna služba — sporiji su i skuplji, ali rade.
- Zaobilazi li VPN NAT?
- Da, na dva načina. Prvo, vanjska veza VPN-a jedina je stvar koju vaš kućni NAT mora prevesti; nakon što se tunel uspostavi, promet aplikacija unutar njega je nevidljiv lokalnom NAT-u. Drugo, iz perspektive odredišta, čini se da vaš promet dolazi s javne IP adrese VPN poslužitelja, a ne s vaše kućne IP adrese.
- Mogu li me pratiti na više web stranica zbog NAT-a?
- Više uređaja u vašem domu dijeli javni IP, tako da vanjske stranice vide mnoge tokove s istog IP-a — to je suprotno od otiska prsta pojedinaca. Ali vrijeme, otisak prsta preglednika i prijave na račun i dalje vas ponovno povezuju. NAT sam po sebi nije privatnost.
- Zašto neki softver loše radi na Wi-Fi mreži kafića?
- Kafići često koriste NAT na razini operatera ili nameću strože vrste NAT-a koji blokiraju peer-to-peer protokole, BitTorrent i neke VPN protokole. Lokalni LAN također može ograničiti neuobičajen promet. Običan HTTPS radi gotovo posvuda; sve ostalo je kocka.