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:
- A virtuális hálózat delegált alhálózatán üzembe helyezett tárolócsoportok
- A hálózaton üzembe helyezett NAT-átjáró statikus nyilvános IP-címmel
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
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
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.org
kü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.