استخدم ترجمة عناوين الشبكة المصدر (SNAT) للاتصالات الصادرة
تتطلب بعض السيناريوهات أجهزة ظاهرية أو مثيلات حوسبة للحصول على اتصال صادر بالإنترنت. يمكن استخدام عناوين IP الخاصة بالواجهة الأمامية لموازنة التحميل العام لتوفير اتصال صادر بالإنترنت للمثيلات الخلفية. يستخدم هذا التكوين ترجمة عنوان الشبكة المصدر (SNAT) لترجمة عنوان IP الخاص بالجهاز الظاهري إلى عنوان IP عام لموازنة التحميل. تقوم SNAT بتعيين عنوان IP للواجهة الخلفية إلى عنوان IP عام لموازن التحميل الخاص بك. تعمل SNAT على منع المصادر الخارجية من امتلاك عنوان مباشر إلى مثيلات الواجهات الخلفية.
طرق الاتصال الصادرة من Azure
يتم استخدام الأساليب التالية لتمكين الاتصال الصادر في Azure:
| # | الأسلوب | تخصيص نوع المنفذ | درجة الإنتاج؟ | التصنيف |
|---|---|---|---|---|
| 1 | استخدم عنوان (عناوين) IP الخاصة بالواجهة الأمامية لموازنة التحميل للخارج عبر القواعد الصادرة | ثابت وصريح | نعم، ولكن ليس على نطاق واسع | موافق |
| 2 | ربط بوابة NAT بالشبكة الفرعية | ديناميكية وصريحة | نعم | أفضل |
| 3 | تعيين عنوان IP عام إلى الجهاز الظاهري | ثابت وصريح | نعم | موافق |
| 4 | استخدام الوصول الصادر الافتراضي | ضمني | لا | الأسوأ |
1. استخدام عنوان IP الخاص بالواجهة الأمامية لموازنة التحميل للخارج عبر القواعد الصادرة
تمكّنك القواعد الصادرة من تحديد SNAT (ترجمة عنوان الشبكة المصدر) بشكل صريح لموازن التحميل العام القياسي لـ SKU. يسمح لك هذا التكوين باستخدام عنوان IP العام أو عنوان IP موازن التحميل الخاص بك للاتصال الصادر للمثيلات الخلفية.
يمكِّن هذا التكوين ما يلي:
تنكّر عنوان IP
تبسيط قوائم السماح
تقليل عدد موارد عناوين IP العامة التي يتم توزيعها
بفضل قواعد الاتصالات الصادرة، يتوفر لديك التحكم الإلزامي الكامل في الاتصال الصادرة بالإنترنت. تسمح لك القواعد الصادرة بتحجيم هذه القدرة وضبطها وفقاً لاحتياجاتك المحددة من خلال تخصيص المنفذ اليدوي. يمكن أن يساعد تخصيص منفذ SNAT يدوياً تبعاً لحجم تجمع الوجهة الخلفية وعدد من frontendIPConfigurations على تجنب استنفاد SNAT.
يمكنك تخصيص منافذ SNAT يدوياً إما بواسطة "منافذ لكل مثيل" أو "الحد الأقصى لعدد مثيلات الخلفية". إذا كانت لديك أجهزة ظاهرية في الواجهة الخلفية، فمن المستحسن تخصيص المنافذ بواسطة "منافذ لكل مثيل" للحصول على أقصى استخدام منفذ SNAT.
يجب حساب المنافذ لكل مثيل على النحو التالي:
عدد عناوين IP الجهة الأمامية × 64K / عدد مثيلات الخلفية
إذا كان لديك مجموعة Scale Sets للأجهزة الظاهرية في الوجهة الخلفية، فمن المستحسن تخصيص المنافذ بواسطة "الحد الأقصى لعدد المثيلات الخلفية". عند إضافة المزيد من الأجهزة الظاهرية إلى الواجهة الخلفية من منافذ SNAT المتبقية المسموح بها، فمن الممكن أن يتم حظر توسيع نطاق الجهاز الظاهري أو أن الأجهزة الظاهرية الجديدة لن تتسلم منافذ SNAT كافية.
لمزيد من المعلومات حول قواعد الاتصالات الصادرة، راجع قواعد الاتصالات الصادرة.
2. ربط بوابة NAT بالشبكة الفرعية
تعمل ترجمة عناوين الشبكة الافتراضية (NAT) على تبسيط الاتصال الصادر فقط بالإنترنت للشبكات الظاهرية. عند تكوينه على شبكة فرعية، يستخدم كل الاتصالات الصادرة عناوين IP العامة الثابتة المحددة. الاتصال الصادر ممكن من دون موازن التحميل أو عناوين IP العامة المرفقة مباشرةً بالأجهزة الظاهرية. تتميز NAT بسهولة إدارتها بشكل كامل ومرونتها العالية.
يُعد استخدام بوابة NAT هو أفضل طريقة للاتصالات الصادرة. تتميز بوابة NAT بقابلتيها الكبيرة للتوسعة وموثوقية الاعتماد عليها، وأنها على تحتوي على نفس مخاوف استنزاف المنفذ كما هو الحال مع SNAT.
لمزيد من المعلومات حول شبكات Azure Virtual Networks NAT، راجع ما هي Azure Virtual Network NAT.
3. تعيين عنوان IP عام إلى الجهاز الظاهري
| الارتباطات | الأسلوب | بروتوكولات IP |
|---|---|---|
| عنوان IP عام عبر NIC لجهاز ظاهري (VM) | لا يتم استخدام SNAT (ترجمة عنوان الشبكة المصدر). | TCP (بروتوكول التحكم بالإرسال) UDP (بروتوكول مخطط بيانات المستخدم) ICMP (بروتوكول رسالة التحكم بالإنترنت) ESP (تغليف حمولة الأمان) |
سوف تعود حركة البيانات إلى العميل الذي يطلبها من عنوان IP عام للجهاز الظاهري (IP لمستوى المثيل).
يستخدم Azure عنوان IP العام المعين لتكوين عنوان IP الخاص بـNIC للمثيل لجميع التدفقات الصادرة. يتوفّر لدى المثيل جميع المنافذ المؤقتة. لا يهم ما إذا كان الجهاز الظاهري متوازن الحمل أم لا. يُقدم العمل بهذا السيناريو على السيناريوهات الأخرى.
يكون عنوان IP العام المعيّن لجهاز ظاهري (VM) في علاقة 1:1 مباشرة (وليس 1:العديد) ويتم تنفيذها كاتصال 1:1 NAT عديم الحالة.
4. الوصول الصادر الافتراضي
ملاحظة
لا ينصح باتباع هذه الطريقة لأحمال عمل الإنتاج نظراً لما تضيفه من خطر استنزاف المنافذ. يُرجى عدم استخدام هذا الأسلوب لأحمال عمل الإنتاج لتجنب احتمالية فشل الاتصال.
أي مورد Azure ليس له عنوان IP عام مرتبط به أو ليس لديه موازنة تحميل مع قواعد صادرة أمامه، أو ليس جزءًا من مقياس الجهاز الظاهري يعيّن وضع التزامن المرن أو لا يحتوي على NAT يتم تخصيص مورد البوابة المرتبط بشبكته الفرعية لعدد أدنى من المنافذ للصادرات. يُعرَف هذا الوصول بالوصول الصادر الافتراضي، وهو أسوأ أسلوب لتوفير اتصال صادر لتطبيقاتك.
بعض الأمثلة الأخرى من الوصول الصادر الافتراضي هي:
- استخدام موازنة تحميل وحدة SKU أساسية
- جهاز ظاهري في Azure (دون الاقترانات المذكورة أعلاه). في هذه الحالة يتم توفير الاتصال الصادر بواسطة عنوان الـ IP الخاص بالوصول الصادر الافتراضي. يكون عنوان IP هذا هو عنوان IP ديناميكي يعينه Azure ولا يمكنك التحكم فيه. لا ينصح بـ SNAT الافتراضي لأحمال العمل الإنتاجية، ويمكن أن يسبب فشل الاتصال.
- الجهاز الافتراضي في تجمع الخلفية من موازنة تحميل دون القواعد الصادرة. ونتيجة لذلك، يمكنك استخدام عنوان IP الخلفية الأمامية لموازنة تحميل للصادر والوارد، وهي أكثر عرضة لفشل الاتصال من استنفاد منفذ SNAT.
ما هي منافذ SNAT؟
تُستخدم المنافذ لإنشاء معرفات فريدة تستخدم للحفاظ على تدفقات مميزة. الإنترنت يستخدم مجموعة خماسية لتوفير هذا التمييز.
عند استخدام منفذ للاتصالات الواردة، فإنه يحتوي على وحدة استماع لطلبات الاتصال الواردة على ذلك المنفذ. ولا يمكن استخدام هذا المنفذ للاتصالات الصادرة. لإنشاء اتصال صادر، يتم استخدام منفذ مؤقت لتزويد الوجهة بمنفذ للاتصال به والحفاظ على تدفق البيانات المميز. عند استخدام هذه المنافذ المؤقتة في SNAT، تُسمى منافذ SNAT.
وبحكم التعريف، يحتوي كل عنوان IP على 65,535 منفذاً. يمكن استخدام كل منفذ إما للاتصالات الواردة وإما الصادرة لبروتوكول التحكم بالإرسال (TCP) وبروتوكول مخطط بيانات المُستخدم (UDP). عند إضافة عنوان IP عام باعتباره عنوان IP الجهة الأمامية لموازن التحميل، يكون هناك 64,000 منفذ مؤهل لاستخدام SNAT. في حين يمكن تخصيص جميع عناوين IP العامة التي يتم إضافتها كعناوين IP للجهة الأمامية، يتم استهلاك عناوين IP للجهات الأمامية واحداً تلو الأخر. فعلى سبيل المثال، عند تخصيص 64,000 منفذ لكل مثيل من مثيلي الواجهة الخلفية، مع إمكانية الوصول إلى 64,000 من عناوين IP للجهة الأمامية، فسيستهلك كل مثيل للواجهة الخلفية المنافذ من عنوان IP الأمامي الأول حتى استنفاد 64,000 منفذ بالكامل.
يستهلك منفذ موازنة التحميل أو قاعدة NAT للاتصالات الواردة ثمانية منافذ من المنافذ 64,000. يسهم هذا الاستخدام في تخفيض عدد المنافذ المؤهلة لخدمة SNAT. إذا كانت قاعدة NAT لموازنة التحميل أو الاتصالات الواردة في نفس نطاق الثمانية مع غيرها، فلا تستخدم منافذ إضافية.
كيف يعمل SNAT الافتراضي؟
عندما ينشئ جهاز ظاهري (VM) تدفقاً صادراً، يقوم Azure بترجمة عنوان IP المصدر إلى عنوان IP مؤقت. تتم هذه الترجمة عن طريق SNAT.
إذا كان استخدام SNAT دون القواعد الصادرة عبر موازنة تحميل عمومية، يتم تخصيص منافذ SNAT مسبقاً كما هو موضح في جدول تخصيص منافذ SNAT الافتراضية أدناه.
جدول تخصيص المنافذ الافتراضية
يعرض الجدول التالي الإعدادات المسبقة لمنافذ SNAT لأحجام تجمعات الواجهة الخلفية:
| حجم التجمع (مثيلات الجهاز الظاهري VM) | منافذ SNAT الافتراضية لكل تكوين IP |
|---|---|
| 1-50 | 1,024 |
| 51-100 | 512 |
| 101-200 | 256 |
| 201-400 | 128 |
| 401-800 | 64 |
| 801-1,000 | 32 |
استهلاك المنافذ
سيستخدم كل اتصال بنفس عنوان IP الوجهة ومنفذ الوجهة أحد منافذ SNAT. يحافظ هذا الاتصال على تدفق نقل بيانات مميز من مثيل الجهة الخلفية أو العميل إلى خادم. تمنح هذه العملية للخادم منفذّا مميزاً يتم توجيه نقل البيانات إليه. دون هذه العملية، لا يكون جهاز العميل مدركاً لأي تدفق تكون حزمة البيانات جزءاً منه.
تخيل وجود متصفحات متعددة ذاهبة إلى https://www.microsoft.com ، والذي يكون:
عنوان IP الوجهة له = 23.53.254.142
منفذ الوجهة = 443
البروتوكول = TCP
دون توفير منافذ وجهة مختلفة لحركة تدفق البيانات الراجع (منفذ SNAT المستخدمة لتأسيس الاتصال)، لن يتوفر لدى العميل طريقة لفصل نتيجة استعلام عن أخر.
يمكن أن تندفع الاتصالات الصادرة بكثافة. ويمكن تخصيص عدد منافذ غير كافِ لمثيل الجهة الخلفية. استخدم وظيفة إعادة استخدام الاتصال داخل التطبيق الخاص بك. فدون إعادة استخدام الاتصال، يزداد خطر استنفاد منفذ SNAT.
لمزيد من المعلومات حول مجموعة الاتصال باستخدام Azure App Service، راجع استكشاف أخطاء الاتصال الصادرة المتقطعة وإصلاحها في خدمة Azure App Service
ستفشل الاتصالات الصادرة الجديدة إلى عنوان IP الوجهة عند استنفاد المنفذ. وتنجح الاتصالات عندما يصبح المنفذ متوفرا. يحدث هذا الاستنزاف عند نشر 64,000 منفذ لأحد عناوين IP بصورة رقيقة عبر العديد من مثيلات الوجهات الخلفية. للاطلاع على إرشادات تخفيف استنزاف منفذ SNAT، راجع دليل استكشاف الأخطاء وإصلاحها.
للاتصالات عبر بروتوكول TCP، سيستخدم موازن التحميل منفذ SNAT واحد لكل عنوان IP ومنفذ بالوجهة. يتيح هذا الاستخدام المتعدد إمكانية الاتصالات المتعددة إلى عنوان IP الوجهة نفسها مع ذات منفذ SNAT. يكون هذا الاستخدام المتعدد محدوداً، إذا لم يكن الاتصال يتم عبر منافذ وجهة مختلفة.
بالنسبة لاتصالات بروتوكول UDP، يستخدم موازن التحميل خوارزمية NAT بوقية مقيدة بالمنفذ، والتي تستهلك منفذ SNAT واحد لكل عنوان IP وجهة بصرف النظر عن المنفذ الوجهة.
يُعاد استخدام المنفذ لعدد محدد من الاتصالات. لا يُعاد استخدام المنفذ إلا في حال اختلاف عنوان IP الوجهة أو المنفذ.
القيود
عندما يكون الاتصال خاملاً مع عدم إرسال أي حزم جديدة، سيتم تحرير المنافذ بعد 4 - 120 دقيقة.
يمكن تكوين هذا الحد عبر قواعد الاتصالات الصادرة.
يوفر كل عنوان IP عدد 64,000 منفذ يمكن استخدامها مع SNAT.
يمكن استخدام كل منفذ لكل من اتصالات TCP وUDP إلى عنوان IP الوجهة
يلزم توفير منفذ UDP SNAT سواء كان منفذ الوجهة فريداً أم لا. يتم استخدام منفذ UDP SNAT واحد، لكل اتصال UDP إلى عنوان IP الوجهة.
يمكن استخدام منفذ TCP SNAT للاتصالات المتعددة إلى عنوان IP الوجهة نفسها شريطة أن تكون منافذ الوجهة مختلفة.
يحدث استنفاد منافذ SNAT عند تنفد منافذ SNAT المعينة لمثيل الوجهة الخلفية. يحتمل أن تظل هناك منافذ SNAT غير مستخدمة لدى موازن التحميل. إذا تجاوزت منافذ SNAT المستخدمة لدى مثيل الوجهة الخلفية منافذ SNAT المخصصة له، فلن تكون قادرة على تأسيس اتصالات صادرة جديدة.
سيتم إسقاط الحزم المجزأة ما لم تكن الاتصالات الصادرة مُرسلة من خلال عنوان IP عام على مستوى المثيل عبر بطاقة NIC للجهاز الظاهري VM.
لا توفر تكوينات عناوين IP الثانوية لواجهة الشبكة أي اتصال صادرة (ما لم يتم ربطها بعنوان IP عام) عبر موازنة التحميل.
الخطوات التالية
- استكشاف أخطاء فشل الاتصال الصادرة وإصلاحها بسبب استنفاد SNAT
- راجع مقاييس SNAT وتعرف على الطريقة الصحيحة لتصفية هذه المقاييس وتقسيمها وعرضها.
- التعرف على كيفية ترحيل أسلوب الاتصال الصادر الموجود إلى بوابة NAT