28/11/2012
I de fleste hjem og virksomheder i dag er der adskillige enheder – computere, smartphones, tablets, smart-tv'er – som alle er forbundet til internettet samtidigt. Men typisk har husstanden eller kontoret kun én enkelt offentlig IP-adresse fra internetudbyderen. Hvordan kan så mange enheder dele denne ene adresse? Svaret ligger i en fundamental, men ofte overset teknologi kaldet Network Address Translation (NAT). NAT fungerer som en slags digital receptionist for dit netværk, der intelligent styrer datatrafikken og sikrer, at de rigtige informationer når frem til de rigtige enheder, alt imens den bevarer den begrænsede pulje af offentlige IPv4-adresser.

Hvad er Network Address Translation (NAT)?
Grundlæggende er NAT en metode, der anvendes af routere og firewalls til at omskrive IP-adresseinformation i pakkernes headere, mens de er undervejs over et netværk. Den mest almindelige anvendelse er at tillade flere enheder i et privat netværk (f.eks. dit hjemmenetværk, der bruger adresser som 192.168.1.x) at dele en enkelt offentlig IP-adresse for at få adgang til internettet.
Man kan forestille sig det som et stort kontorbyggeri. Bygningen har én enkelt postadresse (den offentlige IP-adresse). Når et brev ankommer, ved receptionisten (routeren med NAT), baseret på medarbejderens navn og afdelingsnummer (portnummeret), præcis hvilken medarbejder (privat IP-adresse) der skal modtage brevet. Når en medarbejder sender et brev ud, sørger receptionisten for, at bygningens adresse står som afsender, så svaret kommer tilbage til det rigtige sted.
Hvorfor blev NAT nødvendigt?
NAT blev oprindeligt beskrevet i 1994 som en kortsigtet løsning på et voksende problem: udtømning af IPv4-adresser. IPv4-protokollen, som internettet blev bygget på, bruger 32-bit adresser, hvilket giver et teoretisk maksimum på omkring 4,3 milliarder unikke adresser. I begyndelsen af 1990'erne blev det klart, at dette ikke ville være nok til at imødekomme den eksplosive vækst i internetforbundne enheder. NAT tilbød en praktisk løsning ved at tillade hele private netværk at "gemme sig" bag en enkelt offentlig IP-adresse, hvilket drastisk reducerede behovet for unikke offentlige adresser. Selvom det var tænkt som en midlertidig foranstaltning, er NAT i dag en integreret del af næsten alle IPv4-netværk.

NAT's Rækkefølge af Operationer: Routing og ACL
For netværksadministratorer er det afgørende at forstå, i hvilken rækkefølge en router udfører sine opgaver, især når man konfigurerer sikkerhedsregler (Access Control Lists, ACLs). Rækkefølgen af NAT, routing og ACL-behandling bestemmer, hvilken IP-adresse en ACL-regel ser, og kan have stor betydning for, om en regel fungerer som forventet. De grundlæggende regler er enkle, men essentielle:
- Trafik fra det interne netværk mod det eksterne (Inside -> Outside): Pakken bliver først routet (routeren bestemmer, hvilken vej pakken skal sendes) og derefter NAT'et (kilde-IP-adressen ændres fra privat til offentlig).
- Trafik fra det eksterne netværk mod det interne (Outside -> Inside): Pakken bliver først NAT'et (destinations-IP-adressen ændres fra offentlig til privat baseret på NAT-tabellen) og derefter routet internt.
ACL'er tilføjer endnu et lag til denne proces:
- Indgående ACL (Inbound ACL): Behandles før alt andet. Den filtrerer trafik, så snart den ankommer til en grænseflade, før routing eller NAT finder sted.
- Udgående ACL (Outbound ACL): Behandles som det sidste skridt, lige før pakken forlader en grænseflade, efter at både routing og NAT er blevet anvendt.
Dette har praktiske konsekvenser. En indgående ACL på den interne grænseflade vil se den private kilde-IP-adresse. En udgående ACL på den eksterne grænseflade vil se den offentlige (oversatte) kilde-IP-adresse. At kende denne rækkefølge er nøglen til at skrive effektive firewall-regler.
Sammenligning af Operationsrækkefølge
For at illustrere dette komplekse samspil, er her en tabel, der opsummerer processen for en pakke, der går fra en intern bruger ud til internettet.
| Trin | Handling på Intern Grænseflade (Inside Interface) | Handling på Ekstern Grænseflade (Outside Interface) |
|---|---|---|
| 1. Ankomst | Pakke ankommer fra intern bruger (f.eks. 192.168.1.50). | N/A |
| 2. Indgående ACL | En indgående ACL tjekker den private kilde-IP (192.168.1.50). | N/A |
| 3. Routing | Routeren slår destinationen op og beslutter at sende pakken ud via den eksterne grænseflade. | N/A |
| 4. NAT | NAT-processen oversætter den private kilde-IP til den offentlige IP. | N/A |
| 5. Udgående ACL | N/A | En udgående ACL tjekker den offentlige kilde-IP. |
| 6. Afgang | N/A | Pakken forlader routeren med den offentlige IP-adresse. |
Forskellige Typer af NAT
Selvom det grundlæggende princip er det samme, findes der flere varianter af NAT, som tjener forskellige formål:
- Statisk NAT (One-to-One NAT): Her mappes en specifik privat IP-adresse til en specifik offentlig IP-adresse. Dette bruges ofte til at gøre en intern server (f.eks. en webserver eller e-mail-server) tilgængelig fra internettet. Forbindelsen er altid fast og ændrer sig ikke.
- Dynamisk NAT: I denne model har routeren en pulje af offentlige IP-adresser. Når en intern enhed skal på internettet, tildeles den en ledig adresse fra puljen. Når sessionen er slut, returneres adressen til puljen. Dette giver ikke samme adressebesparelse som den mest almindelige type.
- Port Address Translation (PAT) eller NAT Overload: Dette er den mest udbredte form for NAT og den, der bruges i de fleste hjemmeroutere. Her mappes mange private IP-adresser til en enkelt offentlig IP-adresse. For at holde styr på de forskellige sessioner, bruger routeren portnumre. Hver udgående forbindelse fra en intern enhed får tildelt et unikt kildeportnummer. Routeren vedligeholder en translationstabel, der holder styr på, hvilken intern IP og port der svarer til hvilken udgående port. Det er denne mekanisme, der gør det muligt for hele netværk at dele én IP-adresse.
Udfordringer og Begrænsninger ved NAT
Selvom NAT løste IPv4-adresseproblemet, introducerede det også en række udfordringer, primært fordi det bryder med internettets oprindelige end-to-end-princip, hvor enhver vært i princippet skulle kunne kommunikere direkte med enhver anden vært.

- Problemer for Peer-to-Peer (P2P) applikationer: Protokoller som VoIP, online gaming og fildeling, hvor enheder skal kunne initiere forbindelser til hinanden direkte, fungerer dårligt med NAT. Da enheder bag NAT ikke er direkte adresserbare fra internettet, kræves der specielle NAT traversal-teknikker (som STUN, TURN, ICE) for at etablere disse forbindelser.
- Protokol-specifikke problemer: Nogle protokoller (f.eks. FTP og IPsec) indlejrer IP-adresseinformation i selve datapakken, ikke kun i headeren. En simpel NAT-enhed, der kun kigger på headeren, vil ikke ændre disse adresser, hvilket får protokollen til at fejle. Mange moderne routere har Application-Level Gateways (ALGs) til at håndtere dette, men de kan også skabe deres egne problemer.
- NAT Hairpinning (eller NAT Loopback): Dette er et almindeligt problem, hvor en bruger på det interne netværk forsøger at få adgang til en intern server ved hjælp af serverens offentlige IP-adresse eller domænenavn. Uden NAT hairpinning vil routeren sende anmodningen ud på internettet, hvor den sandsynligvis vil fejle. En router med hairpinning-support er intelligent nok til at genkende, at destinationen er intern, og "loope" trafikken tilbage til det lokale netværk uden at sende den ud.
Ofte Stillede Spørgsmål om NAT
Er NAT en firewall?
Ikke teknisk set, men det giver en vis grad af sikkerhed. Fordi NAT skjuler de interne IP-adresser og som standard kun tillader returtrafik, der er blevet anmodet om indefra, blokerer den effektivt for uopfordrede indkommende forbindelser. Dette er dog sikkerhed gennem obskuritet og bør ikke erstatte en dedikeret, stateful firewall.
Hvad er forskellen på NAT og PAT?
PAT (Port Address Translation) er en specifik type NAT. Det er den mest almindelige type, der bruger portnumre til at mappe mange private adresser til én offentlig adresse. Ofte, når folk i daglig tale siger "NAT", refererer de faktisk til PAT.
Bruger man NAT med IPv6?
Generelt nej. En af de primære designmål med IPv6 var at eliminere behovet for NAT ved at tilbyde et næsten uendeligt antal adresser. Med IPv6 kan hver enhed få sin egen unikke, globalt routbare adresse, hvilket genopretter end-to-end-forbindelsen. Der findes dog lignende teknologier i IPv6-verdenen, såsom Network Prefix Translation (NPTv6), men de bruges til andre formål end adressebevarelse.
Hvis du vil læse andre artikler, der ligner NAT: Netværkets Usynlige Oversætter Forklaret, kan du besøge kategorien Sundhed.
