Kimenő kapcsolatok (klasszikus)

Az Azure számos különböző mechanizmuson keresztül biztosít kimenő kapcsolatot az ügyfelek üzembe helyezéséhez. Ez a cikk ismerteti, hogy mik a forgatókönyvek, mikor alkalmazhatók, hogyan működnek és hogyan kezelhetők.

Megjegyzés

Ez a cikk csak a klasszikus üzemelő példányokat ismerteti. Tekintse át a kimenő kapcsolatokat az Összes Resource Manager Azure-beli üzembehelyezési forgatókönyv esetében.

Az Azure-beli üzembe helyezés kommunikálhat az Azure-on kívüli végpontokkal a nyilvános IP-címtérben. Amikor egy példány kimenő forgalmat kezdeményez egy célhelyre a nyilvános IP-címtérben, az Azure dinamikusan leképezi a magánhálózati IP-címet egy nyilvános IP-címre. A leképezés létrehozása után a kimenő forgalom visszatérési forgalma is elérheti azt a magánhálózati IP-címet, ahonnan a folyamat származik.

Az Azure a forráshálózati címfordítást (SNAT) használja a függvény végrehajtásához. Ha egyetlen nyilvános IP-cím mögött több magánhálózati IP-cím van álcázva, az Azure portcímfordítást (PAT) használ a magánhálózati IP-címek maszkolására. A rövid élettartamú portok a PAT-hez használatosak, és a készlet mérete alapján előre vannak helyezve .

Több kimenő forgatókönyv is létezik. Ezeket a forgatókönyveket szükség szerint kombinálhatja. Alaposan tekintse át őket, és ismerje meg az üzembehelyezési modellre és az alkalmazásforgatókönyvre vonatkozó képességeket, korlátozásokat és mintákat. Tekintse át a forgatókönyvek kezelésével kapcsolatos útmutatót.

A forgatókönyv áttekintése

Az Azure három különböző módszert biztosít a kimenő kapcsolatok klasszikus üzemelő példányainak eléréséhez. Nem minden klasszikus üzemelő példány rendelkezik mind a három forgatókönyvel:

Eset Metódus IP-protokollok Description Webes feldolgozói szerepkör IaaS
1. Példányszintű nyilvános IP-címmel rendelkező virtuális gép SNAT, nem használt portok maszkolása TCP, UDP, ICMP, ESP Az Azure a nyilvános IP-címhez hozzárendelt virtuális gépet használja. A példány rendelkezik az összes rövid élettartamú porttal. Nem Igen
2. nyilvános, elosztott terhelésű végpont Portlekérdezéssel (PAT) rendelkező SNAT a nyilvános végpontra TCP, UDP Az Azure több privát végponttal osztja meg a nyilvános IP-cím nyilvános végpontját. Az Azure a nyilvános végpont rövid élettartamú portját használja a PAT-hez. Igen Yes
3. Önálló virtuális gép SNAT portos maszkolással (PAT) TCP, UDP Az Azure automatikusan kijelöl egy nyilvános IP-címet az SNAT számára, megosztja ezt a nyilvános IP-címet a teljes üzemelő példánysal, és a PAT nyilvános végponti IP-címének rövid élettartamú portját használja. Ez egy tartalék forgatókönyv az előző forgatókönyvekhez. Nem ajánljuk, ha láthatóságra és vezérlésre van szüksége. Igen Yes

Ez az Azure-beli Resource Manager üzemelő példányokhoz elérhető kimenő kapcsolati funkciók egy része.

A klasszikus környezetekben a különböző üzemelő példányok különböző funkciókkal rendelkeznek:

Klasszikus üzembe helyezés Elérhető funkciók
Virtuális gép 1., 2. vagy 3. forgatókönyv
Webes feldolgozói szerepkör csak a 2., 3. forgatókönyv

A kockázatcsökkentési stratégiák is azonos különbségeket mutatnak.

A pat rövid élettartamú portok klasszikus üzemelő példányokhoz való előzetes áthelyezéséhez használt algoritmus ugyanaz, mint az Azure Resource Manager-erőforrások üzemelő példányai esetében.

1. forgatókönyv: Példányszintű nyilvános IP-címmel rendelkező virtuális gép

Ebben a forgatókönyvben a virtuális géphez példányszintű nyilvános IP-cím (ILPIP) van hozzárendelve. Ami a kimenő kapcsolatokat illeti, nem számít, hogy a virtuális gép elosztott terhelésű végponttal rendelkezik-e. Ez a forgatókönyv elsőbbséget élvez a többiekkel szemben. ILPIP használata esetén a virtuális gép az ILPIP-t használja az összes kimenő folyamathoz.

A virtuális géphez rendelt nyilvános IP-cím egy 1:1 kapcsolat (nem 1:több), és állapot nélküli 1:1 NAT-ként van implementálva. A portok maszkolása (PAT) nincs használatban, és a virtuális gép minden rövid élettartamú portja használható.

Ha az alkalmazás számos kimenő folyamatot kezdeményez, és SNAT-portfogyást tapasztal, fontolja meg egy ILPIP hozzárendelését az SNAT-korlátozások enyhítése érdekében. Tekintse át az SNAT teljes kimerülésének kezelését ismertető cikket.

2. forgatókönyv: Nyilvános terheléselosztású végpont

Ebben a forgatókönyvben a virtuális gép vagy a webfeldolgozó szerepkör egy nyilvános IP-címhez van társítva az elosztott terhelésű végponton keresztül. A virtuális géphez nincs hozzárendelve nyilvános IP-cím.

Amikor a terheléselosztásos virtuális gép kimenő folyamatot hoz létre, az Azure lefordítja a kimenő folyamat privát forrás IP-címét a nyilvános terheléselosztású végpont nyilvános IP-címére. Az Azure az SNAT-t használja a függvény végrehajtásához. Az Azure a PAT használatával is álcáz több magánhálózati IP-címet egy nyilvános IP-cím mögött.

A terheléselosztó nyilvános IP-címelőtérének rövid élettartamú portja a virtuális géptől származó egyes folyamatok megkülönböztetésére szolgál. Az SNAT dinamikusan használ előre meghatározott rövid élettartamú portokat a kimenő folyamatok létrehozásakor. Ebben az összefüggésben az SNAT-hoz használt rövid élettartamú portokat SNAT-portoknak nevezzük.

Az SNAT-portok előre vannak helyezve az SNAT és a PAT ismertetése szakaszban leírtak szerint. Ezek egy véges erőforrás, amely kimerülhet. Fontos megérteni, hogyan fogyasztják őket. Az SNAT-kimerültség kezelésével kapcsolatos cikkből megtudhatja, hogyan tervezheti meg ezt a felhasználást, és hogyan mérsékelheti a szükséges lépéseket.

Ha több nyilvános, elosztott terhelésű végpont létezik, a nyilvános IP-címek bármelyike a kimenő folyamatok egyikének jelöltje, és egy véletlenszerűen van kiválasztva.

3. forgatókönyv: Nincs társítva nyilvános IP-cím

Ebben a forgatókönyvben a virtuális gép vagy a webfeldolgozó ROle nem része egy elosztott terhelésű nyilvános végpontnak. Virtuális gép esetében pedig nincs hozzá ILPIP-cím rendelve. Amikor a virtuális gép kimenő folyamatot hoz létre, az Azure lefordítja a kimenő folyamat privát forrás IP-címét egy nyilvános forrás IP-címre. A kimenő folyamathoz használt nyilvános IP-cím nem konfigurálható, és nem számít bele az előfizetés nyilvános IP-erőforráskorlátba. Az Azure automatikusan lefoglalja ezt a címet.

Az Azure az SNAT-t port-maszkolással (PAT) használja a függvény végrehajtásához. Ez a forgatókönyv hasonló a 2. forgatókönyvhöz, kivéve, hogy nincs szabályozva a használt IP-cím. Ez tartalék forgatókönyv, ha az 1. és a 2. forgatókönyv nem létezik. Ezt a forgatókönyvet nem javasoljuk, ha szabályozni szeretné a kimenő címet. Ha a kimenő kapcsolatok az alkalmazás kritikus részét képezik, válasszon egy másik forgatókönyvet.

Az SNAT-portok előre vannak helyezve az SNAT és a PAT ismertetése szakaszban leírtak szerint. A nyilvános IP-címmel megosztott virtuális gépek vagy webfeldolgozói szerepkörök száma határozza meg az előre kiosztott rövid élettartamú portok számát. Fontos megérteni, hogyan fogyasztják őket. Az SNAT-kimerültség kezelésével kapcsolatos cikkből megtudhatja, hogyan tervezheti meg ezt a felhasználást, és hogyan mérsékelheti a szükséges lépéseket.

Az SNAT és a PAT ismertetése

Portok maszkolása –SNAT (PAT)

Amikor egy üzemelő példány kimenő kapcsolatot hoz létre, a rendszer minden kimenő kapcsolati forrást újraír. A forrást a rendszer a magánhálózati IP-címtérről az üzembe helyezéshez társított nyilvános IP-címre írja át (a fent leírt forgatókönyvek alapján). A nyilvános IP-címtérben a folyamat 5 rekordjának (forrás IP-cím, forrásport, IP-átviteli protokoll, cél IP-cím, célport) egyedinek kell lennie.

A rendszer rövid élettartamú portokat (SNAT-portokat) használ a magánforrás IP-címének újraírása után, mivel több folyamat egyetlen nyilvános IP-címről származik.

Egy SNAT-portot használunk folyamatonként egyetlen cél IP-címre, portra és protokollra. Ugyanazon cél IP-címre, portra és protokollra irányuló több folyamat esetén minden folyamat egyetlen SNAT-portot használ. Ez biztosítja, hogy a folyamatok egyediek legyenek, ha ugyanabból a nyilvános IP-címből származnak, és ugyanarra a cél IP-címre, portra és protokollra kerülnek.

Több folyamat, mindegyik másik cél IP-címhez, porthoz és protokollhoz tartozik, egyetlen SNAT-porton osztozik. A cél IP-cím, port és protokoll egyedivé teszi a folyamatokat anélkül, hogy további forrásportokra van szükség a nyilvános IP-címtérben lévő folyamatok megkülönböztetéséhez.

Ha az SNAT-port erőforrásai kimerülnek, a kimenő folyamatok mindaddig sikertelenek lesznek, amíg a meglévő folyamatok fel nem oldják az SNAT-portokat. Load Balancer visszavesz SNAT-portokat, amikor a folyamat bezárul, és 4 perces tétlen időtúllépést használ az SNAT-portok üresjárati folyamatokból való kivonásához.

Az SNAT-portok kimerüléséhez gyakran vezető feltételek enyhítésére szolgáló mintákért tekintse át az SNAT kezelése című szakaszt .

Rövid élettartamú portok előhelyezése portok álcázására szolgáló SNAT -hez (PAT)

Az Azure egy algoritmussal határozza meg az előre kiosztott SNAT-portok számát a háttérkészlet mérete alapján a portfelfedezéses SNAT (PAT) használatakor. Az SNAT-portok rövid élettartamú portok, amelyek egy adott nyilvános IP-forráscímhez érhetők el.

Az Azure előre kiosztja az SNAT-portokat, ha egy példány üzembe helyezése annak alapján történik, hogy hány virtuálisgép- vagy webfeldolgozói szerepkörpéldány osztozik egy adott nyilvános IP-címen. Kimenő folyamatok létrehozásakor a PAT dinamikusan felhasználja a portokat (az előre kiosztott korlátig), és felszabadítja ezeket a portokat, amikor a folyamat bezárul vagy üresjárati időtúllépés történik.

Az alábbi táblázat a háttérkészlet-méretek rétegeinek SNAT-portelőhelyeit mutatja be:

példányszám Példányonként előre kiosztott SNAT-portok
1-50 1,024
51-100 512
101-200 256
201-400 128

Ne feledje, hogy az elérhető SNAT-portok száma nem fordítható le közvetlenül a folyamatok számára. Egyetlen SNAT-port több egyedi célhelyhez is használható. A portok csak akkor lesznek felhasználva, ha egyedivé kell tenni a folyamatokat. A tervezéssel és a kockázatcsökkentéssel kapcsolatos útmutatásért tekintse meg a kimeríthető erőforrás kezeléséről szóló szakaszt és a PAT-t ismertető szakaszt.

Az üzemelő példány méretének módosítása hatással lehet néhány meglévő folyamatra. Ha a háttérkészlet mérete nő, és áttér a következő szintre, az előre kiosztott SNAT-portok fele vissza lesz kérve a következő nagyobb háttérkészletszintre való áttérés során. A visszaigényelt SNAT-porthoz társított folyamatok időtúllépés miatt időtúllépést fognak végrehajtani, és újra létre kell hozni. Új folyamat megkísérlése esetén a folyamat azonnal sikeres lesz, amíg az előre kiosztott portok elérhetők.

Ha az üzembe helyezés mérete csökken, és alacsonyabb szintre vált, az elérhető SNAT-portok száma nő. Ebben az esetben a meglévő lefoglalt SNAT-portok és a hozzájuk tartozó folyamatok nem lesznek hatással.

Ha egy felhőszolgáltatást újra üzembe helyeznek vagy módosítanak, az infrastruktúra ideiglenesen jelentheti, hogy a háttérkészlet legfeljebb kétszer akkora, mint a tényleges, és az Azure a vártnál kevesebb SNAT-portot helyez üzembe példányonként. Ez átmenetileg növelheti az SNAT-portok elfogyásának valószínűségét. A készlet mérete végül a tényleges méretre fog átállni, és az Azure automatikusan megnöveli az előre kiosztott SNAT-portokat a várt számra a fenti táblázatnak megfelelően. Ez a viselkedés szándékos, és nem konfigurálható.

Az SNAT-portok kiosztása ip-átviteli protokoll-specifikus (a TCP és az UDP külön van fenntartva), és a következő feltételek mellett szabadul fel:

TCP SNAT-port kiadása

  • Ha mindkét kiszolgáló/ügyfél FIN/ACK protokollt küld, az SNAT-port 240 másodperc múlva felszabadul.
  • Ha RST látható, az SNAT-port 15 másodperc múlva felszabadul.
  • Tétlen időtúllépés történt

UDP SNAT-port kiadása

  • Tétlen időtúllépés történt

Problémamegoldás

Ez a szakasz az SNAT-kimerültség és az Azure-beli kimenő kapcsolatok esetén előforduló egyéb forgatókönyvek mérséklésére szolgál.

Az SNAT (PAT) portfogyása kezelése

A PAT-hoz használt rövid élettartamú portok kimeríthető erőforrások, amelyek nincsenek nyilvános IP-címhez társítva és nyilvános terheléselosztási végpontként.

Ha tudja, hogy sok kimenő TCP- vagy UDP-kapcsolatot kezdeményez ugyanahhoz a cél IP-címhez és porthoz, és megfigyeli, hogy a kimenő kapcsolatok sikertelenek, vagy az ügyfélszolgálat azt tanácsolja, hogy kimerítse az SNAT-portokat (a PAT által használt, előre kiosztott rövid élettartamú portokat), számos általános megoldási lehetőség áll rendelkezésére. Tekintse át ezeket a lehetőségeket, és döntse el, hogy mi érhető el és mi a legjobb az Ön forgatókönyvéhez. Lehetséges, hogy egy vagy több segíthet ennek a forgatókönyvnek a kezelésében.

Ha nem tudja megérteni a kimenő kapcsolat viselkedését, használhatja az IP-verem statisztikáit (netstat). Vagy hasznos lehet a kapcsolat viselkedésének megfigyelése csomagrögzítések használatával.

Az alkalmazás módosítása a kapcsolatok újbóli felhasználására

Csökkentheti az SNAT-hez használt rövid élettartamú portok iránti keresletet, ha újra felhasználja a kapcsolatokat az alkalmazásban. Ez különösen igaz az olyan protokollokra, mint a HTTP/1.1, ahol a kapcsolat újrafelhasználása az alapértelmezett. És más protokollok, amelyek http-t használnak átvitelként (például REST) is előnyös lehet.

Az újrafelhasználás mindig jobb, mint az egyes, atomi TCP-kapcsolatok minden egyes kéréshez. Az újbóli felhasználás nagyobb teljesítményű, nagyon hatékony TCP-tranzakciókat eredményez.

Az alkalmazás módosítása kapcsolatkészletezés használatára

Alkalmazhat egy kapcsolatkészletezési sémát az alkalmazásban, ahol a kérések belsőleg vannak elosztva egy rögzített kapcsolatkészlet között (ahol lehetséges, mindegyik újrahasználható). Ez a séma korlátozza a használatban lévő rövid élettartamú portok számát, és kiszámíthatóbb környezetet hoz létre. Ez a séma a kérések átviteli sebességét is növelheti azáltal, hogy több egyidejű műveletet engedélyez, ha egyetlen kapcsolat blokkolja egy művelet válaszát.

Előfordulhat, hogy a kapcsolatkészletezés már létezik azon a keretrendszeren belül, amelyet az alkalmazás vagy az alkalmazás konfigurációs beállításainak fejlesztéséhez használ. A kapcsolatkészletezést kombinálhatja a kapcsolat újrafelhasználásával. A több kérés rögzített, kiszámítható számú portot használ fel ugyanahhoz a cél IP-címhez és porthoz. A kérések kihasználják a TCP-tranzakciók hatékony használatát is, ami csökkenti a késést és az erőforrás-kihasználtságot. Az UDP-tranzakciók szintén hasznosak lehetnek, mivel az UDP-folyamatok számának kezelése elkerülheti a kimerülési feltételeket, és kezelheti az SNAT-port kihasználtságát.

Az alkalmazás módosítása kevésbé agresszív újrapróbálkozási logika használatára

Ha a PAT-hoz használt rövid élettartamú portok elfogynak, vagy alkalmazáshibák lépnek fel, az agresszív vagy találgatásos újrapróbálkozások a lebomlás és a visszalépési logika nélkül kimerülést okoznak, vagy megmaradnak. Egy kevésbé agresszív újrapróbálkozási logika használatával csökkentheti a rövid élettartamú portok iránti keresletet.

A rövid élettartamú portok 4 perces tétlen időtúllépéssel rendelkeznek (nem állíthatók). Ha az újrapróbálkozások túl agresszívek, a kimerültségnek nincs lehetősége önállóan felszabadítani. Ezért a tervezés kritikus részét képezi annak, hogy az alkalmazás milyen gyakran és milyen gyakran újrapróbálkozásokat próbál meg.

Példányszintű nyilvános IP-cím hozzárendelése minden virtuális géphez

Az ILPIP hozzárendelése a forgatókönyvet példányszintű nyilvános IP-címre módosítja egy virtuális gépre. Az egyes virtuális gépekhez használt nyilvános IP-cím összes rövid élettartamú portja elérhető a virtuális gép számára. (Ellentétben azokkal a forgatókönyvekkel, amelyekben a nyilvános IP-címek rövid élettartamú portjai meg vannak osztva a megfelelő üzembe helyezéshez társított összes virtuális géppel.) Érdemes megfontolni a kompromisszumokat, például nagy számú egyedi IP-cím engedélyezési listára helyezésének lehetséges hatását.

Megjegyzés

Ez a beállítás webes feldolgozói szerepkörök esetében nem érhető el.

Életben tartási üzenetek használata az üresjárati idő visszaállítására

A kimenő kapcsolatok 4 perces tétlen időtúllépéssel rendelkeznek. Ez az időtúllépés nem módosítható. Az átvitel (például TCP-megtartók) vagy az alkalmazásrétegbeli keepalives használatával azonban frissítheti a tétlen folyamatot, és szükség esetén alaphelyzetbe állíthatja ezt az üresjárati időtúllépést. Kérdezze meg a csomagolt szoftverek szállítóját, hogy ez támogatott-e, vagy hogyan engedélyezze azt. Általában csak az egyik oldalnak kell keepalivest létrehoznia a tétlen időtúllépés alaphelyzetbe állításához.

A virtuális gép által használt nyilvános IP-cím felderítése

A kimenő kapcsolatok nyilvános forrás IP-címének meghatározására számos módon van lehetőség. Az OpenDNS egy olyan szolgáltatást biztosít, amely megmutatja a virtuális gép nyilvános IP-címét.

Az nslookup paranccsal dns-lekérdezést küldhet a név myip.opendns.com az OpenDNS-feloldónak. A szolgáltatás a lekérdezés küldéséhez használt forrás IP-címet adja vissza. Amikor a következő lekérdezést futtatja a virtuális gépről, a válasz az adott virtuális géphez használt nyilvános IP-cím:

nslookup myip.opendns.com resolver1.opendns.com

Következő lépések

  • További információ a Resource Manager üzemelő példányokban használt Load Balancer.
  • Ismerje meg a Resource Manager üzemelő példányokban elérhető kimenő kapcsolati forgatókönyveket.