نقطتان طرفيتان خلف NAT الخاصة بمزوّد الخدمة وراوتر مكتب مُقيَّد لا يتركان أي منفذ وارد لإعادة توجيهه، والغريزة هي طلب منفذ رغم ذلك. السؤال الأفضل هو أي طرف يستطيع الاتصال للخارج وأي خدمة قابلة للوصول يُسمح لها بحمل حركة المرور. تصفّح أربعة تصاميم هذا السؤال بطرق مختلفة، وتفشل بطرق مختلفة حين يُحجب المسار. والاختيار بينها مقارنةٌ للضمانات لا لأسماء البروتوكولات.

أربعة تصاميم وأربعة وعود مختلفة

الجدول أدناه هو النسخة المختصرة. اقرأ العمود الأوسط بوصفه الوعد الذي يمكنك اختباره، والعمود الأيمن بوصفه الوعد الذي لم يقطعه أحد.

DesignWho initiatesPromise you getPromise you do not get
Routed VPN hubBoth ends, outbound to the hubA routed path to permitted prefixesAccess to services no policy allows
Peer traversal with ICEBoth peers to a rendezvous serviceA path tested between the two peersA direct path through every NAT
TURN relayClient outbound to a relayTransport that survives symmetric NATPeer discovery or a usable directory
Application brokerWorkstation outbound to a brokerOne audited application sessionSubnet-wide reachability

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

المركز يغيّر من يتصل للخارج لا ما هو مسموح

في تصميم المركز الموجّه يفتح الحاسوب المحمول البعيد ومحطة العمل، أو بوابة الموقع أمامها، كلٌّ منهما نفقاً صادراً إلى خدمة يستطيع كلاهما الوصول إليها. لا شيء يقبل اتصالاً غير مطلوب عند راوتر محطة العمل، وهذا بالضبط سبب نجاة هذا التصميم من NAT واستمرار عمله حين لا يكون للموقع عنوان ثابت. ثم يوجّه المركز حركة المرور بين العنوانين الداخليين وفق سياسته.

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

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

الاجتياز يعمل فقط عندما يطبّقه كلا المكدسين

اجتياز الأقران قدرة نظام محدد، لا إعداد يحسّن شبكة VPN. تجمع Interactive Connectivity Establishment عدة عناوين مرشحة وتختبر الأزواج حتى يعمل أحدها: مرشحات المضيف على الواجهات المحلية، ومرشحات الانعكاس الخادمي المبنية مما يكشفه NAT، ومرشحات مُرحَّلة تُخصَّص على مُرحِّل. والعنوان الخاص وحده ليس مساراً، لأن الطرف الآخر لا يستطيع التوجيه إليه.

الحالة المُرحَّلة تستحق الفهم قبل رفضها. RFC 8656 يصف TURN بوصفه بروتوكولاً يطلب فيه العميل من خادم عنوان نقل مُرحَّلاً، ويقوم الخادم بتمرير حركة المرور بين ذلك العميل وأقرانه. لذا يحمل المُرحِّل البيانات، وهذا مختلف جوهرياً عن دليل يساعد الأطراف على اللقاء فقط. وتبادل عنوان المُرحِّل مع القريب خطوة تنسيق يجب أن ينفذها التطبيق.

ما لا يمكنك وعده هو مسار مباشر. فـ NAT المتماثل وبعض جدران الحماية المؤسسية تُبطل ثقب الفتحات، وحين يحدث ذلك إمّا يتراجع النظام إلى مُرحِّل أو يفشل. وما لا يمكنك استنتاجه أيضاً أن طرفين مُترجمين لا يمكن أن يتحدثا أبداً؛ فوجود مكدس مدعوم مع بديل مُرحَّل سببه بالضبط أنهما كثيراً ما يستطيعان. قرر هل الأولوية للإتاحة أم للمباشرة، ثم تحقق من المسار الذي اختاره النشر فعلاً بدل افتراض الحالة المثالية.

الوسيط أضيق من الشبكة

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

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

قارن حدود الثقة ثم اختبر المسار

المركز الذي ينهي الأنفاق يستطيع قراءة الحركة التي يوجّهها. وقد يحمل المُرحِّل تبادلاً محمياً بشكل مستقل حين يشفّر التطبيق من الطرف إلى الطرف، أما الوسيط فينهي عادةً الجلسة التي يقدمها. حدّد أين تنتهي الحماية فعلاً قبل أن تقرر أن تصميمين متكافئان لأنهما مشفّران.

ثم افحص ما يستطيع جهاز العمل الوصول إليه فعلاً في الاتجاه الصادر، لأن كل تصميم أعلاه يعتمد عليه. نفّذ هذا على جهاز العمل مع استبدال اسم المضيف الذي تنوي استخدامه.

ss -lntup
nc -vz hub.example.com 443
curl -sS -o /dev/null -w "%{http_code}\n" https://hub.example.com

لا تقبل التصميم إلا بعد أن تنجح العملية البعيدة المقصودة بالهوية المسموح بها، وتُرفض هوية غير معتمدة، ويُعرف السلوك عند تعذّر المسار المباشر أو المُرحَّل ويُوثّق. أدرج إعادة الاتصال وسياق بدء التشغيل الطبيعي لجهاز العمل، لأن جلسة بدأت في المكتب عبر الشبكة المحلية لا تختبر شيئاً يعتمد عليه الوصول البعيد.

مقالات ذات صلة