Adressöversättning på riktigt

Det här avsnittet tar upp nästan hela bilden kring hur adressöversättning fungerar och är därför lite mer avancerat. Grundkonceptet är fortfarande likadant som vi har gått igenom, men efter att ha tagit upp vad portar är så finns det en möjlighet att dyka ner lite djupare i adressöversättningar och förstå hur routern faktiskt arbetar.

Du måste även ha läst igenom fördjupningsavsnittet Portar, TCP och UDP på djupet eftersom konceptet med source portar introducerades där.

Så länge som det är en dator på hemmanätverket, på insidan av routern, som initierar trafiken (det vill säga påbörjar kommunikationen) så kan hemmaroutern hålla koll på svaren och skicka tillbaka svaren som kommer från internet till rätt dator.

Exempelvis om man öppnar webbläsaren på en dator på hemmanätverket och surfar ut på internet, då är det datorn på hemmanätverket som initierar kommunikationen genom att skicka ut ett meddelande till en webbserver på internet för att begära att webbservern svarar tillbaka med hemsidan. Hemmaroutern ser då svaret som kommer tillbaka från webbservern och kan skicka tillbaka det till rätt dator.

Men vad händer om två datorer på LAN:et surfar samtidigt till samma webbsida på internet? Hur ska routern veta när svaren kommer tillbaka vilken dator på LAN:et som den ska skicka svaren till?

Rent praktiskt sker det genom att routern håller koll inte bara på vilka IP-adresser som trafiken kommer från och ska till, men också vilka portar som trafiken kommer från och vilka portar som trafiken ska till. Source portarna är ju vanligtvis framslumpade av datorn, och det betyder att varje session får en unik kombination av IP-adresser och portar som routern kan komma ihåg.

Genom att hemmaroutern kombinerar den information om IP-adresser och portar som den har om varje kommunikationsflöde så kan den också särskilja olika flöden från varandra. När svaren kommer tillbaka så kan routern därför avgöra genom att titta på just vilka IP-adresser och portar som trafiken skickas mellan för att avgöra hur den ska adressöversätta tillbaka trafiken igen och till vilken dator som trafiken ska.

Om man skulle rita upp adressöversättningen och ta med även portarna som routern använder så blir bilden därför lite mer avancerad. Den kan då se ut så här:

Flera interna enheter kan dela på en publik IP via NAT adressöversättning

För varje trafikflöde, eller session som det också kallas, så kommer alltså routern ihåg följande information och sparar informationen i minnet:

  • Från vilken IP adress på LAN:et kommer trafiken
  • Till vilken IP-adress på internet går trafiken
  • Från vilken port kommer trafiken
  • Till vilken port går trafiken
  • Hur adressöversattes trafiken av routern

Så här kan tabellen som routern bygger upp se ut om man utgår från föregående bild

NAT tabell i en router för att hålla koll på adressöversättningar

När det kommer svar tillbaka så kan routern titta i sin tabell och se vilken session som trafiken hör ihop med. Då vet den exakt vad den ska göra med svaren och till vilken dator som svaren ska skickas.

Föregående avsnitt:
Portar, TCP och UDP på djupet

Nästa avsnitt:
Trafikexempel, en grundlig genomgång