تكوين عنوان IP عام واحد لنسبة استخدام الشبكة الصادرة والصادرة إلى مجموعة حاويات
يتيح إعداد مجموعة حاويات بعنوان IP كواجهة خارجية للعملاء الخارجيين باستخدام عنوان IP للوصول إلى حاوية في المجموعة. على سبيل المثال، يمكن للمتصفح الوصول إلى تطبيق ويب يعمل في حاوية. ومع ذلك، تستخدم مجموعة حاويات حالياً عنوان IP مختلف لنسبة استخدام الشبكة الصادرة. لا يتم كشف عنوان IP الخروج هذا برمجياً، ما يجعل مراقبة مجموعة الحاويات وتكوين قواعد جدار حماية العميل أكثر تعقيداً.
توفر هذه المقالة خطوات لتكوين مجموعة حاويات في شبكة اتصال ظاهريةمتكاملة معجدار حماية Azure. من خلال إعداد توجيه معرف من قبل المستخدم إلى قواعد مجموعة الحاويات وجدار الحماية، يمكنك توجيه نسبة استخدام الشبكة من وإلى مجموعة الحاويات وتحديدها. حاوية مجموعة الدخول والخروج استخدام عنوان IP العام لجدار الحماية. يمكن استخدام عنوان IP خروج واحد من قبل مجموعات حاويات متعددة تم نشرها في الشبكة الفرعية للشبكة الظاهرية المفوضة إلى مثيلات حاوية Azure.
ستستخدم في هذه المقالة Azure CLI لإنشاء الموارد لهذا السيناريو:
- تم نشر مجموعات الحاويات على شبكة فرعية مفوَّضة في الشبكة الظاهرية
- جدار حماية Azure منشور في الشبكة باستخدام عنوان IP عام ثابت
- توجيه معرف من قبل المستخدم على الشبكة الفرعية لمجموعات الحاويات
- قاعدة NAT لـ دخول جدار الحماية وقاعدة تطبيق الخروج
ثم يمكنك التحقق من صحة الدخول والخروج من مجموعات الحاويات المماثلة من خلال جدار الحماية.
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
إطلاق Azure Cloud Shell
Azure Cloud Shell هو shell تفاعلية مجانية التي يمكنك استخدامها لتشغيل الخطوات في هذه المقالة. يحتوي على أدوات Azure الشائعة المثبتة مسبقًا والمهيئة للاستخدام مع حسابك.
لفتح Cloud Shell، ما عليك سوى تحديد جربه من الزاوية اليمنى العليا من مجموعة التعليمات البرمجية. يمكنك أيضًا تشغيل Cloud Shell في علامة تبويب مستعرض منفصلة بالانتقال إلى https://shell.azure.com.
عند فتح Cloud Shell، تحقق من تحديد Bash لبيئتك. ستستخدم الجلسات اللاحقة Azure CLI في بيئة Bash، حدد نسخ لنسخ كتل التعليمات البرمجية، وألصقها في Cloud Shell، واضغط على Enter لتشغيلها.
تسجيل الدخول إلى Azure
يُصادق Cloud Shell تلقائياً بموجب الحساب الأولي الذي سُجل الدخول به. استخدم البرنامج النصي التالي لتسجيل الدخول باستخدام اشتراك مختلف، واستبدل <Subscription ID>
بمعرّف اشتراك Azure الخاص بك. إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
لمزيد من المعلومات، راجع تعيين اشتراك نشط أو تسجيل الدخول بشكل تفاعلي
إشعار
لتنزيل البرنامج النصي الكامل، انتقل إلى البرنامج النصي الكامل.
الشروع في العمل
يستخدم هذا البرنامج التعليمي متغيرًا عشوائيًا. إذا كنت تستخدم مجموعة موارد موجودة، فعدّل قيمة هذا المتغير بما يتلاءم.
resourceGroup=resourceGroup$RANDOM
مجموعة موارد Azure: إذا لم يكن لديك مجموعة موارد Azure بالفعل، قم بإنشاء مجموعة موارد باستخدام الأمر إنشاء مجموعة az. قم بتعديل قيمة الموقع حسبما يتناسب.
az group create --name $resourceGroup --location eastus
توزيع في شبكة ظاهرية
في حالة نموذجية، قد يكون لديك بالفعل شبكة ظاهرية Azure لنشر مجموعة حاويات. لأغراض العرض التوضيحي، الأوامر التالية إنشاء شبكة اتصال ظاهرية، وشبكة فرعية عند إنشاء مجموعة حاوية. يتم تفويض الشبكة الفرعية إلى مثيلات حاوية Azure.
تقوم مجموعة الحاوية بتشغيل تطبيق ويب صغير من الصورة aci-helloworld
. تعمل هذه الصورة على حزم تطبيق ويب صغير مكتوب بلغة Node.js يقدم صفحة HTML ثابتة.
أنشئ مجموعة الحاوية باستخدام الأمر az container create:
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
تلميح
اضبط قيمة --subnet address-prefix
لمساحة عنوان IP التي تحتاجها في شبكتك الفرعية. أصغر شبكة فرعية معتمدة هي/ 29، والتي توفر ثمانية عناوين IP. يتم حجز بعض عناوين IP للاستخدام من قبل Azure.
للاستخدام في خطوة لاحقة، احصل على عنوان IP الخاص لمجموعة الحاويات عن طريق تشغيل الأمر [az container show][az-container-show]:
aciPrivateIp="$(az container show --name appcontainer \
--resource-group $resourceGroup \
--query ipAddress.ip --output tsv)"
انشر جدار حماية Azure في الشبكة
في المقاطع التالية، استخدم Azure CLI لنشر جدار حماية Azure في شبكة الاتصال الظاهرية. للحصول على الخلفية، راجع البرنامج التعليمي: نشر وتكوين جدار حماية Azure باستخدام مدخل Microsoft Azure.
أولاً- استخدم إنشاء شبكة vnet الفرعية لشبكة az لإضافة شبكة فرعية تسمى AzureFirewallSubnet لجدار الحماية. AzureFirewallSubnet هو الاسم المطلوب لهذه الشبكة الفرعية.
az network vnet subnet create \
--name AzureFirewallSubnet \
--resource-group $resourceGroup \
--vnet-name aci-vnet \
--address-prefix 10.0.1.0/26
استخدم أوامر Azure CLI التالية لإنشاء جدار حماية في الشبكة الفرعية.
إذا لم تكن مثبتة مسبقاً، يمكن إضافة ملحق جدار الحماية إلى CLI Azure باستخدام az ملحق إضافة الأمر:
az extension add --name azure-firewall
قم بإنشاء موارد جدار الحماية باستخدام الأمر az network firewall create :
az network firewall create \
--name myFirewall \
--resource-group $resourceGroup \
--location eastus
az network public-ip create \
--name fw-pip \
--resource-group $resourceGroup \
--location eastus \
--allocation-method static \
--sku standard
az network firewall ip-config create \
--firewall-name myFirewall \
--name FW-config \
--public-ip-address fw-pip \
--resource-group $resourceGroup \
--vnet-name aci-vnet
تحديث تكوين جدار الحماية باستخدام الأمر تحديث جدار حماية شبكة الاتصال az:
az network firewall update \
--name myFirewall \
--resource-group $resourceGroup
الحصول على عنوان IP الخاص بجدار الحماية باستخدام أمر قائمة ip-config جدار حماية شبكة AZ. يتم استخدام عنوان IP الخاص هذا في أمر لاحق.
fwPrivateIp="$(az network firewall ip-config list \
--resource-group $resourceGroup \
--firewall-name myFirewall \
--query "[].privateIpAddress" --output tsv)"
احصل على عنوان IP العام لجدار الحماية باستخدام الأمر az network public-ip show . يتم استخدام عنوان IP العام هذا في أمر لاحق.
fwPublicIp="$(az network public-ip show \
--name fw-pip \
--resource-group $resourceGroup \
--query ipAddress --output tsv)"
تعريف التوجيه المعرف من قبل المستخدم على شبكة ACI الفرعية
حدد مساراً معرّفاً حسب الاستخدام على شبكة ACI الفرعية، لتحويل حركة المرور إلى جدار حماية Azure. لمعرفة مزيد من المعلومات، راجع Control network traffic.
أنشئ جدول توجيه
أولاً- قم بتشغيل الأمر التالي az network route-table create لإنشاء جدول التوجيه. إنشاء جدول التوجيه في نفس المنطقة كشبكة ظاهرية.
az network route-table create \
--name Firewall-rt-table \
--resource-group $resourceGroup \
--location eastus \
--disable-bgp-route-propagation true
خلق الطريق
تشغيل az network-route-table route create توجيه في جدول التوجيه. لتوجيه حركة المرور إلى جدار الحماية، قم بتعيين نوع القفزة التالية إلى VirtualAppliance
، ثم مرر عنوان IP الخاص بجدار الحماية كعنوان القفزة التالية.
az network route-table route create \
--resource-group $resourceGroup \
--name DG-Route \
--route-table-name Firewall-rt-table \
--address-prefix 0.0.0.0/0 \
--next-hop-type VirtualAppliance \
--next-hop-ip-address $fwPrivateIp
توصيل جدول المسار بالشبكة الفرعية
قم بتشغيل الأمر az network vnet subnet update لإقران جدول التوجيه بالشبكة الفرعية المفوضة إلى مثيلات حاوية Azure.
az network vnet subnet update \
--name aci-subnet \
--resource-group $resourceGroup \
--vnet-name aci-vnet \
--address-prefixes 10.0.0.0/24 \
--route-table Firewall-rt-table
تكوين القواعد على جدار الحماية
بشكل افتراضي، يرفض جدار حماية Azure (الكتل) نسبة استخدام الشبكة الواردة والصادرة.
تكوين قاعدة NAT على جدار الحماية إلى شبكة فرعية ACI
أنشئ قاعدة NAT على جدار الحماية لترجمة حركة مرور الإنترنت الواردة، وتصفيتها إلى حاوية التطبيق التي بدأتها سابقاً في الشبكة. للحصول على تفاصيل، راجع تصفية حركة مرور الإنترنت الواردة باستخدام Azure Firewall DNAT
أنشئ قاعدة NAT ومجموعة باستخدام الأمر az network firewall nat-rule create:
az network firewall nat-rule create \
--firewall-name myFirewall \
--collection-name myNATCollection \
--action dnat \
--name myRule \
--protocols TCP \
--source-addresses '*' \
--destination-addresses $fwPublicIp \
--destination-ports 80 \
--resource-group $resourceGroup \
--translated-address $aciPrivateIp \
--translated-port 80 \
--priority 200
إضافة قواعد NAT حسب الحاجة إلى تصفية نسبة استخدام الشبكة إلى عناوين IP الأخرى في الشبكة الفرعية. على سبيل المثال، قد تعرض مجموعات حاويات أخرى في الشبكة الفرعية عناوين IP لنسبة استخدام الشبكة الواردة، أو قد يتم تعيين عناوين IP داخلية أخرى إلى المجموعة الحاوية بعد إعادة التشغيل.
إنشاء قاعدة تطبيق صادرة على جدار الحماية
قم بتشغيل الأمر التالي az network firewall application-rule create لإنشاء قاعدة صادرة على جدار الحماية. تسمح قاعدة النموذج هذه بالوصول من الشبكة الفرعية المفوضة إلى مثيلات حاويات Azure إلى FQDN checkip.dyndns.org
. يستخدم الوصول إلى HTTP إلى الموقع في خطوة لاحقة لتأكيد عنوان IP والخروج من مثيلات حاوية Azure.
az network firewall application-rule create \
--collection-name myAppCollection \
--firewall-name myFirewall \
--name Allow-CheckIP \
--protocols Http=80 Https=443 \
--resource-group $resourceGroup \
--target-fqdns checkip.dyndns.org \
--source-addresses 10.0.0.0/24 \
--priority 200 \
--action Allow
اختبار وصول مجموعة الحاوية من خلال جدار الحماية
تحقق المقاطع التالية من تكوين الشبكة الفرعية المفوضة إلى مثيلات حاوية Azure بشكل صحيح خلف جدار حماية Azure. الخطوات السابقة توجه كل من حركة المرور الواردة إلى الشبكة الفرعية، ونسبة استخدام الشبكة الصادرة من الشبكة الفرعية من خلال جدار الحماية.
دخول الاختبار إلى مجموعة حاويات
اختبر الوصول الوارد إلى appcontainer
قيد التشغيل في الشبكة الظاهرية عن طريق الاستعراض إلى عنوان IP العام لجدار الحماية. سابقاً، قمت بتخزين عنوان IP العام في متغير $FW_PUBLIC_IP:
echo $fwPublicIp
الإخراج مشابه لما يلي:
52.142.18.133
إذا تم تكوين قاعدة NAT على جدار الحماية بشكل صحيح، سترى ما يلي: عند إدخال عنوان IP العام لجدار الحماية في المستعرض الخاص بك:
اختبار الخروج من مجموعة حاويات
نشر حاوية النموذج التالية في شبكة الاتصال الظاهرية. عند تشغيله، فإنه يرسل طلب HTTP واحد إلى http://checkip.dyndns.org
، والذي يعرض عنوان IP للمرسل (عنوان IP الخروج). إذا تم تكوين قاعدة التطبيق على جدار الحماية بشكل صحيح، يتم إرجاع عنوان IP العام لجدار الحماية.
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
عرض سجلات الحاوية لتأكيد عنوان IP هو نفس عنوان IP العام جدار الحماية.
az container logs \
--resource-group $resourceGroup \
--name testegress
الإخراج مشابه لما يلي:
<html><head><title>Current IP Check</title></head><body>Current IP Address: 52.142.18.133</body></html>
تنظيف الموارد
عند انقضاء الحاجة، يمكنك استخدام az group delete لإزالة مجموعة الموارد وجميع الموارد ذات الصلة كما يلي. تُعيد المعلمة --no-wait
التحكم إلى الموجه دون انتظار إكمال العملية. المعلمة --yes
تؤكد رغبتك في حذف الموارد دون مطالبة إضافية للقيام بذلك.
az group delete --name $resourceGroup --yes --no-wait
الخطوات التالية
في هذه المقالة، يمكنك إعداد مجموعات الحاويات في شبكة ظاهرية خلف جدار حماية Azure. تكوين توجيه المعرفة من قبل المستخدم وNAT وقواعد التطبيق على جدار الحماية. باستخدام هذا التكوين، يمكنك إعداد عنوان IP ثابت واحد لـ "الدخول والخروج" من مثيلات حاوية Azure.
لمزيد من المعلومات حول إدارة حركة المرور وحماية موارد Azure، راجع وثائق جدار حماية Azure.
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ