Definition og idéen bag NAT

Network Address Translation (NAT) er en teknik, hvor en router (eller en anden netværksenhed) omsætter IP-adresser, så trafik kan fungere mellem to net med forskellige adresseskemaer. Typisk handler det om at forbinde et privat net (ofte med private IP-adresser) til et offentligt net (ofte med offentlige IP-adresser).

I praksis ser man NAT som en “oversætter”: når en enhed i det private net sender trafik ud, omskriver NAT afsenderens adresse (og ofte også porten) til noget, der kan bruges på den anden side.

En enkel model: NAT-tabellen og oversættelser

For at kunne føre svar tilbage til den rigtige interne enhed bruger NAT en intern hukommelse, ofte kaldet en NAT-tabel. NAT-tabelens formål er at gemme en sammenhæng mellem:

  • en intern afsender (intern IP og typisk en port)
  • en ekstern repræsentation (offentlig IP og typisk en port)

Når en intern enhed starter en forbindelse udad, vælger NAT en “ekstern” identitet at bruge. Når svartrafik kommer tilbage, slår NAT opslag i tabellen for at finde, hvilken intern enhed og forbindelse der skal have pakken.

Det er vigtigt at forstå, at NAT ikke kun er adresse-udskiftning som ved en engangsdokumentation. Den er knyttet til forbindelsers varighed og til den konkrete mapping, så den kan levere svar korrekt.

Hvad NAT består af i praksis (adresser og porte)

NAT kan fungere på flere niveauer, men en almindelig effekt er, at både IP-adresse og transportporte indgår i oversættelsen. Når flere interne enheder deler én offentlig IP, skal NAT kunne skelne forbindelser fra hinanden. Det sker ofte ved at kombinere offentlig adresse med portnumre, så to samtidige sessioner ikke kolliderer.

Når klienter bruger tilfældige kildetporte (ephemeral ports) til at starte forbindelser, får NAT ofte et naturligt sæt nøgler at arbejde med. Men selv om porte hjælper, kræver NAT stadig, at den kan holde styr på mapping, indtil forbindelsen afsluttes.

Undtagelser og grænser: indgående forbindelser og “uforenelige” scenarier

En typisk begrænsning er, at indgående forbindelser fra internettet til enheder bag NAT ikke altid fungerer “direkte”, fordi den interne adresse ikke kan nås udefra. Uden en eksplicit regel, der fortæller NAT hvordan en bestemt ekstern anmodning skal sendes videre, mangler NAT ofte et opslag i tabellen.

I mange miljøer løses det ved at konfigurere særlige regler (ofte omtalt som port forwarding eller tilsvarende). Sådanne regler ændrer dog ikke det grundlæggende problem: NAT mangler naturligt nok en universel måde at rute vilkårlig indgående trafik til en bestemt intern maskine.

Derudover kan NAT påvirke protokoller og applikationer, især dem der forventer at kunne etablere forbindelser på en måde, hvor adressen i pakken skal kunne matches ens på tværs af net. For nogle protokoller kræves ekstra håndtering (det kan dog variere meget), så resultatet kan ikke altid forudsiges ud fra NAT alene.

Endelig afhænger NAT-adfærd af implementeringen og af hvordan enheden vælger at oprette og rydde NAT-tableopslag. Den nøjagtige “timeout”-adfærd og detaljer om mapping kan derfor variere mellem systemer og miljøer.

Sådan kan du kontrollere din egen situation

Du kan typisk undersøge NAT’s rolle i dit net ved at se på sammenhængen mellem interne og eksterne adresser samt hvilke forbindelser der virker.

  • Sammenlign din enheds interne IP (fx på LAN) med den adresse, systemer udenfor ser (ofte den offentlige IP på routerens WAN-side).
  • Afprøv, om indgående forbindelser til en intern tjeneste virker uden særlige regler; hvis ikke, peger det på, at NAT ikke ruter indgående trafik automatisk.
  • Hvis du administrerer routeren, kan du kigge efter funktioner relateret til NAT, port forwarding eller “firewall/NAT-regler” og teste effekten på den specifikke tjeneste.

Hvis du oplever, at nogle applikationer virker fint, mens andre ikke gør, kan NAT være en del af forklaringen—men det er sjældent den eneste faktor. Firewall-regler, protokolvalg og netværkskonfiguration spiller ofte også ind.

Vigtige sammenligninger: hvad NAT ikke er

NAT er ikke det samme som en VPN, og NAT erstatter heller ikke en egentlig routing-løsning mellem adressrum. NAT’s styrke er adresseoversættelse og deling af adressressourcer, men det ændrer den måde forbindelser identificeres på.

Hvis du forsøger at “logge ind” som om du havde end-to-end IP-kontakt direkte til den interne enhed, kan NAT derfor føles som en barriere.