Network Address Translation

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif
Protokollstack för IP-nätverk
IP-skikt Protokoll
5.Applikation BitTorrent, DHCP, DNS, FTP, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, Telnet,TLS, SSL , TFTP, …
4.Transport DCCP, SCTP, TCP, RTP, UDP, IL, RUDP, …
3.Nätverk ARP, ICMP, IGMP, IP (IPv4, IPv6),RIP
2.Länk ATM, Ethernet, FDDI, ISDN, MPLS, Token Ring, PPP, SLIP, Wi-Fi, …
1.Fysiska ISDN, RS232, IrDA, Bluetooth, xDSL, …

NAT står för Network Address Translation eller nätadressöversättning. Tekniken gör det möjligt att ansluta många datorer till en internetanslutning med en eller några gemensamma IP-adresser. NAT är en funktion som byggs in i den brandvägg eller router som ansluter det lokala nätet till Internet (eller annat nät).

NAT kan användas så att varje intern adress permanent motsvarar en yttre adress eller så att motsvarigheten gäller bara tillfälligt, medan en dator kommunicerar över NAT-funktionen. Motsvarigheten kan också gälla kombinationen av TCP- eller UDP-port och IP-adress, varvid samma IP-adress kan användas av flera datorer, så länge de inte utåt behöver se ut att använda samma portar.

NAT är vanligast mellan privata nät och Internet men kan användas mellan vilka ip-baserade nät som helst.

Innehåll

Så fungerar NAT

En typisk router med NAT-funktion består av två sidor. En sida med lokal anslutning (LAN) och en sida med vidare anslutning (WAN), ofta Internet. På det lokala nätet används i allmänhet IP-adresser speciellt reserverade för detta ändamål, som inte är gångbara på det öppna publika nätet, så kallade privata adresser eller svarta adresser.

När en dator på det lokala nätet (en klient) vill skicka ett datapaket till Internet, översätts dess IP-adress av NAT-funktionen till en externt giltig IP-adress, publik adress, och kopplingen mellan de två adresserna registreras för resten av kommunikationen. När svarspaket kommer tillbaka till den externa IP-adressen, översätts IP-adressen tillbaka så att datapaketet hittar in till rätt klient på det lokala nätet.

Då kopplingen mellan inre och yttre adress på detta sätt upprätthålls endast under själva kommunikationen, behöver de datorer som för tillfället inte är aktiva utåt ingen adress, vilket är väsentligt då adresserna i IPv4, det nu allmännast använda internetprotokollet, håller på att ta slut.

IANA (nu mera heter organisationen ICANN) har tilldelat följande nät som privata nät.

10.0.0.0        -   10.255.255.255  (10/8 prefix)
172.16.0.0      -   172.31.255.255  (172.16/12 prefix)
192.168.0.0     -   192.168.255.255 (192.168/16 prefix)

Med renodlad NAT krävs det en 1:1 mappning av adresser; en publik adress har bara en översatt privat adress. Sker översättningen dynamiskt behöver poolen av publika adresser inte vara lika stor som antalet privata adresser. Adresserna kan alltså återanvändas av flera privata adresser.

Om det inte finns krav på att skilja mellan datorer som samtidigt kommunicerar med yttervärlden kan man gå ett steg längre och använda de portar som definieras i TCP- och UDP-protokollen, varvid samma publika IP-adress samtidigt kan användas av flera datorer på det lokala nätet.

PAT – Port Address Translation

Den variant på NAT som brukar användas i vanliga bredbandsroutrar heter Port Address Translation, ofta benämnd PAT eller NAT/PAT. Precis som med NAT används på det lokala nätet speciella IP-adresser, som inte är gångbara ute på det öppna nätet, och dessa adresser översätts till en på Internet gångbar extern IP-adress. Men med PAT, till skillnad från NAT, översätts även paketets TCP/UDP-portnummer av NAT-funktionen till en externt ledigt TCP/UDP-portnummer. När svarspaket kommer tillbaka till den externa IP-adressen och porten, översätts IP-adressen och portnummret tillbaka så att datapaketet hittar in till rätt klient på det lokala nätet. Precis som NAT är PAT vanligast mellan privata nät och internet men kan användas mellan vilka ip-baserade nät som helst.

Med PAT behövs det enbart en publik adress för att översätta flera privata adresser. Detta är vanligt bland privatanvändare där man har en publik IP-adress tilldelad från operatören. Bredbandsroutern adressöversätter samtliga interna datorerna till denna enda publika adress.

Historia

NAT blev under slutet av 1990-talet ett vanligt sätt att ordna det lokala nätet på många företag. En pådrivande orsak var att Internet-leverantörerna ogärna delade ut mer än ett fåtal IP-adresser till varje företag och ett enkelt sätt att kunna ansluta flera klienter var att skaffa en NAT-funktion. En annan orsak, i synnerhet inom större företag och organisationer, var att man med NAT kunde dölja den lokala infrastrukturen och därmed försvåra dataintrång.

Begränsningar

Eftersom Internet i grunden bygger på principen om att alla noder är jämlika parter som var och en kan nås via en unik identitet (IP-adress) och där all kommunikation sker mellan godtyckliga noder i nätet utan behov av inblandning från mellanhänder så utgör NAT per definition en källa till problem för Internets funktion. Applikationer (Tex. FTP) som fungerar felfritt i en miljö utan NAT kan få stora problem att kommunicera eller inte fungera alls bakom en NAT, ty med en NAT bryter man mot den grundläggande principen om att två noder på Internet antas kunna kommunicera fritt utan att någon mellanhand lägger sig i och manipulerar IP-adresser och portar. Att konstruera en NAT som tjänstgör obemärkt är också mycket svårt, i princip omöjligt, just på grund av att kommunicerande noder har kunnat anta och skall kunna anta en opåverkad kommunikationsförbindelse dem emellan.

Med en NAT så bestäms sambandet mellan en intern IP-adress och port och den publika IP-adressen och porten dynamiskt i det skede då den lokala datorn inleder kommunikation med yttervärlden. Därmed finns det ingen möjlighet att initiera kontakten med en lokal dator utifrån, ty den lokala datorn saknar publik adress tills den själv inleder kommunikationen. Detta hinder kan förvisso i vissa fall upplevas som en fördel ur datasäkerhetssynpunkt, men lokala datorer kan till följd därav inte fungera som servrar och på Internet antas alla noder kunna agera server (en server är på Internet en nod som lyssnar på inkommande anrop).

Förutom att NAT hindrar vanligtvis önskvärd kommunikation innebär dess roll som konceptuell inkräktare i nätet stora svårigheter vid realisering av dess funktion. Sambandet mellan yttre och inre adress etableras dynamiskt av NATen för den tid kommunikationen pågår, men NATen saknar i sig explicit kännedom om ändpunkternas kommunikation. Därför måste NAT-funktionen via implicita medel kunna avgöra när kommunikationen upphört, något som är svårt då en kommunikationskanal kan lämnas öppen med avsikt (exempelvis för ett oavslutat telefonsamtal). I synnerhet då apparaten för NAT-funktionen blir överbelastad ställer detta till problem.

Ett aktuellt exempel på en typ av applikationer som ofta inte fungerat när det finns en NAT i nätet är IP-telefoni, ty för att kunna bli uppringd måste man kunna vänta på kontakter utifrån, alltså agera server. Det är möjligt att konfigurera NAT-funktionen så att en fast koppling görs mellan vissa IP-adresser till vissa datorer eller från vissa kombinationer av adress och port till vissa portar på vissa datorer (portbefodran, port forwarding). Detta förutsätter en aktiv insats av nätverksadministratörerna, ett nära samarbete mellan administratörer och användare, samt att användarna har god kunskap om vari problemen sitter. Om flera datorer skall kunna användas för samma protokoll (flera webbservrar), måste skilda portar eller skilda publika ip-adresser reserveras. För vissa protokoll är detta svårt, såsom SMTP för e-post, då dessa använder en viss i protokollet fastslagen port. Ett annat sätt att mildra och kringgå problemen NATar skapar är att låta den lokala datorn upprätthålla en konstant förbindelse med en server som kan nås med publika adresser och som förmedlar kontakterna. Då snabb kontakt inte är nödvändig räcker det att den lokala datorn då och då kontaktar den centrala datorn. Det är så klienter i botnet ("infekterade" datorer som styrs utifrån) får sina instruktioner. Ytterligare ett sätt att skapa dräglig funktion i ett NATat nät är att låta en viss server på det lokala nätet ta emot kontakter för alla datorer på det lokala nätet och förmedla kontakterna vidare.

I praktiken har de fundamentala problemen som NAT innebär tyvärr inte hindrat dess utbredningen. Ett huvudsakligt skäl till detta är att internetleverantörer faktiskt gynnas av att viss kommunikation hindras då trafiken i näten därmed reduceras, och för enskilda användare är det inte uppenbart att orsaken till att vissa applikationer inte fungerar står att finna i dennes internetförbindelse. IP-telefoni och andra liknande tillämpningar vars funktion kraftigt påverkas eller omöjliggörs av NAT användes bara i liten skala innan NAT blev allmänt, så istället för att drabba sin egen etablering har problemen hos NAT således istället orsakat en tillfällig hämning av avancerade internetapplikationers utbredning.

Tack vare ett accelererande användande av IPv6 finns nu goda möjligheter till att inom en snar framtid kunna förpassa NAT till historien som en tillfälligt användbar men konceptuellt sett katastrofal komponent i byggandet av ett vitalt Internet.

NAT-mjukvara

  • I Linux-världen kallas NAT ibland för IP-Masquerading, och verktygen man använder för att uppnå det kallas ipchains eller iptables, om man kör dem på en vanlig PC med Linux. Funktionen är inbyggd i Linux-kärnan.
  • I Microsoft Windows-världen brukar man använda en del olika program för att göra om en vanlig dator till en NAT-router, några av dem är Wingate och WinRoute. Senare versioner av Windows inkluderar en egen funktion för att dela IP-adresser mellan datorer. Även Microsoft ISA-Server kan användas.

Externa länkar

  • RFC 2663, IP Network Address translator (NAT) Terminology and Considerations, aug 1999
  • RFC 1631, The IP Network Address Translator (NAT), maj 1994
  • RFC 1918, Address Allocation for Private Internets, feb 1996
Personliga verktyg