اعتبارات الربط الشبكي لـApp Service Environment

هام

تتناول هذه المقالة «بيئة خدمة التطبيقات v2» التي تُستخدم مع خطط خدمة التطبيقات المنفصلة. سيتم إيقاف الإصدار الثاني منApp Service Environment في 31 أغسطس 2024. يوجد إصدار جديد من App Service Environment يسهل استخدامه ويعمل ببنية أساسية أكثر قوة. لمعرفة المزيد عن الإصدار الجديد، ابدأ بمقدمة لبيئة App Service. في حالة كنت تستخدم App Service Environment v2 حاليًا، فيرجى اتباع الخطوات الواردة في هذه المقالة للترحيل إلى الإصدار الجديد.

اعتبارا من 29 يناير 2024، لم يعد بإمكانك إنشاء موارد App Service Environment v2 جديدة باستخدام أي من الطرق المتاحة بما في ذلك قوالب ARM/Bicep أو مدخل Azure أو Azure CLI أو REST API. يجب الترحيل إلى App Service Environment v3 قبل 31 أغسطس 2024 لمنع حذف الموارد وفقدان البيانات.

تُعدApp Service Environment عملية توزيع لـ Azure App Service في شبكة فرعية في شبكتك الظاهرية Azure. يوجد نوعان من أنواع التوزيع لـApp Service Environment:

  • خارجي: يعرض هذا النوع من التوزيع التطبيقات المستضافة باستخدام عنوان IP يمكن الوصول إليه على الإنترنت. للحصول علي المزيد من المعلومات، راجع إنشاء App Service Environment خارجية.
  • موازن التحميل الداخلي: يعرض هذا النوع من التوزيع التطبيقات المستضافة على عنوان IP داخل شبكتك الظاهرية. تعتبر نقطة النهاية الداخلية موازن تحميل داخلي. للحصول علي المزيد من المعلومات، راجع إنشاء واستخدام موازن التحميل الداخلي App Service Environment.

إشعار

تتناول هذه المقالة App Service Environment v2، والتي تُستخدم مع خطط خدمة التطبيقات المعزولة.

بغض النظر عن نوع التوزيع، تحتوي جميع بيئات خدمة التطبيقات على عنوان IP ظاهري عام (VIP). يُستخدم VIP لنسبة استخدام الشبكة الإدارية الواردة، وكعنوان عند إجراء مكالمات من App Service Environment إلى الإنترنت. تترك المكالمات الشبكة الظاهرية من خلال VIP المعين لـApp Service Environment.

في حال أجرت التطبيقات مكالمات إلى الموارد في شبكتك الظاهرية أو من خلال VPN، فإن IP المصدر هو أحد IPs في الشبكة الفرعية. نظرًا لأن App Service Environment داخل الشبكة الظاهرية، فيمكنها أيضًا الوصول إلى الموارد داخل الشبكة الظاهرية دون أي تكوين إضافي. في حالة كانت الشبكة الظاهرية متصلة بشبكتك الداخلية، فيمكن للتطبيقات أيضا الوصول إلى الموارد هناك دون تكوين إضافي.

Diagram that shows the elements of an external deployment. 

في حالة كان لديك App Service Environment مع توزيع خارجي، فيُعد VIP العام أيضا نقطة النهاية التي تحل تطبيقاتك لها لما يلي:

  • HTTP/S
  • FTP/S
  • التوزيع عن طريق شبكة الإنترنت العالمية
  • تصحيح الأخطاء عن بعد

Diagram that shows the elements of an internal load balancer deployment.

في حالة كان لديك App Service Environment مع توزيع موازن تحميل داخلي، فإن عنوان العنوان الداخلي يُعد نقطة النهاية لـHTTP/S وFTP/S والتوزيع عن طريق شبكة الإنترنت العالمية وتصحيح الأخطاء عن بعد.

حجم الشبكة الفرعية

بعد نشر App Service Environment، لا تستطيع تغيير حجم الشبكة الفرعية المستخدمة لاستضافتها. تستخدم App Service Environment عنوانًا لكل دور من أدوار البنية الأساسية، بالإضافة إلي كل مثيل خطة App Service معزول. إضافة إلى ذلك، تستخدم شبكة Azure خمسة عناوين لكل شبكة فرعية أُنشأت.

ستستخدم App Service Environment التي لا توجد بها App Service plans على الإطلاق 12 عنوانًا قبل إنشاء التطبيق. في حالة استخدمت توزيع موازن التحميل الداخلي، فسيستخدم 13 عنوانًا قبل إنشاء التطبيق. أثناء التوسع، كن على دراية بأن أدوار البنية الأساسية تُضاف في كل مضاعف لـ15 و20 من مثيلات App Service plan.

هام

لا يمكن أن يكون أي شيء آخر في الشبكة غير App Service Environment. تأكد من اختيار مساحة العنوان التي تسمح للنمو في المستقبل. لا يمكنك تغيير هذا الإعداد في وقت لاحق. نوصي بحجم يصل /24 إلى 256 عنوانًا.

عند زيادة الحجم أو تقليصه، تُضاف أدوار جديدة بالحجم المناسب، ثم تُرحل أحمال عملك من الحجم الحالي إلى الحجم المستهدف. لا تُزال الأجهزة الظاهرية الأصلية إلا بعد ترحيل أحمال العمل. على سبيل المثال، في حالة كان لديك App Service Environment تحتوي على 100 مثيل لخطة App Service، فيوجد فترة زمنية تحتاج فيها إلى مضاعفة عدد الأجهزة الظاهرية.

تبعيات واردة وصادرة

تغطي الأقسام التالية التبعيات التي يجب أن تكون على دراية بها لـApp Service Environment الخاصة بك. يناقش قسم آخر الإعدادات المتعلقة بـDNS.

تبعيات واردة

لكي تعمل App Service Environment فقط، يشترط فتح المنافذ التالية:

استخدام من إلى
الإدارة عناوين الإدارة الخاصة بـApp Service الشبكة الفرعية لـApp Service Environment: 454، 455
الاتصال الداخلي لـApp Service Environment الشبكة الفرعية لـApp Service Environment: 454، 455 الشبكة الفرعية لـApp Service Environment: 454، 455
السماح لموازنة تحميل Azure بالدخول موازنة تحميل Azure الشبكة الفرعية الخاصة بـEnvironment subnet: 16001

يمكن أن يظهر المنفذان 7564 و1221 على أنهما مفتوحان في فحص المنفذ. يردون بعنوان IP، ولا شيء أكثر من ذلك. يمكنك حظرهم في حال كنت ترغب في ذلك.

توفر نسبة استخدام الشبكة الإدارية الواردة القيادة والتحكم في App Service Environment، بالإضافة إلى مراقبة النظام. تُدرج عناوين مصدر البيانات لنسبة استخدام الشبكة هذه في عناوين إدارة App Service Environment. يحتاج تكوين أمان الشبكة إلى السماح بالوصول من عناوين إدارة App Service Environment على المنفذين 454 و455. في حالة حظرت الوصول من هذه العناوين، فستصبح App Service Environment لديك غير صحية ومن ثم تتوقف مؤقتاً. يجب أن تعود نسبة استخدام الشبكة TCP التي تأتي على المنفذين 454 و455 من نفس VIP، أو سيكون لديك مشكلة توجيه غير متماثلة.

يوجد داخل الشبكة الفرعية العديد من المنافذ المستخدمة للاتصال الداخلي للمكونات، ويمكن تغييرها. يتطلب هذا إمكانية الوصول إلى كافة المنافذ الموجودة في الشبكة الفرعية من الشبكة الفرعية.

للاتصال بين موازن تحميل Azure والشبكة الفرعية لـApp Service Environment، يكون الحد الأدنى للمنافذ التي تحتاج إلى فتح 454 و455 و16001. في حال كنت تستخدم توزيع موازن تحميل داخلي، فيمكنك تأمين نسبة استخدام الشبكة إلى منافذ 454 و455 و16001 فقط. في حال كنت تستخدم توزيعا خارجيا، فعليك مراعاة منافذ الوصول العادية للتطبيق. بِخاصةٍ، هذه هي:

استخدام منافذ
HTTP/HTTPS 80, 443
FTP/FTPS 21, 990, 10001-10020
Visual Studio المتعلق بتصحيح الأخطاء عن بعد 4020، 4022، 4024
خدمة التوزيع على الويب 8172

في حال حظرت منافذ التطبيق، فلا يزال بإمكان App Service Environment أن تعمل، ولكن ربما لا يعمل تطبيقك. في حال كنت تستخدم عناوين IP المعينة للتطبيق مع توزيع خارجي، فأنت بحاجة إلى السماح بنسبة استخدام الشبكة من عناوين IP المعينة لتطبيقاتك إلى الشبكة الفرعية. من مدخل App Service Environment، انتقل إلى عناوين IP، واطلع علي المنافذ التي تحتاج إلى السماح بنسبة استخدام الشبكة منها.

التبعيات الصادرة

للوصول الصادر، تعتمد App Service Environment على أنظمة خارجية متعددة. تُعرف العديد من تبعيات النظام هذه بأسماء DNS، كما أنها لا تُعين إلى مجموعة ثابتة من عناوين IP. وبالتالي، تتطلب App Service Environment الوصول الصادر من الشبكة الفرعية إلى كافة عناوين IP الخارجية، من خلال مجموعة متنوعة من المنافذ.

تتصل App Service Environment مع العناوين التي يمكن الوصول إليها عن طريق الإنترنت في المنافذ التالية:

الاستخدامات منافذ
DNS 53
NTP 123
CRL، تحديثات Windows، تبعيات Linux، بالإضافة إلي خدمات Azure 80/443
عنوان SQL لـ Azure 1433
مراقبة‬ 12000

تُدرج التبعيات الصادرة في تأمين App Service Environment. في حال فقدت App Service Environment الوصول إلى تبعياتها، فإنها تتوقف عن العمل. عند حدوث ذلك لفترة زمنية طويلة بما فيه الكفاية، يتوقف مؤقتا.

DNS الخاص بالعميل

في حال كُونت الشبكة الظاهرية باستخدام خادم DNS محدد من خلال العميل، فإن أحمال عمل المستأجر تستخدمه. تستخدم App Service Environment Azure DNS لأغراض الإدارة. في حال كُونت الشبكة الظاهرية باستخدام خادم DNS محدد من خلال العميل، يجب أن يكون خادم DNS قابلًا للوصول من الشبكة الفرعية.

إشعار

لا تتمكن عمليات تحميل التخزين أو صورة الحاوية التي تُسحب في App Service Environment v2 من استخدام DNS الذي يحدده العميل في الشبكة الظاهرية، أو من خلال WEBSITE_DNS_SERVER إعداد التطبيق.

لاختبار دقة DNS من خلال تطبيق الويب الخاص بك، بإمكانك استخدام أمر وحدة التحكم nameresolver. انتقل إلى نافذة تتبع الأخطاء في الموقع الخاص بك scm لتطبيقك، أو انتقل إلى التطبيق في المدخل وحدد وحدة التحكم. من موجه shell، يمكنك إصدار الأمر nameresolver، بالإضافة إلى اسم DNS الذي ترغب في البحث عنه. النتيجة التي تحصل عليها هي نفسها التي سيحصل عليها تطبيقك أثناء إجراء البحث نفسه. في حال كنت تستخدم nslookup، يمكنك إجراء بحث باستخدام Azure DNS بدلا من ذلك.

في حال غيرت إعداد DNS للشبكة الظاهرية التي توجد بها App Service Environment، فستحتاج إلى إعادة التشغيل. لتجنب إعادة التشغيل، من الجيد تكوين إعدادات DNS لشبكتك الظاهرية قبل إنشاء App Service Environment.

التبعيات الخاصة بالمدخل

بالإضافة إلى التبعيات الموضحة في الأقسام السابقة، يوجد بعض الاعتبارات الإضافية التي يجب أن تكون على دراية بها والمتعلقة بتجربة المدخل. تعتمد بعض الإمكانات الموجودة في مدخل Microsoft Azure على الوصول المباشر إلى موقع إدارة التحكم بالمصادر (SCM). يوجد لكل تطبيق في Azure App Service، عنوانان URL. يُعد العنوان الأول لـURL الوصول إلى تطبيقك. يُعد العنوان الثاني لـURL الوصول إلى موقع SCM، والذي يسمى أيضًا وحدة تحكم Kudu. تشمل الميزات التي تستخدم موقع SCM ما يلي:

  • مهام شبكة الإنترنت العالمية
  • الوظائف
  • دفق السجل
  • Kudu
  • ملحقات
  • مستكشف خاص بالعمليات
  • وحدة تحكم

عندما تستخدم موازن تحميل داخلي، لا يمكنك الوصول إلى موقع SCM من خارج الشبكة الظاهرية. لا تعمل بعض الإمكانات من مدخل التطبيق، وذلك لأنها تتطلب الوصول إلى موقع SCM الخاص بالتطبيق. يمكنك الاتصال بالموقع الخاص بـSCM مباشرةً، بدلاً من استخدام المدخل.

في حال كان موازن التحميل الداخلي الخاص بك اسم المجال contoso.appserviceenvironment.net، وكان اسم تطبيقك testapp، يتم الوصول إلى التطبيق في testapp.contoso.appserviceenvironment.net. يُوصل إلى موقع SCM المرفق به علىtestapp.scm.contoso.appserviceenvironment.net.

عناوين IP

تحتوي App Service Environment على بعض عناوين IP التي يجب أن تكون على دراية بها. وهي:

  • عنوان IP العام الوارد: يُستخدم لنسبة استخدام شبكة التطبيقات في التوزيع الخارجي وإدارة نسبة استخدام الشبكة في عمليات التوزيع الداخلية والخارجية على حدٍ سواء.
  • عنوان IP العام الصادر: يُستخدم كعنوان «من» IP للاتصالات الصادرة التي تغادر الشبكة الظاهرية. لا تُوجه هذه الاتصالات إلى VPN.
  • عنوان IP لموازن التحميل الداخلي: يوجد هذا العنوان فقط في عملية التوزيع الداخلية.
  • عناوين TLS/SSL المستندة إلى IP المعينة من التطبيق: تُعتبر هذه العناوين ممكنة فقط مع التوزيع الخارجي، وعند تكوين ربط TLS/SSL المستند إلى IP.

كافة عناوين IP هذه مرئية في مدخل Microsoft Azure من App Service Environment UI. في حال كان لديك توزيع داخلي، يُدرج IP لموازن التحميل الداخلي.

إشعار

لا تتغير عناوين IP هذه، ما دامت App Service Environment قيد التشغيل. في حال كانت App Service Environment الخاصة بك متوقفة مؤقتًا ثم اُستعيدت مرة أخري، فستتغير العناوين المستخدمة. السبب الطبيعي للتعليق هو إن حظرت الوصول إلى الإدارة الواردة، أو حظرت الوصول إلى التبعية.

عناوين IP المعينة من خلال التطبيق

باستخدام التوزيع الخارجي، يمكنك تعيين عناوين IP للتطبيقات الفردية. لا يمكنك فعل ذلك باستخدام التوزيع الداخلي. للحصول علي المزيد من المعلومات عن كيفية تكوين تطبيقك ليكون له عنوان IP الخاص به، راجع تأمين اسم DNS مخصص باستخدام ربط TLS/SSL في Azure App Service.

عندما يكون لأحد التطبيقات عنوان SSL الخاص به المستند إلى IP، تحتفظ App Service Environment بمنفذين لتعيينهما إلى عنوان IP هذا. أحد المنافذ مخصص لنسبة استخدام الشبكة HTTP، والمنفذ الآخر مخصص لـHTTPS. تُدرج المنافذ في قسم عناوين IP في مدخل App Service Environment. يشترط أن تكون نسبة استخدام الشبكة قادرة على الوصول إلى تلك المنافذ من VIP. خلاف ذلك، يتعذر الوصول إلى التطبيقات. من المهم أن تذكر هذا المطلب عند تكوين مجموعات أمان الشبكة (NSGs).

مجموعات أمان الشبكة

توفرNSGs القدرة على التحكم في الوصول إلى الشبكة داخل شبكة ظاهرية. عند استخدام المدخل، توجد قاعدة رفض ضمنية في أقل أولوية لرفض كل شيء. ما تُنشئه هو قواعد السماح الخاصة بك.

لا يمكنك الوصول إلى الأجهزة الظاهرية المستخدمة لاستضافة App Service Environment نفسها. إنهم مشتركون في اشتراك تديره Microsoft. في حال كنت ترغب في تقييد الوصول إلى التطبيقات، عين NSGs على الشبكة الفرعية. عند القيام بذلك، أولي اهتمامًا دقيقًا للتبعيات. في حال حظرت أي تبعيات، تتوقف App Service Environment عن العمل.

يمكنك تكوين NSGs من خلال مدخل Microsoft Azure أو من خلال PowerShell. تظهر المعلومات الواردة هنا مدخل Microsoft Azure. يمكنك إنشاء NSGs وإدارتها في المدخل كمورد من المستوى الأعلى ضمن Networking.

تعتبر الإدخالات المطلوبة في NSG هي السماح بنسبة استخدام الشبكة:

وارد

  • TCP من علامة خدمة IP AppServiceManagement على المنفذين 454, 455
  • TCP من موازن التحميل الموجود على المنفذ 16001
  • من الشبكة الفرعية App Service Environment إلى الشبكة الفرعية App Service Environment على كافة المنافذ

صادر

  • UDP لكافة عناوين IP الموجودة على المنفذ 53
  • UDP لجميع عناوين IP الموجودة على المنفذ 123
  • TCP لكافة عناوين IP الموجودة على المنفذ 80, 443
  • TCP لعلامة خدمة IP Sql على المنفذ 1433
  • TCP لكافة عناوين IP الموجودة على المنفذ 12000
  • للشبكة الفرعية App Service Environment الموجودة على كافة المنافذ

لا تشتمل هذه المنافذ على المنافذ التي تتطلبها تطبيقاتك للاستخدام الناجح. مثالًا على ذلك، افترض أن تطبيقك يحتاج إلى الاتصال بخادم MySQL الموجود على المنفذ 3306. يُعد بروتوكول وقت الشبكة (NTP) الموجود على المنفذ 123 بروتوكول مزامنة الوقت الذي يستخدمه نظام التشغيل. لا تقتصر نقاط نهاية NTP على App Service، ويمكن أن تختلف باختلاف نظام التشغيل ولا توجد في قائمة عناوين محددة جيدًا. لمنع مشكلات مزامنة الوقت، تحتاج بعد ذلك إلى السماح بنسبة استخدام الشبكة UDP إلى كافة العناوين الموجودة على المنفذ 123. نسبة استخدام الشبكة TCP الصادرة إلى المنفذ 12000 مخصصة لدعم النظام وتحليله. تعتبر نقاط النهاية ديناميكية وليست ضمن مجموعة عناوين محددة جيدًا.

منافذ الوصول الإعتيادية إلى التطبيق هي:

استخدام منافذ
HTTP/HTTPS 80, 443
FTP/FTPS 21, 990, 10001-10020
Visual Studio المتعلق بتصحيح الأخطاء عن بعد 4020، 4022، 4024
خدمة توزيع ويب 8172

تتيح القاعدة الافتراضية لعناوين IP في الشبكة الظاهرية التحدث إلى الشبكة الفرعية. تتيح قاعدة افتراضية أخرى لموازن التحميل، المعروف أيضًا باسم VIP العام، التواصل مع App Service Environment. للإطلاع علي القواعد الافتراضية، حدد القواعد الافتراضية (بجوار الأيقونة Add ).

في حال وضعت قاعدة رفض لكل شيء آخر قبل القواعد الافتراضية، فإنك تمنع نسبة استخدام الشبكة بين VIP وApp Service Environment. لمنع نسبة استخدام الشبكة القادمة من داخل الشبكة الظاهرية، أضف قاعدتك الخاصة للسماح بالواردة. عليك استخدام مصدر يساوي AzureLoadBalancer، مع وجهة أي ونطاق منفذ من *. نظرًا لتطبيق قاعدة NSG على الشبكة الفرعية، فلن تحتاج إلى أن تكون محددًا في الوجهة.

في حال عينت عنوان IP لتطبيقك، فتأكد من إبقاء المنافذ مفتوحة. للإطلاع على المنافذ، حددApp Service Environment>عناوين IP.  

بعد تحديد NSGs الخاصة بك، عينها إلي لشبكة الفرعية. في حال كنت لا تتذكر الشبكة الظاهرية أو الشبكة الفرعية، فيمكنك رؤيتها من خلال مدخل App Service Environment. لتعيين NSG إلى شبكتك الفرعية، انتقل إلى UI الشبكة الفرعية وحدد NSG.

مسارات

يحدثالتوجيه لأسفل الإلزامي عند تعيين مسارات في شبكتك الظاهرية حتى لا تنتقل نسبة استخدام الشبكة الصادرة مباشرة إلى الإنترنت. بدلا من ذلك، تنتقل نسبة استخدام الشبكة إلى مكان آخر، مثل بوابة Azure ExpressRoute أو إلي جهاز ظاهري. في حالة كنت بحاجة إلى تكوين App Service Environment الخاصة بك بهذه الطريقة، فراجع تكوين App Service Environment لديك من خلال التوجيه لأسفل الإلزامي.

عند إنشاء App Service Environment في المدخل، فإنك تنشئ تلقائيًا مجموعة من جداول التوجيه على الشبكة الفرعية. تقول هذه المسارات ببساطة لإرسال نسبة استخدام الشبكة الصادرة مباشرةً إلى الإنترنت.

لإنشاء المسارات نفسها يدويًا، اتبع الخطوات التالية:

  1. يمكنك الانتقال إلى مدخل Microsoft Azure، وتحديد Networking>Route Tables.

  2. أنشئ جدول توجيه جديدًا في نفس منطقة شبكتك الظاهرية.

  3. من داخل UI جدول التوجيه، حدد Routes>Add.

  4. عين نوع الوثبة التالية إلي الإنترنت، وبادئة العنوان إلى 0.0.0.0/0. حدد حفظ.

    ستري بعد ذلك شيئًا مشابهًا لما يلي:

    Screenshot that shows functional routes.

  5. عند الانتهاء من إنشاء جدول التوجيه الجديد، انتقل إلى الشبكة الفرعية. حدد جدول التوجيه الخاص بك من القائمة في المدخل. بعد حفظ التغيير، يجب أن تري NSGs والمسارات المدونة باستخدام شبكتك الفرعية.

    Screenshot that shows NSGs and routes.

نقاط نهاية الخدمة

تمكنك نقاط تقديم الخدمة من تقييد الوصول إلى خدمات المستأجرين المتعددين إلى مجموعة من شبكات Azure الافتراضية والشبكات الفرعية. للحصول علي المزيد من المعلومات، راجع نقاط نهاية خدمة الشبكة الظاهرية.

عند تمكين نقاط نهاية الخدمة على مورد ما، ستُنشأ مسارات بأولوية أعلى من جميع المسارات الأخرى. في حالة كنت تستخدم نقاط نهاية الخدمة على أي خدمة من خدمات Azure، مع بيئة خدمة التطبيقات المفروضة النفقية، فلن تُفرض توجيه نفقي لنسبة استخدام الشبكة إلى هذه الخدمات.

عند تمكين نقاط نهاية الخدمة على شبكة فرعية بمثيل Azure SQL، فيجب تمكين نقاط نهاية الخدمة في جميع مثيلات Azure SQL المتصلة من تلك الشبكة الفرعية. في حالة كنت ترغب في الوصول إلى مثيلات Azure SQL المتعددة من نفس الشبكة الفرعية، فلا يمكنك تمكين نقاط نهاية الخدمة في مثيل Azure SQL واحد دون مثيل آخر. لا تتصرف أي خدمة Azure أخرى مثل Azure SQL فيما يتعلق بنقاط نهاية الخدمة. عند تمكين نقاط نهاية الخدمة باستخدام Azure Storage، فإنك تُأمن الوصول إلى ذلك المورد من خلال شبكتك الفرعية. على الرغم من ذلك، لا يزال بإمكانك الوصول إلى حسابات Azure Storage الأخرى، حتى في حالة عدم تمكين نقاط نهاية الخدمة لديها.

Diagram that shows service endpoints.