Dela via


Källnätverksadressöversättning (SNAT) med Azure NAT Gateway

Med SNAT (Source Network Address Translation) kan trafik från ett privat virtuellt nätverk ansluta till Internet samtidigt som den förblir helt privat. SNAT skriver om käll-IP-adressen och porten för det ursprungliga paketet till en offentlig IP- och portkombination. Portar används som unika identifierare för att skilja olika anslutningar från varandra. Internet använder en hash med fem tuppler (protokoll, käll-IP/port, mål-IP/port) för att tillhandahålla den här skillnaden.

Med SNAT kan även flera privata instanser i ett virtuellt nätverk använda samma offentliga IP-adress eller uppsättning IP-adresser (prefix) för att ansluta till Internet.

NAT-gateway möjliggör en många-till-en-SNAT-funktion. Många privata instanser i ett undernät kan SNAT till en offentlig IP-adress som är kopplad till NAT-gatewayen för att ansluta till Internet. När NAT-gatewayen gör flera anslutningar till samma målslutpunkt använder varje ny anslutning en annan SNAT-port så att anslutningar kan skiljas från varandra.

SNAT-portöverbelastning uppstår när en källslutpunkt har slut på tillgängliga SNAT-portar för att skilja mellan nya anslutningar. När SNAT-portöverbelastning inträffar misslyckas anslutningarna.

Skala SNAT för NAT-gateway

Skalning av NAT-gateway är främst en funktion för att hantera den delade, tillgängliga SNAT-portinventeringen.

SNAT-portinventering tillhandahålls av offentliga IP-adresser, offentliga IP-prefix eller båda anslutna till NAT-gatewayen. SNAT-portinventering görs tillgänglig på begäran för alla instanser i ett undernät som är kopplat till NAT-gateway. När arbetsbelastningen för ett undernäts privata instanser skalas allokerar NAT-gatewayen SNAT-portar efter behov.

När flera undernät i ett virtuellt nätverk är anslutna till samma NAT-gatewayresurs delas SNAT-portinventeringen som tillhandahålls av NAT-gatewayen över alla undernät.

En enda NAT-gateway kan skala upp till 16 IP-adresser. Varje offentlig IP-adress för NAT-gatewayen tillhandahåller 64 512 SNAT-portar för att upprätta utgående anslutningar. NAT-gatewayen kan skala upp till över 1 miljon SNAT-portar. TCP och UDP är separata SNAT-portinventeringar och är inte relaterade till NAT-gateway.

NAT Gateway allokerar SNAT-portar dynamiskt

NAT-gateway allokerar SNAT-portar dynamiskt över ett undernäts privata resurser, till exempel virtuella datorer. Alla tillgängliga SNAT-portar används på begäran av alla virtuella datorer i undernät som konfigurerats med NAT-gateway.

Diagram över SNAT-portallokering.

Bild: SNAT-portallokering

Förallokering av SNAT-portar till varje virtuell dator krävs för andra SNAT-metoder. Den här förallokeringen av SNAT-portar kan orsaka SNAT-portöverbelastning på vissa virtuella datorer medan andra fortfarande har tillgängliga SNAT-portar för att ansluta utgående trafik.

Med NAT-gateway krävs inte förallokering av SNAT-portar, vilket innebär att SNAT-portar inte lämnas oanvända av virtuella datorer som inte aktivt behöver dem.

När en SNAT-port har släppts är den tillgänglig för användning av alla virtuella datorer i undernät som konfigurerats med NAT-gateway. Allokering på begäran gör att dynamiska och avvikande arbetsbelastningar i undernät kan använda SNAT-portar efter behov. Så länge SNAT-portar är tillgängliga lyckas SNAT-flöden.

Diagram över SNAT-portöverbelastning.

Bild: SNAT-portöverbelastning

Val och återanvändning av NAT Gateway SNAT-port

NAT-gatewayen väljer en SNAT-port slumpmässigt ur den tillgängliga inventeringen av portar för att skapa nya utgående anslutningar. Om NAT-gatewayen inte hittar några tillgängliga SNAT-portar återanvänds en SNAT-port. Samma SNAT-port kan användas för att ansluta till flera olika mål samtidigt.

En SNAT-port kan återanvändas för att ansluta till samma målslutpunkt. Innan porten återanvänds placerar NAT-gatewayen en timer för återanvändning av SNAT-portar för nedkylning på porten när anslutningen har stängts.

Timern för återanvändning av SNAT-portar förhindrar att portar väljs för snabbt för att ansluta till samma mål. Den här processen är användbar när målslutpunkter har brandväggar eller andra tjänster konfigurerade som placerar en timer för nedkylning på källportar. Timers för återanvändning av SNAT-portar varierar beroende på hur ett anslutningsflöde stängdes. Mer information finns i Timers för återanvändning av portar.

Diagram över återanvändning av SNAT-portar.

Bild: Återanvändning av SNAT-port

Exempel på SNAT-flöden för NAT-gateway

Många till en SNAT med NAT-gateway

NAT-gatewayen tillhandahåller en många-till-en-konfiguration där flera privata instanser i en NAT-gateway konfigurerat undernät kan använda samma offentliga IP-adress för att ansluta utgående.

I följande tabell upprättar två olika virtuella datorer (10.0.0.1 och 10.2.0.1) anslutningar till https://microsoft.com mål-IP 23.53.254.142. När NAT-gatewayen konfigureras med den offentliga IP-adressen 65.52.1.1 översätts varje virtuell dators käll-IP-adresser till NAT-gatewayens offentliga IP-adress och en SNAT-port:

Flow Källtuppeln Källtuppeln efter SNAT Måltuppeln
1 10.0.0.1:4283 65.52.1.1:1234 23.53.254.142:80
2 10.0.0.1:4284 65.52.1.1:1235 23.53.254.142:80
3 10.2.0.1:5768 65.52.1.1:1236 23.53.254.142:80

IP-maskering eller portmaskering är att ersätta den privata IP-adressen och porten med den offentliga IP-adressen och porten innan du ansluter till Internet. Flera privata resurser kan maskeras bakom samma offentliga IP-adress för NAT-gatewayen.

NAT-gateway återanvänder en SNAT-port för att ansluta till ett nytt mål

Som tidigare nämnts kan NAT-gateway återanvända samma SNAT-port för att ansluta samtidigt till en ny målslutpunkt. I följande tabell översätter NAT-gateway flöde 4 till en SNAT-port som redan används för andra mål (se flöde 1 från föregående tabell).

Flow Källtuppeln Källtuppeln efter SNAT Måltuppeln
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80

NAT Gateway SNAT-port lågfrekvent för återanvändning till samma mål

I ett scenario där NAT-gatewayen återanvänder en SNAT-port för att upprätta nya anslutningar till samma målslutpunkt placeras SNAT-porten först i en återanvändningsfas för SNAT-portar för nedkylning. Återanvändningsperioden för SNAT-portar säkerställer att SNAT-portar inte återanvänds för snabbt när du ansluter till samma mål. Återanvändning av den här SNAT-porten för nedkylning på NAT-gatewayen är fördelaktig i scenarier där målslutpunkten har en brandvägg med en egen källporttimer för nedkylning på plats.

Om du vill visa hur den här SNAT-porten återanvänder lågfrekvent nedkylning ska vi ta en närmare titt på flöde 4 från föregående tabell. Flow 4 anslöt till en målslutpunkt som frontades av en brandvägg med en 20-sekunders källport som lågfrekvent timer.

Flow Källtuppeln Källtuppeln efter SNAT Måltuppeln Anslutning av pakettyp stängs med Målbrandväggens timer för nedkylning för källporten
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80 TCP FIN 20 sekunder

Anslut ionsflödet 4 stängs med ett TCP FIN-paket. Eftersom anslutningen är stängd med ett TCP FIN-paket placerar NAT-gatewayen SNAT-port 1234 i nedkylning i 65 sekunder innan den kan återanvändas. Eftersom port 1234 är nedkyld längre än brandväggskällans nedkylningstid på 20 sekunder fortsätter anslutningsflödet 5 med återanvändning av SNAT-port 1234 utan problem.

Flow Källtuppeln Källtuppeln efter SNAT Måltuppeln
5 10.2.0.1:5769 65.52.1.1:1234 26.108.254.155:80

Tänk på att NAT-gatewayen placerar SNAT-portar under olika SNAT-portar för återanvändning av nedkylningstimers beroende på hur den tidigare anslutningen stängdes. Mer information om timers för återanvändning av SNAT-portar finns i Timers för återanvändning av portar.

Var inte beroende av det specifika sätt som källportar tilldelas i exemplen ovan. Ovanstående är endast illustrationer av de grundläggande begreppen.