دمج تطبيقك مع شبكة Azure الافتراضية
توضح هذه المقالة ميزة تكامل الشبكة الظاهرية لخدمة Azure App Service وكيفية إعدادها باستخدام التطبيقات في App Service. باستخدام شبكات Azure الظاهرية، يمكنك وضع العديد من موارد Azure في شبكة غير قابلة للتوجيه عبر الإنترنت. تمكن ميزة تكامل الشبكة الظاهرية لخدمة التطبيقات تطبيقاتك من الوصول إلى الموارد الموجودة في شبكة افتراضية أو من خلالها. لا يمكن تكامل الشبكة الافتراضية من الوصول إلى تطبيقاتك بشكل خاص.
تحتوي خدمة التطبيقات على شكلين:
- مستويات تسعير الحوسبة المخصصة ، والتي تشمل الأساسية والقياسية Premium Premium v2 و Premium v3.
- بيئة خدمة التطبيق، التي يتم نشرها مباشرة في شبكتك الافتراضية مع بنية تحتية داعمة مخصصة وتستخدم مستويات تسعير v2 المعزولة والمعزولة.
يتم استخدام ميزة تكامل الشبكة الظاهرية في طبقات تسعير الحوسبة المخصصة لخدمة Azure App. إذا كان تطبيقك في بيئة خدمة تطبيق، فهو موجود بالفعل في شبكة افتراضية ولا يتطلب استخدام ميزة تكامل VNet للوصول إلى الموارد في الشبكة الافتراضية نفسها. لمزيد من المعلومات حول كافة ميزات الشبكة، راجع ميزات شبكة خدمة التطبيقات.
يتيح تكامل الشبكة الافتراضية لتطبيقك الوصول إلى الموارد الموجودة في شبكتك الافتراضية، ولكنه لا يمنح الوصول الخاص الوارد إلى تطبيقك من الشبكة الظاهرية. يشير الوصول إلى الموقع الخاص إلى جعل التطبيق متاحًا فقط من شبكة خاصة، مثل من داخل Azure virtual network. يتم استخدام تكامل الشبكة الافتراضية فقط لإجراء مكالمات صادرة من تطبيقك إلى شبكتك الافتراضية. تتصرف ميزة تكامل الشبكة الافتراضية بشكل مختلف عند استخدامها مع الشبكات الافتراضية في نفس المنطقة ومع الشبكات الافتراضية في مناطق أخرى. تحتوي ميزة تكامل الشبكة الظاهرية على شكلين:
- تكامل الشبكة الافتراضية الإقليمية: عند الاتصال بالشبكات الافتراضية في نفس المنطقة، يجب أن يكون لديك شبكة فرعية مخصصة في الشبكة الافتراضية التي تتكامل معها.
- تكامل الشبكة الظاهرية المطلوبة للبوابة: عند الاتصال مباشرة بالشبكات الظاهرية في مناطق أخرى أو بشبكة ظاهرية كلاسيكية في نفس المنطقة، تحتاج إلى بوابة شبكة Azure الظاهرية التي تم إنشاؤها في الشبكة الظاهرية الهدف.
ميزة تكامل الشبكة الافتراضية:
- يتطلب طبقة تسعير أساسية أو قياسية أو Premium أو Premium v2 أو Premium v3 أو Elastic Premium App Service مدعومة.
- يدعم TCP و UDP.
- يعمل مع تطبيقات خدمة التطبيقات وتطبيقات الوظائف.
هناك بعض الأشياء التي لا يدعمها تكامل الشبكة الافتراضية، مثل:
- تركيب محرك أقراص.
- Windows تكامل Active Directory للخادم.
- NetBIOS.
يوفر تكامل الشبكة الافتراضية المطلوب من البوابة الوصول إلى الموارد فقط في الشبكة الظاهرية المستهدفة أو في الشبكات المتصلة بالشبكة الافتراضية المستهدفة مع نظير أو VPNs. لا يمكن تكامل الشبكة الظاهرية المطلوب من البوابة الوصول إلى الموارد المتوفرة عبر اتصالات Azure ExpressRoute أو العمل مع نقاط نهاية الخدمة.
بغض النظر عن الإصدار المستخدم، يمنح تكامل الشبكة الافتراضية تطبيقك إمكانية الوصول إلى الموارد الموجودة في شبكتك الافتراضية، ولكنه لا يمنح الوصول الخاص الوارد إلى تطبيقك من الشبكة الافتراضية. يشير الوصول إلى الموقع الخاص إلى جعل تطبيقك قابلا للوصول إليه فقط من شبكة خاصة، مثل من داخل شبكة Azure الظاهرية. تكامل الشبكة الافتراضية هو فقط لإجراء المكالمات الصادرة من تطبيقك إلى شبكتك الافتراضية.
تعرف على كيفية تمكين تكامل الشبكة الظاهرية.
تكامل الشبكة الظاهرية الإقليمي
يدعم تكامل الشبكة الافتراضية الإقليمية الاتصال بشبكة افتراضية في نفس المنطقة ولا يتطلب بوابة. يتيح استخدام تكامل الشبكة الافتراضية الإقليمية لتطبيقك الوصول إلى:
- الموارد في الشبكة الافتراضية التي تم دمجها معك.
- الموارد الموجودة في الشبكات الافتراضية النظيرة للشبكة الافتراضية التي تم دمج تطبيقك معها بما في ذلك اتصالات الأقران العالمية.
- الموارد عبر اتصالات Azure ExpressRoute.
- خدمات مؤمنة بنقطة نهاية الخدمة.
- الخدمات الخاصة التي تدعم نقطة النهاية.
عند استخدام تكامل الشبكة الظاهرية الإقليمية، يمكنك استخدام ميزات شبكة Azure التالية:
- مجموعات أمان الشبكة (NSGs) : يمكنك حظر حركة المرور الصادرة باستخدام مجموعة أمان الشبكة الموضوعة على الشبكة الفرعية للتكامل. لا تنطبق القواعد الواردة لأنه لا يمكنك استخدام تكامل الشبكة الظاهرية لتوفير الوصول الوارد إلى تطبيقك.
- جداول التوجيه (UDRs) : يمكنك وضع جدول توجيه على الشبكة الفرعية للتكامل لإرسال حركة المرور الصادرة حيثما تريد.
كيفية عمل تكامل الشبكة الافتراضية الإقليمية
تتم استضافة التطبيقات في App Service على أدوار العاملين. يعمل تكامل الشبكة الظاهرية الإقليمية عن طريق تركيب واجهات افتراضية لأدوار العمال مع عناوين في الشبكة الفرعية المفوضة. نظرا لأن العنوان من موجود في شبكتك الافتراضية ، يمكنه الوصول إلى معظم الأشياء في شبكتك الافتراضية أو من خلالها مثل VM في شبكتك الافتراضية. يختلف تنفيذ الشبكة عن تشغيل جهاز ظاهري في شبكتك الظاهرية. لهذا السبب لا تتوفر بعض ميزات الشبكات بعد لهذه الميزة.
عند تمكين تكامل الشبكة الافتراضية الإقليمية، يجري تطبيقك مكالمات صادرة من خلال شبكتك الافتراضية. العناوين الصادرة المدرجة في مدخل خصائص التطبيق هي العناوين التي لا يزال تطبيقك يستخدمها. ومع ذلك، إذا كانت مكالمتك الصادرة إلى جهاز ظاهري أو نقطة نهاية خاصة في الشبكة الظاهرية للتكامل أو الشبكة الظاهرية النظيرة، فسيكون العنوان الصادر عنوانا من الشبكة الفرعية للتكامل. يتم الكشف عن عنوان IP الخاص المعين لمثيل عبر متغير البيئة WEBSITE_PRIVATE_IP.
عند تمكين كل توجيه حركة المرور، يتم إرسال كل حركة المرور الصادرة إلى شبكتك الظاهرية. إذا لم يتم تمكين كل توجيه حركة المرور، إرسال حركة المرور الخاصة فقط (RFC1918) ونقاط نهاية الخدمة التي تم تكوينها على الشبكة الفرعية للتكامل إلى الشبكة الافتراضية وستمر حركة المرور الصادرة إلى الإنترنت عبر نفس القنوات المعتادة.
تدعم الميزة واجهة افتراضية واحدة فقط لكل عامل. واجهة افتراضية واحدة لكل عامل تعني تكامل شبكة افتراضية إقليمية واحدة لكل خطة خدمة التطبيق. يمكن لجميع التطبيقات الموجودة في نفس خطة خدمة التطبيقات استخدام نفس تكامل الشبكة الافتراضية إلى شبكة فرعية معينة فقط. إذا كنت بحاجة إلى تطبيق للاتصال بشبكة افتراضية أخرى أو شبكة فرعية أخرى في نفس الشبكة الظاهرية، فستحتاج إلى إنشاء خطة خدمة تطبيقات أخرى. الواجهة الافتراضية المستخدمة ليست موردا يمكن للعملاء الوصول إليه مباشرة.
نظرا لطبيعة كيفية عمل هذه التقنية، لا تظهر حركة المرور المستخدمة مع تكامل الشبكة الظاهرية في سجلات تدفق Azure Network Watcher أو NSG.
متطلبات الشبكة الفرعية
يعتمد تكامل الشبكة الافتراضية على شبكة فرعية مخصصة. عند إنشاء شبكة فرعية، تفقد الشبكة الفرعية Azure خمسة عناوين IP من البداية. يتم استخدام عنوان واحد من الشبكة الفرعية للتكامل لكل مثيل خطة. إذا قمت بتوسيع نطاق تطبيقك إلى أربعة مثيلات، استخدام أربعة عناوين.
عند زيادة الحجم أو تقليله، تتم مضاعفة مساحة العنوان المطلوبة لفترة قصيرة من الوقت. يؤثر هذا التغيير على المثيلات المدعومة الحقيقية والمتوفرة لحجم شبكة فرعية معين. يوضح الجدول التالي كلا من الحد الأقصى للعناوين المتاحة لكل كتلة CIDR وتأثير ذلك على النطاق الأفقي.
| حجم كتلة CIDR | الحد الأقصى للعناوين المتاحة | الحد الأقصى للمقياس الأفقي (المثيلات)* |
|---|---|---|
| /28 | 11 | 5 |
| /27 | 27 | 13 |
| /26 | 59 | 29 |
*يفترض أنك ستحتاج إلى زيادة الحجم أو تقليله في أي حجم أو SKU في مرحلة ما.
نظرا لأنه لا يمكن تغيير حجم الشبكة الفرعية بعد التعيين، استخدم شبكة فرعية كبيرة بما يكفي لاستيعاب أي مقياس قد يصل إليه تطبيقك. لتجنب أي مشاكل تتعلق بسعة الشبكة الفرعية، استخدم a مع 64 عنوانا /26 . عند إنشاء شبكات فرعية في مدخل Azure كجزء من التكامل مع الشبكة الظاهرية، يلزم حد أدنى للحجم /27.
عندما تريد أن تصل تطبيقاتك في خطتك إلى شبكة افتراضية متصلة بالفعل بالتطبيقات في خطة أخرى، حدد شبكة فرعية مختلفة عن الشبكة التي يستخدمها تكامل الشبكة الظاهرية الموجود مسبقا.
الأذونات
يجب أن يكون لديك على الأقل أذونات التحكم في الوصول المستندة إلى الدور التالية على الشبكة الفرعية أو على مستوى أعلى لتكوين تكامل الشبكة الظاهرية الإقليمية من خلال مدخل Azure أو CLI أو عند تعيين virtualNetworkSubnetId خاصية الموقع مباشرة:
| إجراء | الوصف |
|---|---|
| Microsoft.Network/virtualNetworks/read | اقرأ تعريف الشبكة الظاهرية |
| Microsoft.Network/virtualNetworks/subnets/read | اقرأ تعريف الشبكة الفرعية الظاهرية |
| Microsoft.Network/virtualNetworks/subnets/join/action | ينضم إلى شبكة افتراضية |
إذا كانت الشبكة الظاهرية في اشتراك مختلف عن التطبيق، فيجب عليك التأكد من تسجيل الاشتراك مع الشبكة الظاهرية لموفر موارد Microsoft.Web. يمكنك تسجيل الموفر بشكل صريح باتباع هذه الوثائق، ولكن سيتم تسجيله تلقائيا عند إنشاء أول تطبيق ويب في اشتراك.
مسارات
يمكنك التحكم في حركة المرور التي تمر عبر تكامل الشبكة الافتراضية. هناك ثلاثة أنواع من التوجيه يجب مراعاتها عند تكوين تكامل الشبكة الظاهرية الإقليمية. يحدد توجيه التطبيق حركة المرور التي يتم توجيهها من تطبيقك إلى الشبكة الظاهرية. يؤثر توجيه التكوين على العمليات التي تحدث قبل بدء تشغيل تطبيقك أو أثناءه. ومن الأمثلة على ذلك سحب صورة الحاوية وإعدادات التطبيق مع مرجع Key Vault. توجيه الشبكة هو القدرة على التعامل مع كيفية توجيه كل من حركة مرور التطبيق والتكوين من شبكتك الافتراضية وخارجها.
بشكل افتراضي، يتم توجيه حركة المرور الخاصة فقط (المعروفة أيضا باسم حركة مرور RFC1918 ) المرسلة من تطبيقك من خلال تكامل الشبكة الظاهرية. ما لم تقم بتكوين خيارات توجيه التطبيق أو توجيه التكوين، لن يتم إرسال جميع حركة المرور الأخرى من خلال تكامل الشبكة الظاهرية. تخضع حركة المرور لتوجيه الشبكة فقط إذا تم إرسالها من خلال تكامل الشبكة الافتراضية.
توجيه التطبيق
ينطبق توجيه التطبيق على حركة المرور التي يتم إرسالها من تطبيقك بعد بدء تشغيلها. راجع توجيه التكوين لحركة المرور أثناء بدء التشغيل. عند تكوين توجيه التطبيق، يمكنك إما توجيه كل حركة المرور أو حركة المرور الخاصة فقط إلى شبكتك الظاهرية. يمكنك تكوين هذا السلوك من خلال إعداد مسار الكل . إذا تم تعطيل Route All ، فلن يقوم تطبيقك إلا بتوجيه الزيارات الخاصة إلى شبكتك الافتراضية. إذا كنت تريد توجيه كل زيارات التطبيقات الصادرة إلى شبكتك الظاهرية ، فتأكد من تمكين Route All.
ملاحظة
- تخضع حركة المرور التي تم تكوينها في توجيه التطبيق أو التكوين فقط ل NSGs و UDRs التي يتم تطبيقها على الشبكة الفرعية للتكامل.
- عند تمكين Route All ، يستمر إرسال الزيارات الصادرة من تطبيقك من العناوين المدرجة في مواقع التطبيق، ما لم توفر مسارات توجه حركة المرور إلى مكان آخر.
- يتعذر على تكامل الشبكة الظاهرية الإقليمية استخدام المنفذ 25.
تعرف على كيفية تكوين توجيه التطبيق.
نوصي باستخدام إعداد تكوين مسار الكل لتمكين توجيه كل حركة المرور. يتيح لك استخدام إعداد التكوين تدقيق السلوك باستخدام نهج مضمن. لا يزال من الممكن استخدام إعداد التطبيق الحالي WEBSITE_VNET_ROUTE_ALL ، ويمكنك تمكين كل توجيه حركة المرور باستخدام أي من الإعدادين.
توجيه التكوين
عند استخدام تكامل الشبكة الظاهرية، يمكنك تكوين كيفية إدارة أجزاء من حركة مرور التكوين. بشكل افتراضي ، ستمر حركة مرور التكوين مباشرة عبر المسار العام ، ولكن بالنسبة للمكونات الفردية المذكورة ، يمكنك تكوينها بنشاط ليتم توجيهها من خلال تكامل الشبكة الافتراضية.
ملاحظة
- لا تدعم حاويات Windows توجيه مراجع App Service Key Vault أو سحب صور الحاويات المخصصة عبر تكامل الشبكة الظاهرية.
- النسخ الاحتياطي/الاستعادة إلى حسابات التخزين الخاصة غير مدعوم حاليا.
- تكوين شهادات SSL/TLS من خزائن المفاتيح الخاصة غير مدعوم حاليا.
- سجلات التشخيص إلى حسابات التخزين الخاصة غير مدعومة حاليا.
تخزين المحتوى
جلب مساحة التخزين الخاصة بك للمحتوى في كثير من الأحيان المستخدمة في الوظائف حيث يتم تكوين تخزين المحتوى كجزء من تطبيق الوظائف.
لتوجيه حركة مرور تخزين المحتوى من خلال تكامل الشبكة الظاهرية ، تحتاج إلى إضافة إعداد تطبيق باسم WEBSITE_CONTENTOVERVNET القيمة 1. بالإضافة إلى إضافة إعداد التطبيق، يجب عليك أيضا التأكد من أن أي جدار حماية أو مجموعة أمان الشبكة التي تم تكوينها على حركة المرور من الشبكة الفرعية تسمح لحركة المرور بمنفذ 443 و445.
سحب صورة الحاوية
عند استخدام حاويات مخصصة لنظام التشغيل Linux، يمكنك سحب الحاوية عبر تكامل الشبكة الظاهرية. لتوجيه حركة مرور سحب الحاوية من خلال تكامل الشبكة الظاهرية ، يجب عليك إضافة إعداد تطبيق باسم WEBSITE_PULL_IMAGE_OVER_VNET القيمة true.
إعدادات التطبيق باستخدام مراجع Key Vault
ستحاول إعدادات التطبيق باستخدام مراجع Key Vault الحصول على أسرار عبر الطريق العام. إذا كان Key Vault يمنع حركة المرور العامة وكان التطبيق يستخدم تكامل الشبكة الافتراضية ، إجراء محاولة للحصول على الأسرار من خلال تكامل الشبكة الافتراضية.
توجيه الشبكة
يمكنك استخدام جداول التوجيه لتوجيه نسبة استخدام الشبكة الصادرة من تطبيقك إلى أي مكان تريده. تؤثر جداول المسارات على حركة المرور إلى وجهتك. تنطبق جداول المسارات فقط على حركة المرور الموجهة من خلال تكامل الشبكة الظاهرية. راجع توجيه التطبيق وتوجيهالتكوين للحصول على التفاصيل. يمكن أن تتضمن الوجهات الشائعة أجهزة جدار الحماية أو البوابات. لن تؤثر التوجيهات التي تم تعيينها على الشبكة الفرعية للتكامل على الردود على طلبات التطبيقات الواردة.
عندما تريد توجيه حركة المرور الصادرة محليا، يمكنك استخدام جدول مسارات لإرسال حركة المرور الصادرة إلى بوابة Azure ExpressRoute. إذا قمت بتوجيه حركة المرور إلى بوابة، فقم بتعيين المسارات في الشبكة الخارجية لإرسال أي ردود مرة أخرى.
تؤثر مسارات بروتوكول بوابة الحدود (BGP) أيضا على نسبة استخدام الشبكة للتطبيق. إذا كان لديك مسارات BGP من شيء مثل بوابة ExpressRoute، فإن نسبة استخدام الشبكة الصادرة للتطبيق تتأثر. على غرار المسارات المعرفة من قبل المستخدم، تؤثر مسارات BGP على حركة المرور وفقا لإعداد نطاق التوجيه.
مجموعات أمان الشبكة
يمكن للتطبيق الذي يستخدم تكامل الشبكة الظاهرية استخدام مجموعة أمان الشبكة لحظر حركة المرور الصادرة إلى الموارد الموجودة في شبكتك الافتراضية أو الإنترنت. لحظر حركة المرور إلى العناوين العامة، قم بتمكين مسار الكل. عند عدم تمكين Route All ، يتم تطبيق NSGs فقط على حركة مرور RFC1918 من تطبيقك.
NSG الذي يتم تطبيقه على الشبكة الفرعية للتكامل الخاص بك ساري المفعول بغض النظر عن أي جداول مسارات مطبقة على الشبكة الفرعية للتكامل.
لا تنطبق القواعد الواردة في NSG على تطبيقك لأن تكامل الشبكة الافتراضية يؤثر فقط على حركة المرور الصادرة من تطبيقك. للتحكم في نسبة استخدام الشبكة الواردة إلى التطبيق، استخدم ميزة قيود الوصول.
نقاط نهاية الخدمة
يمكنك تكامل الشبكة الظاهرية الإقليمية من الوصول إلى خدمات Azure الآمنة باستخدام نقاط نهاية الخدمة. للوصول إلى خدمة مؤمنة بنقطة نهاية خدمة، اتبع الخطوات التالية:
- قم بتكوين تكامل الشبكة الظاهرية الإقليمية مع تطبيق الويب الخاص بك للاتصال بشبكة فرعية محددة للتكامل.
- انتقل إلى الخدمة الوجهة وتكوين نقاط تقديم الخدمة مقابل الشبكة الفرعية للتكامل.
نقاط النهاية الخاصة
إذا كنت ترغب في إجراء مكالمات إلى نقاط نهاية خاصة، فتأكد من حل عمليات البحث عن DNS إلى نقطة النهاية الخاصة. يمكنك فرض هذا السلوك بإحدى الطرق التالية:
- التكامل مع مناطق Azure DNS الخاصة. عندما لا تحتوي شبكتك الافتراضية على خادم DNS مخصص، يتم التكامل تلقائيا عندما تكون المناطق مرتبطة بالشبكة الظاهرية.
- قم بإدارة نقطة النهاية الخاصة في خادم DNS المستخدمة من قبل تطبيقك. لإدارة التكوين، يجب أن تعرف عنوان IP الخاص بنقطة النهاية. ثم أشر إلى نقطة النهاية التي تحاول الوصول إليها إلى هذا العنوان باستخدام سجل A.
- تكوين خادم DNS الخاص بك لإعادة توجيه إلى مناطق خاصة DNS Azure.
مناطق Azure DNS الخاصة
بعد تكامل تطبيقك مع شبكتك الظاهرية، فإنه يستخدم خادم DNS نفسه الذي تم تكوين شبكتك الظاهرية به. إذا لم يتم تحديد DNS مخصص، فإنه يستخدم Azure DNS الافتراضي وأي مناطق خاصة مرتبطة بالشبكة الظاهرية.
التقييدات
هناك بعض القيود على استخدام تكامل الشبكة الافتراضية الإقليمية:
- تتوفر الميزة من جميع عمليات نشر App Service في الإصدار 2 من Premium والإصدار Premium v3. وهي متوفرة أيضا في الطبقة الأساسية والقياسية ولكن فقط من عمليات نشر خدمة التطبيقات الأحدث. إذا كنت تستخدم عملية نشر قديمة، فيمكنك فقط استخدام الميزة من خطة خدمة تطبيقات v2 Premium. إذا كنت تريد التأكد من أنه يمكنك استخدام الميزة في خطة خدمة التطبيقات الأساسية أو القياسية، فقم بإنشاء تطبيقك في خطة خدمة تطبيقات v3 Premium. يتم دعم هذه الخطط فقط في أحدث عمليات النشر لدينا. يمكنك تقليص حجمك إذا أردت بعد إنشاء الخطة.
- لا يمكن استخدام الميزة من قبل تطبيقات الخطة المعزولة الموجودة في بيئة App Service.
- لا يمكنك الوصول إلى الموارد عبر اتصالات الأقران مع الشبكات الافتراضية الكلاسيكية.
- تتطلب الميزة شبكة فرعية غير مستخدمة عبارة عن كتلة IPv4
/28أو أكبر في شبكة Azure Resource Manager الظاهرية. - يجب أن يكون التطبيق والشبكة الافتراضية في نفس المنطقة.
- لا يمكن أن تحتوي الشبكة الظاهرية للتكامل على مساحات عناوين IPv6 محددة.
- لا يمكن تمكين نهج نقطة نهاية الخدمة في الشبكة الفرعية للتكامل.
- يمكن استخدام الشبكة الفرعية للتكامل بواسطة خطة App Service واحدة فقط.
- لا يمكنك حذف شبكة افتراضية باستخدام تطبيق مدمج. قم بإزالة التكامل قبل حذف الشبكة الظاهرية.
- يمكنك الحصول على تكامل شبكة افتراضية إقليمية واحدة فقط لكل خطة خدمة التطبيق. يمكن لتطبيقات متعددة في نفس خطة خدمة التطبيقات استخدام نفس الشبكة الافتراضية.
- لا يمكنك تغيير اشتراك تطبيق أو خطة أثناء وجود تطبيق يستخدم تكامل الشبكة الافتراضية الإقليمية.
تكامل الشبكة الظاهرية المطلوب من البوابة
يدعم تكامل الشبكة الظاهرية المطلوب من البوابة الاتصال بشبكة افتراضية في منطقة أخرى أو بشبكة افتراضية كلاسيكية. تكامل الشبكة الافتراضية المطلوبة من البوابة:
- تمكين التطبيق من الاتصال بشبكة افتراضية واحدة فقط في كل مرة.
- تمكين ما يصل إلى خمس شبكات افتراضية ليتم دمجها ضمن خطة خدمة التطبيقات.
- يسمح باستخدام نفس الشبكة الافتراضية بواسطة تطبيقات متعددة في خطة خدمة التطبيقات دون التأثير على العدد الإجمالي الذي يمكن استخدامه بواسطة خطة خدمة التطبيق. إذا كان لديك ستة تطبيقات تستخدم نفس الشبكة الظاهرية في نفس خطة خدمة التطبيقات، احتساب ذلك كشبكة افتراضية واحدة قيد الاستخدام.
- يمكن أن تؤثر اتفاقية مستوى الخدمة على البوابة على اتفاقية مستوى الخدمة بشكل عام.
- تمكين تطبيقاتك من استخدام DNS الذي تم تكوين الشبكة الظاهرية به.
- يتطلب بوابة قائمة على مسار الشبكة الافتراضية تم تكوينها باستخدام SSTP من نقطة إلى موقع VPN قبل أن تتمكن من الاتصال بتطبيق.
لا يمكنك استخدام تكامل الشبكة الظاهرية المطلوب من البوابة:
- مع شبكة افتراضية متصلة ب ExpressRoute.
- من تطبيق لينكس.
- من حاوية Windows.
- للوصول إلى الموارد المؤمنة بنقطة نهاية الخدمة.
- لحل مشكلة الإعدادات التطبيق التي تشير إلى Key Vault محمي بالشبكة.
- مع بوابة التعايش التي تدعم كل من ExpressRoute والشبكات الافتراضية الخاصة من نقطة إلى موقع أو من موقع إلى موقع.
إعداد بوابة في شبكة Azure الظاهرية
لإنشاء بوابة:
قم بإنشاء بوابة VPN والشبكة الفرعية. حدد نوع VPN يستند إلى المسار.
قم بتعيين عناوين الإشارة إلى الموقع. إذا لم تكن البوابة في وحدة SKU الأساسية، فيجب تعطيل IKEV2 في تكوين الإشارة إلى الموقع ويجب تحديد SSTP. يجب أن تكون مساحة عنوان نقطة إلى موقع في كتل عناوين RFC 1918 10.0.0.0/8 و 172.16.0.0/12 و 192.168.0.0/16.
إذا قمت بإنشاء البوابة لاستخدامها مع تكامل الشبكة الظاهرية المطلوب من البوابة، فلن تحتاج إلى تحميل شهادة. قد يستغرق إنشاء البوابة 30 دقيقة. لن تتمكن من دمج تطبيقك مع شبكتك الافتراضية حتى يتم إنشاء البوابة.
كيفية عمل تكامل الشبكة الظاهرية المطلوب من البوابة
تم بناء تكامل الشبكة الافتراضية المطلوب من البوابة على رأس تقنية VPN من نقطة إلى موقع. تحد الشبكات الافتراضية الخاصة من نقطة إلى موقع من الوصول إلى الشبكة إلى الجهاز الظاهري الذي يستضيف التطبيق. تقتصر التطبيقات على إرسال حركة المرور إلى الإنترنت فقط من خلال الاتصالات المختلطة أو من خلال تكامل الشبكة الافتراضية. عندما يتم تكوين تطبيقك مع البوابة الإلكترونية لاستخدام تكامل الشبكة الظاهرية المطلوب من البوابة، تتم إدارة مفاوضات معقدة نيابة عنك لإنشاء الشهادات وتعيينها على البوابة وجانب التطبيق. والنتيجة هي أن العمال المستخدمين لاستضافة تطبيقاتك يمكنهم الاتصال مباشرة ببوابة الشبكة الافتراضية في الشبكة الافتراضية المحددة.
الوصول إلى الموارد المحلية
يمكن للتطبيقات الوصول إلى الموارد المحلية من خلال التكامل مع الشبكات الافتراضية التي تحتوي على اتصالات من موقع إلى موقع. إذا كنت تستخدم تكامل الشبكة الافتراضية المطلوب من البوابة، فقم بتحديث مسارات بوابة VPN المحلية باستخدام كتل عناوين من نقطة إلى موقع. عند إعداد VPN من موقع إلى موقع لأول مرة، يجب أن تقوم البرامج النصية المستخدمة لتكوينه بإعداد المسارات بشكل صحيح. إذا أضفت عناوين من نقطة إلى موقع بعد إنشاء VPN من موقع إلى موقع، فستحتاج إلى تحديث المسارات يدويا. تختلف التفاصيل حول كيفية القيام بذلك حسب البوابة ولا يتم وصفها هنا. لا يمكنك تكوين BGP باستخدام اتصال VPN من موقع إلى موقع.
لا يلزم تكوين إضافي لميزة تكامل الشبكة الظاهرية الإقليمية للوصول من خلال شبكتك الافتراضية إلى الموارد المحلية. تحتاج ببساطة إلى توصيل شبكتك الافتراضية بالموارد المحلية باستخدام ExpressRoute أو VPN من موقع إلى موقع.
ملاحظة
لا تقوم ميزة تكامل الشبكة الظاهرية المطلوبة من البوابة بدمج تطبيق مع شبكة افتراضية تحتوي على بوابة ExpressRoute. حتى إذا تم تكوين بوابة ExpressRoute في وضع التعايش، فلن يعمل تكامل الشبكة الظاهرية. إذا كنت بحاجة إلى الوصول إلى الموارد من خلال اتصال ExpressRoute، فاستخدم ميزة تكامل الشبكة الظاهرية الإقليمية أو بيئة خدمة التطبيق، التي تعمل في شبكتك الظاهرية.
التناظر
إذا كنت تستخدم النظير مع تكامل الشبكة الظاهرية الإقليمية، فلن تحتاج إلى إجراء المزيد من التكوين.
إذا كنت تستخدم تكامل الشبكة الظاهرية المطلوب من البوابة مع النظير، فستحتاج إلى تكوين بعض العناصر الأخرى. لتكوين النظير للعمل مع تطبيقك:
- أضف اتصال نظير على الشبكة الافتراضية التي يتصل بها تطبيقك. عند إضافة اتصال النظراء، قم بتمكين السماح بالوصول إلى الشبكة الظاهرية وحدد السماح بحركة المرور المعاد توجيههاوالسماح بنقل البوابة.
- أضف اتصال نظير على الشبكة الظاهرية التي يتم إقرانها بالشبكة الافتراضية التي تتصل بها. عند إضافة اتصال نظير على الشبكة الظاهرية الوجهة، قم بتمكين السماح بالوصول إلى الشبكة الظاهرية وحدد السماح بحركة المرور المعاد توجيههاوالسماح بالبوابات البعيدة.
- انتقل إلى خطة> خدمة التطبيقNetworkingVNet>التكامل في البوابة الإلكترونية. حدد الشبكة الافتراضية التي يتصل بها تطبيقك. ضمن قسم التوجيه، أضف نطاق عناوين الشبكة الظاهرية التي يتم نظيرها بالشبكة الافتراضية المتصلة بتطبيقك.
إدارة تكامل الشبكة الافتراضية
يكون الاتصال بشبكة افتراضية وقطع الاتصال بها على مستوى التطبيق. العمليات التي يمكن أن تؤثر على تكامل الشبكة الافتراضية عبر تطبيقات متعددة هي على مستوى خطة خدمة التطبيقات. من بوابة تكامل NetworkingVNet> الخاصة بالتطبيق>، يمكنك الحصول على تفاصيل حول شبكتك الافتراضية. يمكنك الاطلاع على معلومات مشابهة على مستوى خطة خدمة التطبيق في مدخل تكامل App ServiceplanNetworkingVNet>>.
العملية الوحيدة التي يمكنك اتخاذها في طريقة عرض التطبيق لمثيل تكامل الشبكة الظاهرية هي فصل تطبيقك عن الشبكة الافتراضية المتصلة به حاليا. لفصل تطبيقك عن شبكة ظاهرية، حدد قطع الاتصال. تتم إعادة تشغيل تطبيقك عند قطع الاتصال بشبكة ظاهرية. لا يؤدي قطع الاتصال إلى تغيير شبكتك الافتراضية. لا تتم إزالة الشبكة الفرعية أو البوابة. إذا كنت تريد بعد ذلك حذف شبكتك الظاهرية، فقم أولا بفصل تطبيقك عن الشبكة الافتراضية واحذف الموارد الموجودة فيه، مثل البوابات.
تعرض لك واجهة مستخدم تكامل الشبكة الافتراضية لخطة خدمة التطبيقات جميع عمليات تكامل الشبكة الافتراضية التي تستخدمها التطبيقات في خطة خدمة التطبيقات. للاطلاع على تفاصيل حول كل شبكة افتراضية، حدد الشبكة الافتراضية التي تهتم بها. هناك إجراءان يمكنك تنفيذهما هنا لتكامل الشبكة الافتراضية المطلوبة من البوابة:
- مزامنة الشبكة: يتم استخدام عملية مزامنة الشبكة فقط لميزة تكامل الشبكة الظاهرية المطلوبة للبوابة. يضمن إجراء عملية مزامنة الشبكة مزامنة الشهادات ومعلومات الشبكة. إذا قمت بإضافة DNS الخاص بشبكتك الظاهرية أو تغييره، فقم بإجراء عملية مزامنة للشبكة. تقوم هذه العملية بإعادة تشغيل أية تطبيقات تستخدم هذه الشبكة الظاهرية. لن تعمل هذه العملية إذا كنت تستخدم تطبيقا وشبكة افتراضية تنتمي إلى اشتراكات مختلفة.
- إضافة مسارات: تؤدي إضافة مسارات إلى زيادة عدد الزيارات الصادرة إلى شبكتك الافتراضية.
يتم الكشف عن عنوان IP الخاص المعين للمثيل عبر متغير البيئة WEBSITE_PRIVATE_IP. تعرض واجهة مستخدم وحدة تحكم Kudu أيضا قائمة متغيرات البيئة المتاحة لتطبيق الويب. يتم تعيين عنوان IP هذا من نطاق عناوين الشبكة الفرعية المتكاملة. بالنسبة لتكامل الشبكة الظاهرية الإقليمية، تكون قيمة WEBSITE_PRIVATE_IP هي عنوان IP من نطاق عناوين الشبكة الفرعية المفوضة. بالنسبة لتكامل الشبكة الظاهرية المطلوب من البوابة، تكون القيمة عبارة عن عنوان IP من نطاق عناوين تجمع عناوين من نقطة إلى موقع تم تكوينه على بوابة الشبكة الظاهرية. سيتم استخدام عنوان IP هذا بواسطة تطبيق الويب للاتصال بالموارد من خلال شبكة Azure الظاهرية.
ملاحظة
لا بد أن تتغير قيمة WEBSITE_PRIVATE_IP. ومع ذلك ، سيكون عنوان IP ضمن نطاق عناوين الشبكة الفرعية للتكامل أو نطاق عنوان نقطة إلى موقع ، لذلك ستحتاج إلى السماح بالوصول من نطاق العناوين بأكمله.
توجيه تكامل الشبكة الظاهرية المطلوب من البوابة
يتم استخدام المسارات المحددة في شبكتك الافتراضية لتوجيه حركة المرور إلى شبكتك الافتراضية من تطبيقك. لإرسال المزيد من حركة المرور الصادرة إلى الشبكة الظاهرية، أضف كتل العناوين هذه هنا. تعمل هذه الإمكانية فقط مع تكامل الشبكة الظاهرية المطلوب من البوابة. لا تؤثر جداول المسارات على حركة مرور تطبيقك عند استخدام تكامل الشبكة الظاهرية المطلوب من البوابة بالطريقة التي تستخدمها مع تكامل الشبكة الظاهرية الإقليمية.
شهادات تكامل الشبكة الظاهرية المطلوبة من البوابة
عند تمكين تكامل الشبكة الظاهرية المطلوب من البوابة، يكون هناك تبادل مطلوب للشهادات لضمان أمان الاتصال. جنبا إلى جنب مع الشهادات هي تكوين DNS ، والمسارات ، وغيرها من الأشياء المماثلة التي تصف الشبكة.
إذا تم تغيير الشهادات أو معلومات الشبكة، فحدد مزامنة الشبكة. عند تحديد مزامنة الشبكة، فإنك تتسبب في انقطاع الاتصال لفترة وجيزة بين تطبيقك وشبكتك الظاهرية. لا تتم إعادة تشغيل تطبيقك، ولكن قد يؤدي فقدان الاتصال إلى عدم عمل موقعك بشكل صحيح.
تفاصيل التسعير
لا تحتوي ميزة تكامل الشبكة الافتراضية الإقليمية على أي رسوم إضافية للاستخدام بخلاف رسوم طبقة تسعير خطة خدمة التطبيقات.
ترتبط ثلاث رسوم باستخدام ميزة تكامل الشبكة الافتراضية المطلوبة من البوابة:
- رسوم طبقة تسعير خطة خدمة التطبيقات: يجب أن تكون تطبيقاتك ضمن خطة خدمة تطبيقات أساسية أو قياسية أو Premium أو Premium v2 أو Premium v3. لمزيد من المعلومات حول هذه التكاليف، راجع تسعير خدمة التطبيق.
- تكاليف نقل البيانات: هناك رسوم على خروج البيانات ، حتى لو كانت الشبكة الافتراضية في نفس مركز البيانات. يتم وصف هذه الرسوم في تفاصيل تسعير نقل البيانات.
- تكاليف بوابة VPN: هناك تكلفة لبوابة الشبكة الافتراضية مطلوبة لشبكة VPN من نقطة إلى موقع. لمزيد من المعلومات، راجع تسعير بوابة VPN.
استكشاف الأخطاء وإصلاحها
ملاحظة
تكامل الشبكة الظاهرية غير مدعوم لسيناريوهات إنشاء Docker في App Service. يتم تجاهل قيود الوصول في حالة وجود نقطة نهاية خاصة.
الميزة سهلة الإعداد ، ولكن هذا لا يعني أن تجربتك ستكون خالية من المشاكل. إذا واجهت مشكلات في الوصول إلى نقطة النهاية المطلوبة، فهناك بعض الأدوات المساعدة التي يمكنك استخدامها لاختبار الاتصال من وحدة تحكم التطبيق. هناك وحدتا تحكم يمكنك استخدامهما. أحدهما هو وحدة تحكم Kudu ، والآخر هو وحدة التحكم في مدخل Azure. للوصول إلى وحدة تحكم Kudu من تطبيقك، انتقل إلى ToolsKudu>. يمكنك أيضا الوصول إلى وحدة تحكم Kudo على [sitename].scm.azurewebsites.net. بعد تحميل موقع الويب، انتقل إلى علامة التبويب وحدة تحكم تصحيح الأخطاء. للوصول إلى وحدة التحكم التي تستضيفها بوابة Azure الإلكترونية من تطبيقك، انتقل إلى ToolsConsole>.
الأدوات
في تطبيقات Windows الأصلية، لن تعمل الأدوات pingوnslookupوtracert من خلال وحدة التحكم بسبب قيود الأمان (تعمل في حاويات Windows مخصصة). لملء الفراغ ، تتم إضافة أداتين منفصلتين. لاختبار وظائف DNS ، أضفنا أداة تسمى nameresolver.exe. يتشكل بناء الجملة من:
nameresolver.exe hostname [optional: DNS Server]
يمكنك استخدام nameresolver للتحقق من أسماء المضيفين التي يعتمد عليها تطبيقك. بهذه الطريقة يمكنك اختبار ما إذا كان لديك أي شيء تم تكوينه بشكل خاطئ مع DNS الخاص بك أو ربما لا يمكنك الوصول إلى خادم DNS الخاص بك. يمكنك رؤية خادم DNS الذي يستخدمه تطبيقك في وحدة التحكم من خلال النظر إلى المتغيرات البيئية WEBSITE_DNS_SERVER WEBSITE_DNS_ALT_SERVER.
ملاحظة
لا تعمل أداة nameresolver.exe حاليا في حاويات Windows مخصصة.
يمكنك استخدام الأداة التالية لاختبار اتصال TCP بمجموعة مضيف ومنفذ. تسمى هذه الأداة tcpping وبناء الجملة هو:
tcpping.exe hostname [optional: port]
تخبرك الأداة المساعدة tcpping ما إذا كان يمكنك الوصول إلى مضيف ومنفذ معينين. لا يمكن أن يظهر النجاح إلا إذا كان هناك تطبيق يستمع إلى مجموعة المضيف والمنفذ ، وكان هناك وصول إلى الشبكة من تطبيقك إلى المضيف والمنفذ المحددين.
تصحيح الوصول إلى الموارد المستضافة على الشبكة الظاهرية
يمكن لعدد من الأشياء أن تمنع تطبيقك من الوصول إلى مضيف ومنفذ محددين. في معظم الأحيان ، يكون أحد هذه الأشياء:
- جدار حماية في الطريق. إذا كان لديك جدار حماية في الطريق، يمكنك الضغط على مهلة TCP. مهلة TCP هي 21 ثانية في هذه الحالة. استخدم أداة tcpping لاختبار الاتصال. يمكن أن تحدث مهلات TCP بسبب العديد من الأشياء خارج جدران الحماية ، ولكن ابدأ من هناك.
- لا يمكن الوصول إلى DNS. مهلة DNS هي 3 ثوان لكل خادم DNS. إذا كان لديك خادمان لنظام أسماء النطاقات، فستكون المهلة 6 ثوان. استخدم nameresolver لمعرفة ما إذا كان DNS يعمل. لا يمكنك استخدام nslookup ، لأن ذلك لا يستخدم DNS الذي تم تكوين شبكتك الظاهرية به. إذا تعذر الوصول إليها ، فقد يكون لديك جدار حماية أو NSG يمنع الوصول إلى DNS أو قد يكون معطلا.
إذا لم تجب هذه العناصر على مشاكلك، فابحث أولا عن أشياء مثل:
تكامل الشبكة الظاهرية الإقليمي
- هل وجهتك عنوان غير RFC1918 وليس لديك مسار كل ممكن؟
- هل هناك NSG منع الخروج من الشبكة الفرعية التكامل الخاص بك؟
- إذا كنت تمر عبر Azure ExpressRoute أو VPN، فهل تم تكوين بوابتك المحلية لتوجيه حركة المرور مرة أخرى إلى Azure؟ إذا كان بإمكانك الوصول إلى نقاط النهاية في شبكتك الافتراضية ولكن ليس محليا، فتحقق من مساراتك.
- هل لديك أذونات كافية لتعيين التفويض على الشبكة الفرعية للتكامل؟ أثناء تكوين تكامل الشبكة الظاهرية الإقليمية، يتم تفويض الشبكة الفرعية للتكامل إلى Microsoft.Web/serverFarms. تقوم واجهة مستخدم تكامل VNet بتفويض الشبكة الفرعية إلى Microsoft.Web/serverFarms تلقائيا. إذا لم يكن لدى حسابك أذونات شبكة كافية لتعيين التفويض، فستحتاج إلى شخص يمكنه تعيين السمات على الشبكة الفرعية للتكامل لتفويض الشبكة الفرعية. لتفويض الشبكة الفرعية للتكامل يدويا، انتقل إلى واجهة مستخدم الشبكة الفرعية لشبكة Azure الظاهرية وقم بتعيين التفويض ل Microsoft.Web/serverFarms.
تكامل الشبكة الظاهرية المطلوب من البوابة
- هل نطاق العنوان من نقطة إلى موقع في نطاقات RFC 1918 (10.0.0.0-10.255.255.255 / 172.16.0.0-172.31.255.255 / 192.168.0.0-192.168.255.255)؟
- هل تظهر البوابة على أنها موجودة في البوابة؟ إذا كانت البوابة معطلة، فقم بإعادتها مرة أخرى.
- هل تظهر الشهادات على أنها متزامنة، أم أنك تشك في أنه تم تغيير تكوين الشبكة؟ إذا كانت شهاداتك غير متزامنة أو كنت تشك في إجراء تغيير على تكوين الشبكة الظاهرية الذي لم تتم مزامنته مع مزودي خدمات الإنترنت، فحدد مزامنة الشبكة.
- إذا كنت تمر عبر VPN، فهل تم تكوين البوابة المحلية لتوجيه حركة المرور مرة أخرى إلى Azure؟ إذا كان بإمكانك الوصول إلى نقاط النهاية في شبكتك الافتراضية ولكن ليس محليا، فتحقق من مساراتك.
- هل تحاول استخدام بوابة تعايش تدعم كل من الإشارة إلى الموقع و ExpressRoute؟ بوابات التعايش غير مدعومة بتكامل الشبكة الافتراضية.
يمثل تصحيح مشكلات الشبكات تحديا لأنه لا يمكنك رؤية ما الذي يمنع الوصول إلى مجموعة معينة من host:port. تتضمن بعض الأسباب ما يلي:
- لديك جدار حماية على المضيف يمنع الوصول إلى منفذ التطبيق من نطاق IP من نقطة إلى موقع. غالبا ما يتطلب عبور الشبكات الفرعية الوصول العام.
- مضيفك المستهدف معطل.
- طلبك معطل.
- كان لديك عنوان IP أو اسم مضيف خاطئ.
- التطبيق الخاص بك يستمع على منفذ مختلف عما كنت تتوقع. يمكنك مطابقة معرف العملية الخاص بك مع منفذ الاستماع باستخدام "netstat -aon" على مضيف نقطة النهاية.
- يتم تكوين مجموعات أمان الشبكة بطريقة تمنع الوصول إلى مضيف التطبيق والمنفذ من نطاق IP من نقطة إلى موقع.
أنت لا تعرف العنوان الذي يستخدمه تطبيقك بالفعل. قد يكون أي عنوان في الشبكة الفرعية للتكامل أو نطاق عناوين من نقطة إلى موقع، لذلك تحتاج إلى السماح بالوصول من نطاق العناوين بأكمله.
تتضمن المزيد من خطوات التصحيح ما يلي:
الاتصال إلى جهاز ظاهري في شبكتك الافتراضية وحاول الوصول إلى مضيف المورد الخاص بك: المنفذ من هناك. لاختبار الوصول إلى TCP، استخدم الأمر PowerShell test-netconnection. يتشكل بناء الجملة من:
test-netconnection hostname [optional: -Port]إظهار تطبيق على جهاز ظاهري واختبار الوصول إلى هذا المضيف والمنفذ من وحدة التحكم من تطبيقك باستخدام tcpping.
الموارد المحلية
إذا تعذر على تطبيقك الوصول إلى مورد محلي، فتحقق مما إذا كان يمكنك الوصول إلى المورد من شبكتك الظاهرية. استخدم الأمر PowerShell الخاص ب test-netconnection للتحقق من وصول TCP. إذا تعذر على جهازك الظاهري الوصول إلى موردك المحلي، فقد لا يتم تكوين اتصال VPN أو ExpressRoute بشكل صحيح.
إذا كان بإمكان الجهاز الظاهري المستضاف على الشبكة الافتراضية الوصول إلى نظامك المحلي ولكن تطبيقك لا يمكنه الوصول إليه، فمن المحتمل أن يكون السبب أحد الأسباب التالية:
- لا يتم تكوين مساراتك باستخدام نطاقات عناوين الشبكة الفرعية أو من نقطة إلى موقع في البوابة المحلية.
- تقوم مجموعات أمان الشبكة بحظر الوصول إلى نطاق IP من نقطة إلى موقع.
- تعمل جدران الحماية المحلية على حظر حركة المرور من نطاق IP من نقطة إلى موقع.
- تحاول الوصول إلى عنوان غير RFC 1918 باستخدام ميزة تكامل الشبكة الظاهرية الإقليمية.
حذف خطة خدمة التطبيق أو تطبيق الويب قبل قطع اتصال تكامل VNet
إذا قمت بحذف تطبيق الويب أو خطة خدمة التطبيق دون فصل تكامل VNet أولا، فلن تتمكن من إجراء أي عمليات تحديث/حذف على الشبكة الظاهرية أو الشبكة الفرعية التي تم استخدامها للتكامل مع المورد المحذوف. سيظل تفويض الشبكة الفرعية "Microsoft.Web/serverFarms" معينا إلى شبكتك الفرعية وسيمنع عمليات التحديث/الحذف.
للقيام بتحديث / حذف الشبكة الفرعية أو الشبكة الافتراضية مرة أخرى ، تحتاج إلى إعادة إنشاء تكامل VNet ثم فصله:
- أعد إنشاء خطة خدمة التطبيقات وتطبيق الويب (من الضروري استخدام نفس اسم تطبيق الويب تماما كما كان من قبل).
- انتقل إلى شفرة "الشبكات" على تطبيق الويب وقم بتكوين تكامل VNet.
- بعد تكوين تكامل VNet ، حدد الزر "قطع الاتصال".
- احذف خطة خدمة التطبيق أو تطبيق الويب.
- تحديث/حذف الشبكة الفرعية أو الشبكة الظاهرية.
إذا كنت لا تزال تواجه مشكلات في تكامل VNet بعد اتباع الخطوات المذكورة أعلاه، فيرجى الاتصال بدعم Microsoft.