Megosztás a következőn keresztül:


NAT-átjáró konfigurálása statikus IP-címhez tárolócsoportból kimenő forgalomhoz

Ha egy tárolócsoportot külső IP-címmel állít be, a külső ügyfelek az IP-cím használatával férhetnek hozzá a csoport egy tárolóhoz. Egy böngésző például hozzáférhet egy tárolóban futó webalkalmazáshoz. Jelenleg azonban egy tárolócsoport egy másik IP-címet használ a kimenő forgalomhoz. Ez a kimenő IP-cím nem érhető el programozott módon, ami összetettebbé teszi a tárolócsoportok monitorozását és az ügyfél tűzfalszabályainak konfigurálását.

Ez a cikk a hálózati címfordítási (NAT) átjáróval integrált virtuális hálózaton lévő tárolócsoport konfigurálásának lépéseit ismerteti. Ha nat-átjárót konfigurál az Azure Container Instances (ACI) számára delegált alhálózati címtartomány SNAT-ra, azonosíthatja a tárolócsoportok kimenő forgalmát. A tárolócsoport kimenő forgalma a NAT-átjáró nyilvános IP-címét használja. A virtuális hálózat alhálózatán üzembe helyezett tárolócsoportok egyetlen NAT-átjárót használhatnak.

Ebben a cikkben az Azure CLI használatával hozza létre az ehhez a forgatókönyvhöz tartozó erőforrásokat:

Ezt követően a NAT-átjárón keresztül ellenőrizheti a példatároló csoportokból érkező kimenő forgalmat.

Feljegyzés

Az ACI szolgáltatás a NAT-átjáróval való integrálást javasolja olyan tárolóalapú számítási feladatokhoz, amelyek statikus kimenő forgalommal rendelkeznek, de nem statikus bejövő forgalomra vonatkozó követelményekkel. A statikus bejövő és kimenő forgalmat egyaránt támogató ACI-architektúrához tekintse meg a következő oktatóanyagot: Az Azure Firewall használata bejövő és kimenő forgalomhoz.

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

Előfeltételek

Az Azure Cloud Shell elindítása

Az Azure Cloud Shell egy olyan ingyenes interaktív kezelőfelület, amelyet a jelen cikkben található lépések futtatására használhat. A fiókjával való használat érdekében a gyakran használt Azure-eszközök már előre telepítve és konfigurálva vannak rajta.

A Cloud Shell megnyitásához válassza a Kipróbálás lehetőséget egy kódblokk jobb felső sarkában. A Cloud Shellt egy külön böngészőlapon is elindíthatja a https://shell.azure.com cím megnyitásával.

Amikor megnyílik a Cloud Shell, ellenőrizze, hogy a Bash ki van-e jelölve a környezetében. A következő munkamenetek az Azure CLI-t használják Bash-környezetben, a Másolás lehetőséget választva másolja ki a kódblokkokat, illessze be a Cloud Shellbe, és nyomja le az Enter billentyűt a futtatáshoz.

Bejelentkezés az Azure-ba

A Cloud Shell automatikusan hitelesítve lesz a kezdeti fiókkal, amellyel bejelentkezett. A következő szkripttel egy másik előfizetéssel jelentkezhet be, lecserélve <Subscription ID> az Azure-előfizetés azonosítóját. Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

További információ: Aktív előfizetés beállítása vagy interaktív bejelentkezés

Feljegyzés

A teljes szkript letöltéséhez nyissa meg a teljes szkriptet.

Első lépések

Ez az oktatóanyag véletlenszerű változót használ. Ha meglévő erőforráscsoportot használt, módosítsa ennek a változónak az értékét megfelelően.

resourceGroup=resourceGroup$RANDOM

Azure-erőforráscsoport: Ha még nem rendelkezik Azure-erőforráscsoporttal, hozzon létre egy erőforráscsoportot az az group create paranccsal. Módosítsa a hely értékét a megfelelő módon.

az group create --name $resourceGroup --location eastus

ACI üzembe helyezése virtuális hálózaton

Egy tipikus esetben előfordulhat, hogy már rendelkezik azure-beli virtuális hálózatokkal, amelyekben tárolócsoportot szeretne üzembe helyezni. Bemutató célokra az alábbi parancsok létrehoznak egy virtuális hálózatot és alhálózatot a tárolócsoport létrehozásakor. Az alhálózat delegálva van az Azure Container Instances szolgáltatásba.

A tárolócsoport egy kis webalkalmazást futtat a aci-helloworld rendszerképből. Ahogy a dokumentáció más cikkei is mutatják, ez a kép egy Node.js írt kis webalkalmazást tartalmaz, amely statikus HTML-oldalt szolgál ki.

Hozza létre a tárolócsoportot az az container create paranccsal:

az container create \
  --name appcontainer \
  --resource-group $resourceGroup \
  --image mcr.microsoft.com/azuredocs/aci-helloworld \
  --vnet aci-vnet \
  --vnet-address-prefix 10.0.0.0/16 \
  --subnet aci-subnet \
  --subnet-address-prefix 10.0.0.0/24

Feljegyzés

Módosítsa az alhálózatban szükséges IP-címtér értékét --subnet address-prefix . A legkisebb támogatott alhálózat a /29, amely nyolc IP-címet biztosít. Egyes >IP-címek az Azure számára vannak fenntartva, amelyekről itt olvashat bővebben.

Hozzon létre egy nyilvános IP-címet

A következő szakaszokban az Azure CLI használatával helyezzen üzembe egy Azure NAT-átjárót a virtuális hálózaton. A háttérről a rövid útmutatóban olvashat : NAT-átjáró létrehozása az Azure CLI használatával.

Először az az network vnet public-ip create használatával hozzon létre nyilvános IP-címet a NAT-átjáróhoz. Az átjáró ezt a nyilvános IP-címet használja az internet eléréséhez. Figyelmeztetést kap egy közelgő kompatibilitástörő változásról, amely miatt a standard termékváltozat IP-címei alapértelmezés szerint a rendelkezésre állási zónát ismerik. A rendelkezésre állási zónák és a nyilvános IP-címek használatáról itt tudhat meg többet.

az network public-ip create \
  --name myPublicIP \
  --resource-group $resourceGroup \
  --sku standard \
  --zone 1 \
  --allocation static

Tárolja a nyilvános IP-címet egy változóban, amely a szkript későbbi ellenőrzési lépése során használható.

ngPublicIp="$(az network public-ip show \
  --name myPublicIP \
  --resource-group $resourceGroup \
  --query ipAddress --output tsv)"

NAT-átjáró üzembe helyezése virtuális hálózaton

Az alábbi az network nat gateway create használatával hozzon létre egy NAT-átjárót, amely az előző lépésben létrehozott nyilvános IP-címet használja.

az network nat gateway create \
  --resource-group $resourceGroup \
  --name myNATgateway \
  --public-ip-addresses myPublicIP \
  --idle-timeout 10

NAT-szolgáltatás konfigurálása a forrásalhálózathoz

A forrás alhálózat aci-alhálózatát úgy konfiguráljuk, hogy az az network vnet alhálózati frissítéssel használjon egy adott NAT-átjáró-erőforrást, a myNATgatewayt. Ez a parancs aktiválja a NAT szolgáltatást a megadott alhálózaton.

az network vnet subnet update \
    --resource-group $resourceGroup  \
    --vnet-name aci-vnet \
    --name aci-subnet \
    --nat-gateway myNATgateway

Tárolócsoportból érkező kimenő forgalom tesztelése

Tesztelje a appcontainer virtuális hálózaton futó bejövő hozzáférést a tűzfal nyilvános IP-címének böngészésével. Korábban a nyilvános IP-címet a $NG_PUBLIC_IP változóban tárolta

Helyezze üzembe a következő mintatárolót a virtuális hálózaton. A futtatáskor egyetlen HTTP-kérést http://checkip.dyndns.orgküld, amely megjeleníti a feladó IP-címét (a kimenő IP-címet). Ha a tűzfal alkalmazásszabálya megfelelően van konfigurálva, a tűzfal nyilvános IP-címe lesz visszaadva.

az container create \
  --resource-group $resourceGroup \
  --name testegress \
  --image mcr.microsoft.com/azuredocs/aci-tutorial-sidecar \
  --command-line "curl -s http://checkip.dyndns.org" \
  --restart-policy OnFailure \
  --vnet aci-vnet \
  --subnet aci-subnet

Tekintse meg a tárolónaplókat annak ellenőrzéséhez, hogy az IP-cím megegyezik-e az oktatóanyag első lépésében létrehozott nyilvános IP-címmel.

az container logs \
  --resource-group $resourceGroup \
  --name testegress

A kimenet a következőhöz hasonló:

<html><head><title>Current IP Check</title></head><body>Current IP Address: 52.142.18.133</body></html>

Ennek az IP-címnek meg kell egyeznie az oktatóanyag első lépésében létrehozott nyilvános IP-címmel.

echo $ngPublicIp

Az erőforrások eltávolítása

Ha már nincs rá szükség, az az group delete használatával eltávolíthatja az erőforráscsoportot és az összes kapcsolódó erőforrást az alábbiak szerint. A --no-wait paraméter visszaadja a vezérlést a parancssornak, és nem várja meg a művelet befejeztét. A --yes paraméter megerősíti, hogy további kérés nélkül szeretné törölni az erőforrásokat.

az group delete --name $resourceGroup --yes --no-wait

Következő lépések

Ebben a cikkben tárolócsoportokat állít be egy Azure NAT-átjáró mögötti virtuális hálózaton. Ezzel a konfigurációval egyetlen statikus IP-cím kimenő forgalmat állít be az Azure Container Instances tárolócsoportjaiból.

Hibaelhárítási segítségért tekintse meg az Azure Virtual Network NAT-kapcsolatának hibaelhárítását.