Forráshálózati címfordítás (SNAT) használata a kimenő kapcsolatokhoz
Bizonyos forgatókönyvek megkövetelik, hogy a virtuális gépek vagy számítási példányok kimenő internetkapcsolattal rendelkezzenek. A nyilvános terheléselosztó előtérbeli IP-címei a háttérpéldányok kimenő internetkapcsolatának biztosítására használhatók. Ez a konfiguráció a forráshálózati címfordítás (SNAT) használatával fordítja le a virtuális gép privát IP-címét a terheléselosztó nyilvános IP-címére. Az SNAT leképezi a háttérrendszer IP-címét a terheléselosztó nyilvános IP-címére. Az SNAT megakadályozza, hogy külső források közvetlen címmel rendelkezzenek a háttérpéldányokhoz.
Az Azure kimenő kapcsolati módszerei
A kimenő kapcsolatok engedélyezéséhez az Azure leggyakrabban használt módszerei a következők:
# | Metódus | A portfoglalás típusa | Éles üzemű? | Minősítés |
---|---|---|---|---|
0 | A terheléselosztó előtérbeli IP-címének (ip-címeinek) használata kimenő szabályokon keresztüli kimenő forgalomhoz | Statikus, explicit | Igen, de nem nagy léptékben | OK |
2 | NAT-átjáró társítása az alhálózathoz | Dinamikus, explicit | Igen | Legjobb |
3 | Nyilvános IP-cím hozzárendelése a virtuális géphez | Statikus, explicit | Igen | OK |
4 | Alapértelmezett kimenő hozzáférés | Implicit | Nem | Legrosszabb |
1. A terheléselosztó előtérbeli IP-címének használata kimenő szabályokon keresztüli kimenő forgalomhoz
A kimenő szabályok lehetővé teszik az SNAT (forráshálózati címfordítás) explicit meghatározását egy szabványos nyilvános termékváltozatú terheléselosztóhoz. Ezzel a konfigurációval a terheléselosztó nyilvános IP-címét vagy IP-címét használhatja a háttérpéldányok kimenő kapcsolataihoz.
Ez a konfiguráció a következőket teszi lehetővé:
IP-cím maszkolása
Az engedélyezési listák egyszerűsítése
Csökkenti az üzembe helyezéshez szükséges nyilvános IP-erőforrások számát
Kimenő szabályokkal teljes deklaratív vezérléssel rendelkezik a kimenő internetkapcsolat felett. A kimenő szabályok lehetővé teszik, hogy manuális portkiosztással skálázhassa és hangolja ezt a képességet az adott igényekhez. Az SNAT-port manuális kiosztása a háttérkészlet mérete és a frontendIPConfigurations száma alapján segíthet elkerülni az SNAT-kimerülést.
SNAT-portokat manuálisan is kioszthat „portok példányonként” vagy „háttérpéldányok maximális száma” szerint. Ha virtuális gépekkel rendelkezik a háttérrendszerben, javasoljuk, hogy a portokat „portok példányonként” rendszer szerint ossza ki a maximális SNAT-porthasználat érdekében.
Példányonként számítsa ki a portokat az alábbiak szerint:
Előtérbeli IP-címek száma * 64K / Háttérpéldányok száma
Ha virtuálisgép-méretezési csoportokkal rendelkezik a háttérrendszerben, javasoljuk, hogy a portokat a "háttérpéldányok maximális száma" szerint foglalja le. Ha több virtuális gépet ad hozzá a háttérrendszerhez, mint amennyit a fennmaradó SNAT-portok engedélyezettek, le lehet tiltani a virtuálisgép-méretezési csoportok vertikális felskálázását, vagy az új virtuális gépek nem kapnak elegendő SNAT-portot.
Ha több előtér-IP-cím van konfigurálva kimenő szabályokkal, a kimenő kapcsolatok a háttérpéldányra konfigurált előtér IP-címek bármelyikéből származhatnak. Nem javasoljuk olyan függőségek kiépítését, amelyeken az előtérbeli IP-cím kiválasztható a kapcsolatokhoz.
A kimenő szabályokról további információt a Kimenő szabályok című témakörben talál.
2. NAT-átjáró társítása az alhálózathoz
Az Azure NAT Gateway leegyszerűsíti a csak kimenő internetkapcsolatot a virtuális hálózatokhoz. Ha alhálózaton van konfigurálva, minden kimenő kapcsolat a megadott statikus nyilvános IP-címeket használja. A kimenő kapcsolat terheléselosztó vagy a virtuális gépekhez közvetlenül csatlakoztatott nyilvános IP-címek nélkül lehetséges. A NAT Gateway teljes mértékben felügyelt és rendkívül rugalmas.
A nat-átjáró használata a legjobb módszer a kimenő kapcsolatokhoz. A NAT-átjáró rendkívül bővíthető, megbízható, és nem ugyanazokkal az SNAT-portkimerüléssel kapcsolatos aggályai vannak.
A NAT-átjáró elsőbbséget élvez más kimenő kapcsolati módszerekkel szemben, beleértve a terheléselosztót, a példányszintű nyilvános IP-címeket és az Azure Firewallt.
Az Azure NAT Gatewayről további információt az Azure NAT Gateway ismertetése tartalmaz.
3. Nyilvános IP-cím hozzárendelése a virtuális géphez
Egyesületek | Metódus | IP-protokollok |
---|---|---|
Nyilvános IP-cím a virtuális gép hálózati adapterén | Az SNAT (forráshálózati címfordítás) nem használható. |
TCP (Transmission Control Protocol) UDP (User Datagram Protocol) ICMP (Internet Control Message Protocol) ESP (A biztonsági hasznos adatok beágyazása) |
A forgalom a virtuális gép nyilvános IP-címéről (példányszintű IP-címről) tér vissza a kérelmező ügyfélhez.
Az Azure a példány hálózati adapterének IP-konfigurációja által hozzárendelt nyilvános IP-címet használja az összes kimenő folyamathoz. A példány minden rövid élettartamú portja elérhető. Nem számít, hogy a virtuális gép terhelése kiegyensúlyozott-e vagy sem. Ez a forgatókönyv elsőbbséget élvez a többi felhasználóval szemben, kivéve a NAT Gatewayt.
A virtuális géphez rendelt nyilvános IP-cím egy 1:1 kapcsolat (1: több helyett), és állapot nélküli 1:1 NAT-ként van implementálva.
4. Alapértelmezett kimenő hozzáférés
Az Azure-ban a virtuális hálózaton explicit kimenő kapcsolat definiálása nélkül létrehozott virtuális gépekhez alapértelmezett kimenő nyilvános IP-cím van hozzárendelve. Ez az IP-cím lehetővé teszi az erőforrásokból az internetre irányuló kimenő kapcsolatot. Ezt a hozzáférést alapértelmezett kimenő hozzáférésnek nevezzük. Ez a hozzáférési módszer nem ajánlott , mivel nem biztonságos, és az IP-címek változhatnak.
Fontos
2025. szeptember 30-án az új üzembe helyezések alapértelmezett kimenő hozzáférése megszűnik. További információért tekintse meg a hivatalos bejelentést. Javasoljuk, hogy a fenti 1–3. lehetőségnek megfelelően használja a kapcsolat egyik kitevő formáját.
Mik azok az SNAT-portok?
A portok egyedi azonosítók létrehozására szolgálnak, amelyek különböző folyamatok fenntartására szolgálnak. Az internet egy öt-tuple, hogy ezt a különbséget.
Ha egy portot bejövő kapcsolatokhoz használnak, az adott porton van egy figyelő a bejövő kapcsolatkérésekhez. Ez a port nem használható kimenő kapcsolatokhoz. Kimenő kapcsolat létrehozásához egy rövid élettartamú portot használunk, amellyel a cél számára egy olyan portot biztosítunk, amelyen egy különálló forgalom kommunikál és tart fenn. Ha ezeket a rövid élettartamú portokat az SNAT-hez használják, SNAT-portoknak nevezzük őket.
Definíció szerint minden IP-cím 65 535 porttal rendelkezik. Mindegyik port használható a TCP (Transmission Control Protocol) és az UDP (User Datagram Protocol) bejövő vagy kimenő kapcsolataihoz. Ha egy nyilvános IP-cím előtérbeli IP-címként van hozzáadva egy terheléselosztóhoz, 64 000 port jogosult az SNAT használatára.
A terheléselosztási vagy bejövő NAT-szabályban használt portok mindegyike nyolc portból álló tartományt használ a 64 000 rendelkezésre álló SNAT-portból. Ez a használat csökkenti az SNAT-hez jogosult portok számát, ha ugyanazt az előtérbeli IP-címet használja a kimenő kapcsolatokhoz. Ha a terheléselosztási vagy bejövő NAT-szabályok által használt portok ugyanabban a blokkban vannak, amelyben egy másik szabály nyolc portot használ, a szabályok nem igényelnek további portokat.
Feljegyzés
Ha bármilyen támogatott Azure PaaS-szolgáltatáshoz , például az Azure Storage-hoz, az Azure SQL-hez vagy az Azure Cosmos DB-hez kell csatlakoznia, az Azure Private Link használatával teljes mértékben elkerülheti az SNAT-t. Az Azure Private Link nem az interneten, hanem az Azure gerinchálózatán keresztül küld forgalmat a virtuális hálózatról az Azure-szolgáltatásoknak.
A Privát kapcsolat a szolgáltatásvégpontokon ajánlott az Azure által üzemeltetett szolgáltatásokhoz való privát hozzáféréshez. A privát kapcsolat és a szolgáltatásvégpontok közötti különbségről további információt a privát végpontok és a szolgáltatásvégpontok összehasonlítása című témakörben talál.
Hogyan működik az alapértelmezett SNAT?
Amikor egy virtuális gép kimenő folyamatot hoz létre, az Azure lefordítja a forrás IP-címet egy rövid élettartamú IP-címre. Ez a fordítás SNAT-en keresztül történik.
Ha az SNAT-t nyilvános terheléselosztón keresztül kimenő szabályok nélkül használja, az SNAT-portok előre ki vannak foglalva az alábbi alapértelmezett SNAT-portok foglalási táblájában leírtak szerint:
Alapértelmezett portfoglalási tábla
Ha a terheléselosztási szabályok az alapértelmezett portfoglalás használatára vannak kiválasztva, vagy a kimenő szabályok a "Kimenő portok alapértelmezett számának használata" beállítással vannak konfigurálva, a rendszer alapértelmezés szerint lefoglalja az SNAT-portokat a háttérkészlet mérete alapján. A háttérrendszerek a tábla által meghatározott portok számát fogadják előtér-IP-címenként legfeljebb 1024 portig.
Például ha egy háttérkészletben 100 virtuális gép található, és csak egy előtér-IP-cím van, minden virtuális gép 512 portot kap. Ha egy második előtérbeli IP-címet ad hozzá, minden virtuális gép további 512 portot kap. Ez azt jelenti, hogy minden virtuális gép összesen 1024 portot foglal le. Ennek eredményeképpen egy harmadik előtérbeli IP-cím hozzáadása NEM növeli a lefoglalt SNAT-portok számát az 1024-es portokon túl.
Ökölszabályként az alapértelmezett portfoglalás alkalmazásakor megadott SNAT-portok száma a következőképpen számítható ki: MIN(az alapértelmezett SNAT-portok száma a készlet mérete alapján * a készlethez társított előtér IP-címek száma, 1024)
Az alábbi táblázat az SNAT-port előtelepítéseit mutatja be egyetlen előtér-IP-címhez a háttérkészlet méretétől függően:
Készlet mérete (virtuálisgép-példányok) | Alapértelmezett SNAT-portok |
---|---|
1-50 | 1,024 |
51–100 | 512 |
101–200 | 256 |
201–400 | 128 |
401-800 | 64 |
801-1,000 | 32 |
Portfogyás
Minden kapcsolat ugyanahhoz a cél IP-címhez és célporthoz SNAT-portot használ. Ez a kapcsolat a háttérpéldánytól vagy az ügyféltől a kiszolgálóig eltérő forgalomáramlást tart fenn. Ez a folyamat egy különálló portot biztosít a kiszolgálónak, amelyen a forgalom kezelhető. E folyamat nélkül az ügyfélszámítógép nem tudható, hogy egy csomag melyik folyamat része.
Képzelje el, hogy több böngészőt is használ https://www.microsoft.com, ami a következő:
Cél IP-címe = 23.53.254.142
Célport = 443
Protokoll = TCP
A visszatérési forgalomhoz tartozó SNAT-portok nélkül az ügyfélnek nincs módja arra, hogy elválasztsa az egyik lekérdezési eredményt a másiktól.
A kimenő kapcsolatok megszakadhatnak. A háttérpéldányok nem foglalhatók le elegendő portként. Használja a kapcsolat újrafelhasználási funkcióit az alkalmazásban. A kapcsolat újbóli felhasználása nélkül az SNAT-portok kimerülésének kockázata megnő.
A Azure-alkalmazás Szolgáltatással való kapcsolatkészletezésről további információt a Azure-alkalmazás Szolgáltatás időszakos kimenő csatlakozási hibáinak elhárítása című témakörben talál.
A cél IP-címhez való új kimenő kapcsolatok sikertelenek lesznek a portkimerülés esetén. A kapcsolatok akkor sikeresek, ha egy port elérhetővé válik. Ez a kimerültség akkor fordul elő, ha egy IP-cím 64 000 portja vékonyan oszlik el számos háttérpéldányon. Az SNAT-portok kimerülésének csökkentésére vonatkozó útmutatásért tekintse meg a hibaelhárítási útmutatót.
Portok újrafelhasználása
TCP-kapcsolatok esetén a terheléselosztó egyetlen SNAT-portot használ minden cél IP-címhez és porthoz. Ugyanazon cél IP-címhez való kapcsolatok esetén egyetlen SNAT-port használható újra, amíg a célport eltér. Az újrafelhasználás nem lehetséges, ha már létezik kapcsolat ugyanahhoz a cél IP-címhez és porthoz.
UDP-kapcsolatok esetén a terheléselosztó egy portkorlátozott cone NAT-algoritmust használ, amely cél IP-címenként egy SNAT-portot használ, a célporttól függetlenül.
Az egyes portok korlátlan számú olyan kapcsolathoz használhatók újra, ahol engedélyezett az újrahasználat (ha a cél IP-címe vagy portja eltérő).
Az alábbi táblázatban szereplő példában egy 10.0.0.1 privát IP-címmel rendelkező háttérpéldány TCP-kapcsolatokat létesít a 23.53.254.142-s és a 26.108.254.155-ös cél IP-címmel, míg a terheléselosztó a 192.0.2.0 előtérbeli IP-címmel van konfigurálva. Mivel a cél IP-címek eltérőek, ugyanazt az SNAT-portot több kapcsolathoz is újra felhasználhatja.
Folyamat | Forrásrekord | Forrásrekord az SNAT után | Célrekord |
---|---|---|---|
0 | 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 |
Megszorítások
Ha a kapcsolat tétlen, és nem küld új csomagokat, a portok 4–120 perc múlva lesznek felszabadítva.
Ez a küszöbérték kimenő szabályokkal konfigurálható.
Minden IP-cím 64 000 portot biztosít, amelyek az SNAT-hoz használhatók.
Mindegyik port használható a CÉL IP-címhez való TCP- és UDP-kapcsolatokhoz is
UDP SNAT-portra van szükség, függetlenül attól, hogy a célport egyedi-e vagy sem. A cél IP-címhez való minden UDP-kapcsolathoz egy UDP SNAT-portot használunk.
A TCP SNAT-portok több kapcsolathoz is használhatók ugyanahhoz a cél IP-címhez, feltéve, hogy a célportok eltérőek.
Az SNAT-kimerülés akkor fordul elő, ha egy háttérpéldány elfogy a megadott SNAT-portok közül. A terheléselosztó továbbra is rendelkezhet nem használt SNAT-portokkal. Ha egy háttérpéldány használt SNAT-portjai túllépik a megadott SNAT-portokat, nem tud új kimenő kapcsolatokat létesíteni.
A töredezett csomagok elvetése csak akkor történik, ha a kimenő forgalom a virtuális gép hálózati adapterén egy példányszintű nyilvános IP-címen keresztül történik.
A hálózati adapter másodlagos IPv4-konfigurációi nem támogatottak kimenő szabályokkal. A másodlagos IPv4-konfigurációk kimenő kapcsolataihoz csatolja a példányszintű nyilvános IP-címeket, vagy használja inkább a NAT Gatewayt.
Következő lépések
- Kimenő kapcsolat SNAT-kimerülés miatti hibáinak elhárítása
- Tekintse át az SNAT-metrikákat , és ismerkedjen meg a szűrés, felosztás és megtekintés megfelelő módjával.
- Ismerje meg, hogyan migrálhatja a meglévő kimenő kapcsolati módszert a NAT-átjáróba