Delen via


SNAT (Source Network Address Translation) met Azure NAT Gateway

Met Source Network Address Translation (SNAT) kan verkeer van een particulier virtueel netwerk verbinding maken met internet terwijl het volledig privé blijft. SNAT herschrijft het bron-IP-adres en de poort van het oorspronkelijke pakket naar een openbare IP- en poortcombinatie. Poorten worden gebruikt als unieke id's om verschillende verbindingen van elkaar te onderscheiden. Internet maakt gebruik van een hash met vijf tuples (protocol, bron-IP/poort, doel-IP/poort) om dit onderscheid te bieden.

Met SNAT kunnen meerdere privé-exemplaren in een virtueel netwerk hetzelfde openbare IP-adres of dezelfde set IP-adressen (voorvoegsel) gebruiken om verbinding te maken met internet.

Nat-gateway maakt een veel-op-een-SNAT-mogelijkheid mogelijk. Veel privé-exemplaren in een subnet kunnen SNAT naar een openbaar IP-adres dat is gekoppeld aan de NAT-gateway om verbinding te maken met internet. Wanneer de NAT-gateway meerdere verbindingen met hetzelfde doeleindpunt maakt, gebruikt elke nieuwe verbinding een andere SNAT-poort, zodat verbindingen van elkaar kunnen worden onderscheiden.

SNAT-poortuitputting treedt op wanneer een broneindpunt onvoldoende beschikbare SNAT-poorten heeft om onderscheid te maken tussen nieuwe verbindingen. Wanneer SNAT-poortuitputting optreedt, mislukken verbindingen.

SNAT schalen voor NAT-gateway

Het schalen van de NAT-gateway is voornamelijk een functie van het beheren van de gedeelde, beschikbare SNAT-poortinventaris.

SNAT-poortinventaris wordt geleverd door de openbare IP-adressen, openbare IP-voorvoegsels of beide die zijn gekoppeld aan de NAT-gateway. SNAT-poortinventaris wordt op aanvraag beschikbaar gesteld voor alle exemplaren binnen een subnet dat is gekoppeld aan de NAT-gateway. Naarmate de workload van de schaal van privé-exemplaren van een subnet wordt aangepast, wijst NAT-gateway indien nodig SNAT-poorten toe.

Wanneer meerdere subnetten in een virtueel netwerk zijn gekoppeld aan dezelfde NAT-gatewayresource, wordt de SNAT-poortinventaris die wordt geleverd door de NAT-gateway gedeeld in alle subnetten.

Eén NAT-gateway kan maximaal 16 IP-adressen schalen. Elk openbaar IP-adres van de NAT-gateway biedt 64.512 SNAT-poorten om uitgaande verbindingen te maken. NAT-gateway kan worden geschaald tot meer dan 1 miljoen SNAT-poorten. TCP en UDP zijn afzonderlijke SNAT-poortinventarisaties en zijn niet gerelateerd aan de NAT-gateway.

NAT-gateway wijst dynamisch SNAT-poorten toe

De NAT-gateway wijst dynamisch SNAT-poorten toe aan de privé-resources van een subnet, zoals virtuele machines. Alle beschikbare SNAT-poorten worden op aanvraag gebruikt door elke virtuele machine in subnetten die zijn geconfigureerd met NAT-gateway.

Diagram van SNAT-poorttoewijzing.

Afbeelding: SNAT-poorttoewijzing

Het vooraf toewijzen van SNAT-poorten aan elke virtuele machine is vereist voor andere SNAT-methoden. Deze voorbezetting van SNAT-poorten kan leiden tot SNAT-poortuitputting op sommige virtuele machines, terwijl andere nog steeds beschikbare SNAT-poorten hebben om uitgaande verbindingen te maken.

Met NAT-gateway is vooraflocatie van SNAT-poorten niet vereist. Dit betekent dat SNAT-poorten niet ongebruikt blijven door virtuele machines die ze niet actief nodig hebben.

Nadat een SNAT-poort is vrijgegeven, is deze beschikbaar voor gebruik door elke virtuele machine binnen subnetten die zijn geconfigureerd met NAT-gateway. Met toewijzing op aanvraag kunnen dynamische en uiteenlopende workloads op subnetten waar nodig SNAT-poorten worden gebruikt. Zolang er SNAT-poorten beschikbaar zijn, slagen SNAT-stromen.

Diagram van SNAT-poortuitputting.

Afbeelding: SNAT-poortuitputting

SNAT-poortselectie en hergebruik van NAT-gateway

Nat-gateway selecteert willekeurig een SNAT-poort uit de beschikbare inventaris van poorten om nieuwe uitgaande verbindingen te maken. Als de NAT-gateway geen beschikbare SNAT-poorten vindt, wordt een SNAT-poort opnieuw gebruikt. Dezelfde SNAT-poort kan worden gebruikt om tegelijkertijd verbinding te maken met meerdere verschillende bestemmingen.

Een SNAT-poort kan opnieuw worden gebruikt om verbinding te maken met hetzelfde doeleindpunt. Voordat de poort opnieuw wordt gebruikt, plaatst de NAT-gateway een timer voor het hergebruik van SNAT-poorten om af te koelen op de poort nadat de verbinding is gesloten.

De timer voor het hergebruik van de SNAT-poort helpt te voorkomen dat poorten te snel worden geselecteerd om verbinding te maken met dezelfde bestemming. Dit proces is handig wanneer doeleindpunten firewalls of andere services hebben geconfigureerd die een afkoeltimer op bronpoorten plaatsen. De timers voor het hergebruik van SNAT-poorten variëren afhankelijk van de wijze waarop een verbindingsstroom is gesloten. Zie Timers voor opnieuw gebruiken van poort voor meer informatie.

Diagram van het hergebruik van de SNAT-poort.

Afbeelding: Opnieuw gebruiken van SNAT-poort

Voorbeeld van SNAT-stromen voor NAT-gateway

Veel op één SNAT met NAT-gateway

NAT-gateway biedt een groot aantal tot één configuratie waarin meerdere privé-exemplaren binnen een geconfigureerd subnet van een NAT-gateway hetzelfde openbare IP-adres kunnen gebruiken om uitgaande verbinding te maken.

In de volgende tabel maken twee verschillende virtuele machines (10.0.0.1 en 10.2.0.1) verbindingen met https://microsoft.com doel-IP 23.53.254.142. Wanneer de NAT-gateway is geconfigureerd met openbaar IP-adres 65.52.1.1, worden de bron-IP-adressen van elke virtuele machine omgezet in het openbare IP-adres van de NAT-gateway en een SNAT-poort:

Stroom Bron-tuple Bron-tuple na SNAT Doel-tuple
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

Het maskeren van IP-adres of poortmaskering is het vervangen van het privé-IP-adres en de poort door het openbare IP-adres en de poort voordat u verbinding maakt met internet. Meerdere privébronnen kunnen achter hetzelfde openbare IP-adres van de NAT-gateway worden gemaskeerd.

Nat-gateway hergebruikt een SNAT-poort om verbinding te maken met een nieuwe bestemming

Zoals eerder vermeld, kan de NAT-gateway dezelfde SNAT-poort opnieuw gebruiken om tegelijkertijd verbinding te maken met een nieuw doeleindpunt. In de volgende tabel vertaalt NAT-gateway stroom 4 naar een SNAT-poort die al wordt gebruikt voor andere bestemmingen (zie stroom 1 uit de vorige tabel).

Stroom Bron-tuple Bron-tuple na SNAT Doel-tuple
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80

SNAT-poort van NAT-gateway afkoelen voor hergebruik naar dezelfde bestemming

In een scenario waarin de NAT-gateway een SNAT-poort hergebruikt om nieuwe verbindingen te maken met hetzelfde doeleindpunt, wordt de SNAT-poort eerst in een SNAT-poort hergebruikfase geplaatst om af te koelen. De periode voor het hergebruik van de SNAT-poort zorgt ervoor dat SNAT-poorten niet te snel opnieuw worden gebruikt wanneer u verbinding maakt met dezelfde bestemming. Deze SNAT-poort hergebruikt voor afkoeling op NAT-gateway is nuttig in scenario's waarin het doeleindpunt een firewall heeft met een eigen bronpoorttimer om af te koelen.

Laten we stroom 4 uit de vorige tabel nader bekijken om dit afkoelgedrag van de SNAT-poort te demonstreren. Flow 4 maakte verbinding met een doeleindpunt dat wordt fronted door een firewall met een afkoeltimer van 20 seconden.

Stroom Bron-tuple Bron-tuple na SNAT Doel-tuple Pakkettypeverbinding is gesloten met Doelfirewalltimer voor afkoelen voor bronpoort
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80 TCP FIN 20 seconden

Verbinding maken stroom 4 wordt gesloten met een TCP FIN-pakket. Omdat de verbinding is gesloten met een TCP FIN-pakket, plaatst nat-gateway SNAT-poort 1234 in afkoeling gedurende 65 seconden voordat deze opnieuw kan worden gebruikt. Omdat poort 1234 langer afkoelt dan de timerduur voor afkoeling van de firewallbronpoort van 20 seconden, gaat de verbindingsstroom 5 verder met het hergebruik van SNAT-poort 1234 zonder probleem.

Stroom Bron-tuple Bron-tuple na SNAT Doel-tuple
5 10.2.0.1:5769 65.52.1.1:1234 26.108.254.155:80

Houd er rekening mee dat de NAT-gateway SNAT-poorten onder verschillende SNAT-poorten plaatst om afkoeltimers opnieuw te gebruiken, afhankelijk van hoe de vorige verbinding is gesloten. Zie Timers voor opnieuw gebruiken van poort voor poort voor meer informatie over timers voor het hergebruik van SNAT-poorten.

Neem geen afhankelijkheid van de specifieke manier waarop bronpoorten worden toegewezen in de bovenstaande voorbeelden. De voorgaande zijn alleen illustraties van de basisconcepten.