Använd källadressöversättning (SNAT) för utgående anslutningar.

Vissa scenarier kräver att virtuella datorer eller beräkningsinstanser har utgående anslutning till Internet. Frontend-IP-adresser för en publik lastbalanserare kan användas för att tillhandahålla utgående anslutning till internet för backendinstanser. Den här konfigurationen använder källnätverksadressöversättning (SNAT) för att översätta den virtuella datorns privata IP-adress till lastbalanserarens offentliga IP-adress. SNAT mappar IP-adressen i serverdelen mot lastbalanseras offentliga IP-adress. SNAT förhindrar att externa källor får direktadresser till instanserna i serverdelen.

Azure utgående anslutningsmetoder

Följande metoder är Azure vanligaste metoderna för att aktivera utgående anslutning, som anges i prioritetsordning när flera metoder används:

# Metod Typ av porttilldelning Produktionsklar? Klassificering
1 Associera en NAT-gateway till undernätet Dynamisk och explicit Ja Bäst
2 Tilldela en offentlig IP-adress till den virtuella datorn Statisk, explicit Ja OK
3 Använd framändens IP-adresser på lastbalanseraren för utgående trafik via utgående regler Statisk, explicit Ja, men inte i stor skala OK
4 Använd frontend-IP-adressen för en lastbalanserare för utgående trafik utan utgående regler. Statisk, implicit Nej Värst
5 Standardåtkomst för utgående trafik Implicit Nej Värst

Diagram över Azure utgående alternativ.

1. Associera en NAT-gateway till undernätet

Diagram över en NAT-gateway och en offentlig lastbalanserare.

Azure NAT Gateway förenklar utgående Internetanslutning för virtuella nätverk. När du konfigurerar i ett undernät använder alla utgående anslutningar dina angivna statiska offentliga IP-adresser. Utgående anslutning är möjlig utan lastbalanserare eller offentliga IP-adresser som är direkt kopplade till virtuella datorer. NAT Gateway är fullständigt hanterad och mycket motståndskraftig.

Att använda en NAT-gateway är den bästa metoden för utgående anslutning. En NAT-gateway är mycket utökningsbar, tillförlitlig och har inte samma problem med SNAT-portöverbelastning.

NAT-gateway har företräde framför andra utgående anslutningsmetoder, inklusive en lastbalanserare, offentliga IP-adresser på instansnivå och Azure Firewall.

Mer information om Azure NAT Gateway finns i Vad är Azure NAT Gateway. Mer information om hur SNAT-beteende fungerar med NAT Gateway finns i SNAT med NAT Gateway.

2. Tilldela en offentlig IP-adress till den virtuella datorn

Diagram över virtuella datorer med offentliga IP-adresser på instansnivå.

Associationer Metod IP-protokoll
Offentlig IP-adress på den virtuella datorns nätverkskort SNAT (Källnätverksadressöversättning)
används inte.
TCP (Transmission Control Protocol)
UDP (User Datagram Protocol)
ICMP (Internet Control Message Protocol)
ESP (Kapsling av säkerhetsnyttolast)

Trafiken återgår till den begärande klienten från den virtuella datorns offentliga IP-adress (IP på instansnivå).

Azure använder den offentliga IP-adress som tilldelats IP-konfigurationen för instansens nätverkskort för alla utgående flöden. Instansen har alla tillfälliga portar tillgängliga. Det spelar ingen roll om den virtuella datorn är lastbalanserad eller inte. Det här scenariot har företräde framför de andra, förutom NAT Gateway.

En offentlig IP-adress som tilldelats en virtuell dator är en 1:1-relation (i stället för 1: många) och implementeras som tillståndslös 1:1 NAT.

3. Använd frontendens IP-adresser hos en lastbalanserare för utgående trafik via utgående regler

Diagram allmän lastbalanserare med utåtgående regler.

Med regler för utgående trafik kan du explicit definiera SNAT (källnätverksadressöversättning) för en offentlig SKU-standardlastbalanserare. Med den här konfigurationen kan du använda den offentliga IP-adressen eller IP-adresserna för lastbalanseraren för utgående anslutning av serverdelsinstanserna.

Den här konfigurationen aktiverar:

  • IP-maskering

  • Förenkla dina tillåtna listor

  • Minskar antalet offentliga IP-resurser för distribution

Med regler för utgående trafik har du fullständig deklarativ kontroll över utgående Internetanslutning. Med regler för utgående trafik kan du skala och justera den här möjligheten efter dina specifika behov via manuell portallokering. Om du manuellt allokerar SNAT-portar baserat på storleken på serverdelspoolen och antalet frontendIPConfigurations kan du undvika SNAT-överbelastning.

Du kan allokera SNAT-portar manuellt antingen med "portar per instans" eller "maximalt antal serverdelsinstanser". Om du har virtuella datorer i serverdelen rekommenderar vi att du allokerar portar med "portar per instans" för att få maximal SNAT-portanvändning.

Beräkna portar per instans enligt följande:

Antal ip-adresser för klientdelen * 64 000/Antal serverdelsinstanser

Om du har Virtual Machine Scale Sets i backenden rekommenderar vi att du allokerar portar med "maximalt antal backend-instanser". Om fler virtuella datorer läggs till i serverdelen än vad återstående SNAT-portar tillåts kan utskalning av Virtual Machine Scale Sets blockeras eller så får de nya virtuella datorerna inte tillräckligt med SNAT-portar.

Kommentar

När flera frontend-IP-adresser konfigureras med utgående regler kan utgående anslutningar komma från någon av de frontend-IP-adresser som konfigurerats till back-end-instansen. Vi rekommenderar inte att du skapar några beroenden för vilka klientdels-IP-adresser som kan väljas för anslutningar.

Mer information om regler för utgående trafik finns i Regler för utgående trafik.

4. Använd frontend IP-adresser för en lastbalanserare för utgående trafik utan utgående regler

Det här alternativet liknar det tidigare alternativet, förutom när inga regler för utgående trafik skapas. I det här fallet används lastbalanserarens klientdelar fortfarande för utgående trafik, men detta görs implicit utan regler som anger vilken klientdel som ska användas. Att inte använda utgående regler minskar också skalbarheten för utgående trafik, eftersom implicit utgående anslutning har ett fast antal SNAT-portar per klientdels-IP-adress, vilket kan leda till portöverbelastning i scenarier med hög trafik.

5. Standardutgående åtkomst

Diagram över standardåtkomst för utgående trafik.

I Azure tilldelas virtuella datorer som skapats i ett virtuellt nätverk utan explicit definierad utgående anslutning till en offentlig IP-standardadress för utgående trafik. Den här IP-adressen möjliggör utgående anslutning från resurserna till Internet. Den här åtkomsten kallas för standardåtkomst för utgående trafik. Den här åtkomstmetoden rekommenderas inte eftersom den är osäker och IP-adresserna kan komma att ändras.

Viktigt!

Den 31 mars 2026 använder nya virtuella nätverk som standard privata undernät. Mer information finns i det officiella meddelandet. Använd någon av de explicita anslutningsformerna enligt alternativ 1–3 ovan.

Vad är SNAT-portar?

Portar genererar unika identifierare som underhåller distinkta flöden. Internet använder en femtupppel för att ge denna skillnad.

Om du använder en port för inkommande anslutningar har den en lyssnare för inkommande anslutningsbegäranden på den porten. Den porten kan inte användas för utgående anslutningar. För att upprätta en utgående anslutning använder du en tillfällig port för att ge målet en port där du kan kommunicera och underhålla ett distinkt trafikflöde. När dessa tillfälliga portar används för SNAT kallas de för SNAT-portar.

Per definition har varje IP-adress 65 535 portar. Varje port kan användas för antingen inkommande eller utgående anslutningar för TCP (Transmission Control Protocol) och UDP (User Datagram Protocol). När du lägger till en offentlig IP-adress som en klientdels-IP till en lastbalanserare är 64 000 portar berättigade till SNAT.

Varje port som används i en belastningsutjämning eller inkommande NAT-regel förbrukar ett intervall på åtta portar från de 64 000 tillgängliga SNAT-portarna. Den här användningen minskar antalet portar som är berättigade till SNAT, om samma klientdels-IP används för utgående anslutning. Om de förbrukade portarna för belastningsutjämning eller inkommande NAT-regler är i samma block med åtta portar som använda av en annan regel, kräver reglerna inte extra portar.

Kommentar

Om du behöver ansluta till Azure PaaS-tjänster som stöds som Azure Storage, Azure SQL eller Azure Cosmos DB använder du Azure Private Link för att undvika SNAT helt. Azure Private Link skickar trafik från ditt virtuella nätverk för att Azure tjänster via Azure stamnätverk i stället för via Internet.

Private Link är det rekommenderade alternativet över tjänstslutpunkter för privat åtkomst till Azure värdbaserade tjänster. Mer information om skillnaden mellan Private Link- och tjänstslutpunkter finns i Compare Private Endpoints and Service Endpoints.

Hur fungerar standard-SNAT?

När en virtuell dator skapar ett utgående flöde översätter Azure källans IP-adress till en tillfällig IP-adress. Azure utför den här översättningen via SNAT.

Om du använder SNAT utan utgående regler via en offentlig lastbalanserare förallokerar systemet SNAT-portar enligt beskrivningen i följande standardtabell för SNAT-portar:

Förvald portallokeringstabell

När du aktiverar standardportallokering allokerar systemet SNAT-portar baserat på storleken på serverdelspoolen. Varje serverdel tar emot det antal portar som definierats av tabellen, per klientdels-IP, upp till högst 1 024 portar. Använd inte standardportallokering för produktionsarbetsbelastningar eftersom den allokerar ett minimalt antal portar till varje serverdelsinstans och ökar risken för SNAT-portöverbelastning. Överväg i stället att använda en NAT-gateway eller allokera portar manuellt på lastbalanserarens utgående regler.

Du kan aktivera standardportallokering på flera sätt:

  • Konfigurera en belastningsutjämningsregel med disableOutboundSnat inställt på false, eller välj standardalternativet för portallokering på en lastbalanserarregel i Azure-portalen.
  • Konfigurera en regel för utgående trafik men ange allocatedOutboundPorts egenskapen till 0eller välj Aktivera standardportallokering i Azure-portalen.

Med till exempel 100 virtuella datorer i en serverdelspool och endast en klientdels-IP får varje virtuell dator 512 portar. Om du lägger till en andra ip-adress för klientdelen får varje virtuell dator ytterligare 512 portar. Den här allokeringen innebär att varje virtuell dator allokeras totalt 1 024 portar. Därför ökar inte tillägget av en tredje klientdels-IP-adress antalet allokerade SNAT-portar utöver 1 024 portar.

Som tumregel kan du beräkna antalet SNAT-portar som tillhandahålls när standardportallokering tillämpas som: MIN(# of default SNAT ports provided based on pool size * number of frontend IPs associated with the pool, 1024).

Följande tabell visar SNAT-portförflyttningar för en enskild klientdels-IP, beroende på storleken på serverdelspoolen:

Poolstorlek (VM-instanser) Förvalda SNAT-portar
1-50 1,024
51–100 512
101–200 256
201–400 128
401-800 64
801-1,000 32

Portöverbelastning

Varje anslutning till samma mål-IP och målport använder en SNAT-port. Den här anslutningen upprätthåller ett distinkt trafikflöde från serverdelsinstansen eller klienten till en server. Den här processen ger servern en distinkt port för att hantera trafik. Utan den här processen känner klientdatorn inte till vilket flöde ett paket ingår i.

Tänk dig att flera webbläsare går till https://www.microsoft.com, vilket är:

  • Mål-IP = 23.53.254.142

  • Målport = 443

  • Protokoll = TCP

Utan SNAT-portar för returtrafiken kan klienten inte skilja ett frågeresultat från ett annat.

Utgående anslutningar kan brista. En serverdelsinstans kan tilldelas otillräckliga portar. Använd funktioner för återanvändning av anslutningar i ditt program. Utan återanvändning av anslutning ökar risken för SNAT-portöverbelastning.

Mer information om anslutningspooler med Azure App Service finns i Felsöka tillfälliga utgående anslutningsfel i Azure App Service.

Nya utgående anslutningar till en mål-IP-adress misslyckas när portöverbelastning inträffar. Anslutningarna lyckas när en port blir tillgänglig. Den här överbelastningen uppstår när de 64 000 portarna från en IP-adress sprids tunt över många serverdelsinstanser. Vägledning om hur du åtgärdar SNAT-portöverbelastning finns i Support och felsökning för Azure Load Balancer.

Återanvändning av port

För TCP-anslutningar använder lastbalanseraren en enda SNAT-port för varje mål-IP och port. För anslutningar till samma mål-IP kan en enda SNAT-port återanvändas så länge målporten skiljer sig åt. Återanvändning är inte möjligt när det redan finns en anslutning till samma mål-IP och port.

För UDP-anslutningar använder lastbalanseraren en portbegränsad NAT-algoritm som förbrukar en SNAT-port per mål-IP, oavsett målport.

Du kan återanvända enskilda portar för ett obegränsat antal anslutningar där återanvändning tillåts (när mål-IP eller port är annorlunda).

I exemplet i följande tabell upprättar en instans i serverdelen med den privata IP-adressen 10.0.0.1 TCP-anslutningar till mål-IP-adresserna 23.53.254.142 och 26.108.254.155, medan lastbalanseraren är konfigurerad med IP-adressen 192.0.2.0 på klientsidan. Eftersom mål-IP-adresserna är olika kan samma SNAT-port återanvändas för flera anslutningar.

Flöde Källtuple Källtuppel efter SNAT Måltuppeln
1 10.0.0.1:80 192.0.2.0:1 23.53.254.142:80
2 10.0.0.1:80 192.0.2.0:1 26.108.254.155:80

Begränsningar

  • När en anslutning är inaktiv utan att några nya paket skickas släpps portarna efter 4 till 120 minuter.

  • Du kan konfigurera det här tröskelvärdet via regler för utgående trafik.

  • Varje IP-adress innehåller 64 000 portar som du kan använda för SNAT.

  • Varje port kan användas för både TCP- och UDP-anslutningar till en mål-IP-adress.

  • Du behöver en UDP SNAT-port oavsett om målporten är unik eller inte. För varje UDP-anslutning till en mål-IP används en UDP SNAT-port.

  • En TCP SNAT-port kan användas för flera anslutningar till samma mål-IP så länge målportarna är olika.

  • SNAT-överbelastning uppstår när en serverdelsinstans får slut på angivna SNAT-portar. En lastbalanserare kan fortfarande ha oanvända SNAT-portar. Om en serverdelsinstans använda SNAT-portar överskrider sina angivna SNAT-portar kan den inte upprätta nya utgående anslutningar.

  • Systemet släpper fragmenterade paket om inte utgående är via en offentlig IP-adress på instansnivå på den virtuella datorns nätverkskort.

  • Regler för utgående trafik stöder inte sekundära IPv4-konfigurationer av ett nätverksgränssnitt. För utgående anslutning på sekundära IPv4-konfigurationer kopplar du offentliga IP-adresser på instansnivå eller använder NAT Gateway i stället.

Nästa steg