Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Azures utgående anslutningsmetoder
Följande metoder är Azures vanligaste metoder 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 |
1. Associera en NAT-gateway till undernätet
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
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
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 VM-skalningsuppsättningar i serverdelen rekommenderar vi att du allokerar portar med "maximalt antal serverdelsinstanser". Om fler virtuella datorer läggs till i backend än vad de återstående SNAT-portarna tillåter, kan skalning av Virtual Machine Scale Sets blockeras, eller så kanske de nya virtuella datorerna inte får tillräckligt med SNAT-portar.
Kommentar
När flera frontend-IP-adresser konfigurerats med utgående regler kan utgående anslutningar komma från vilken som helst av de frontend-IP-adresser som konfigurerats till backendinstansen. 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
I Azure tilldelas virtuella datorer som skapats i ett virtuellt nätverk utan explicit definierad utgående anslutning 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 30 september 2025 dras den utgående standardåtkomsten för nya distributioner tillbaka. Mer information finns i det officiella meddelandet. Vi rekommenderar att du använder en av de explicita anslutningsformerna enligt alternativ 1–3 ovan.
Vad är SNAT-portar?
Portar används för att generera unika identifierare som används för att underhålla distinkta flöden. Internet använder en femtupppel för att ge denna skillnad.
Om en port används 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änds 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 antingen användas för inkommande eller utgående anslutningar för TCP (Transmission Control Protocol) och UDP (User Datagram Protocol). När en offentlig IP-adress läggs till 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, till exempel Azure Storage, Azure SQL eller Azure Cosmos DB, kan du använda Azure Private Link för att undvika SNAT helt. Azure Private Link skickar trafik från ditt virtuella nätverk till Azure-tjänster via Azure-stamnätverket i stället för via Internet.
Privat åtkomst till Azure-tjänster sker bäst genom Private Link, istället för tjänstslutpunkter. Mer information om skillnaden mellan Private Link och tjänstslutpunkter finns i Jämför privata slutpunkter och tjänstslutpunkter.
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. Översättningen görs via SNAT.
Om du använder SNAT utan utgående regler via en offentlig lastbalanserare, förallokeras SNAT-portar enligt beskrivningen i följande standardtabell för SNAT-portar:
Förvald portallokeringstabell
När standardportallokering är aktiverat allokeras SNAT-portar som standard baserat på storleken på serverdelspoolen. Bakändar tar emot antalet portar som definierats av tabellen, per frontend-IP-adress, upp till högst 1 024 portar. Standardportallokering rekommenderas INTE för produktionsarbetsbelastningar eftersom det allokerar ett minimalt antal portar till varje serverdelsinstans och ökar risken för SNAT-portöverbelastning. Överväg istället att använda en NAT Gateway eller manuellt tilldela portar i lastbalanserarens utgående regler.
Det finns flera sätt att aktivera standardportallokering:
- Konfigurera en belastningsutjämningsregel med disableOutboundSnat inställt på false, eller genom att välja standardalternativet för portallokering på en lastbalanseringsregel i Azure-portalen
- Konfigurera en regel för utgående trafik men ange egenskapen allocatedOutboundPorts till 0, eller genom att välja "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 en andra klientdels-IP läggs till får varje virtuell dator ytterligare 512 portar. Det innebär att varje virtuell dator allokeras totalt 1 024 portar. Därför ökar inte antalet allokerade SNAT-portar utöver 1024-portar genom att lägga till en tredje klientdels-IP-adress.
Som tumregel kan antalet SNAT-portar som tillhandahålls när standardportallokering tillämpas beräknas som: MIN(# av standard-SNAT-portar som tillhandahålls baserat på poolstorlek * antal klientdels-IP-adresser som är associerade med poolen, 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 felsökningsguiden.
Å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.
Enskilda portar kan återanvändas 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 gör en backendinstans med privat IP 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 frontend IP-adress 192.0.2.0. 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–120 minuter.
Det här tröskelvärdet kan konfigureras via regler för utgående trafik.
Varje IP-adress innehåller 64 000 portar som kan användas för SNAT.
Varje port kan användas för både TCP- och UDP-anslutningar till en mål-IP-adress
Det krävs en UDP SNAT-port 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 förutsatt att 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.
Fragmenterade paket tas bort om inte utgående är via en offentlig IP-adress på instansnivå på den virtuella datorns nätverkskort.
Sekundära IPv4-konfigurationer för ett nätverksgränssnitt stöds inte med regler för utgående trafik. 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
- Felsöka utgående anslutningsfel på grund av SNAT-överbelastning
- Granska SNAT-mått och bekanta dig med rätt sätt att filtrera, dela och visa dem.
- Lär dig hur du migrerar din befintliga utgående anslutningsmetod till NAT-gatewayen