Network Address Translation (NAT) i én sætning

Network Address Translation (NAT) er en teknik, hvor en enhed i et net oversætter IP-adresser (og ofte også porte) mellem to netværk med forskellige adresseskemaer, typisk et privat LAN og internettet.

Hvorfor NAT findes: den praktiske rolle

Mange hjemmenet og virksomheder bruger private IP-adresser (fx i intervallet 192.168.x.x) internt. Internettet bruger derimod offentligt routbare adresser. NAT løser et praktisk problem: flere enheder i et privat net kan dele få (eller én) offentlig adresse udadtil.

Når en intern enhed vil kommunikere med en server på internettet, må NAT sørge for, at udgående trafik får en “korrekt” adresse set udefra. Når svarene kommer tilbage, skal NAT samtidig kunne identificere, hvilken intern enhed der oprindeligt startede forbindelsen.

Et simpelt modelbillede: oversættelse og forbindelsestabel

Tænk NAT som en oversætter, der gør to centrale ting:

  1. Oversætter udgående oplysninger: Den interne enheds kilde-IP (og typisk kildeport) erstattes med en adresse/port som er gyldig i den anden side.
  2. Fastholder en mapping: NAT holder en tabel over “hvilken intern afsender matcher hvilken ekstern modtager” for den aktive forbindelsesstrøm.

Når en pakke går ud fra LAN-siden til internettet, ændrer NAT typisk felt(er) i pakkehovedet. Når svaret kommer retur, slår NAT op i forbindelsestabellen og videresender pakken til den rigtige interne enhed.

Vigtigt: NAT er derfor tæt koblet til forbindelser over tid—ikke bare et engangsoverblik. Hvis man mister forbindelsestabellen eller den ikke opdateres, kan retursvar falde forkert eller blive afvist.

NAT i praksis: typiske scenarier

Udgående web og almindelig browsing

For almindelige udgående forbindelser (som at tilgå hjemmesider) fungerer NAT ofte problemfrit, fordi forbindelsen er initieret indefra, og NAT kan følge returtrafikken via sin tabel.

Indkommende forbindelser udefra

Hvis nogen på internettet vil kontakte en enhed inde i dit private net, er NAT ikke altid “klar til det” automatisk. Udefra kender man ikke den interne adresse. Derfor kræver indkommende tjenester ofte ekstra regler, så en indkommende port på den offentlige side kan videresendes til den rigtige interne enhed og port.

Real-time og app-specifik adfærd

Nogle programmer, især realtids- eller peer-to-peer-lignende flows, kan opleve problemer, når NAT ændrer adresser og porte og eventuelt har stramme tidouts for forbindelsestabellen. Omfanget varierer, og afhænger af både programtypen og hvordan NAT-enheden håndterer mapping og sessioner. Det er netop her, at NAT kan blive en “medspiller” i fejlfinding.

Forskelle og grænser: typer af NAT og hvad de ændrer

Dynamisk NAT vs. statisk NAT

  • Dynamisk NAT: mapping kan ændre sig over tid, ofte når der oprettes nye forbindelser.
  • Statisk NAT: en fast oversættelse kan eksistere for bestemte interne adresser (fx hvis en intern tjeneste skal være konsistent tilgængelig).

Hvilken løsning der giver mening, afhænger af, om man primært har udgående trafik (oftest) eller har behov for en kendt indgang udefra.

NAT vs. “ren” routing

Routing kræver, at adresserne på begge sider er routbare eller i hvert fald forståelige for den relevante infrastruktur. NAT ændrer adresser, så endepunkter ikke længere ser hinandens originale adresser. Det kan påvirke diagnose og logning: man skal vide, at der er en oversættelse i vejen.

Begrænsningen: NAT ændrer adressernes “identitet”

En vigtig grænse er, at NAT skjuler den interne struktur for netdelen udenfor. Det kan gøre nogle netværksformål sværere (fx direkte adressering af en intern host uden ekstra opsætning) og kan kræve mere kontekst ved fejlfinding.

Derudover kan NAT-enheder have timeouts og kapacitetsgrænser for forbindelsestabellen. Hvis mange forbindelser oprettes hurtigt eller er langvarige, kan det påvirke stabiliteten. Nøjagtige værdier afhænger af den konkrete NAT-enhed.

Hvad du selv kan kontrollere (uden at ændre på noget)

  1. Hvad er din interne IP, og hvad er din offentlige IP?: Du kan typisk se dem i routerens status eller netværksindstillinger. NAT hænger sammen med, at der er en tydelig forskel.
  2. Er fejlen kun ved indkommende trafik?: Hvis udgående virker, men indkommende ikke gør, peger det ofte på NAT-relateret håndtering af retur/forwarding.
  3. Er problemet tidsafhængigt?: Hvis forbindelser brydes efter et stykke tid, kan NAT-timeout eller sessionhåndtering spille ind.
  4. Hvilke porte/protokoller bruges?: NAT påvirker ofte både adresse og porte. Hvis et program kræver særlige portmønstre, kan det forklare hvorfor noget virker og andet ikke.