هل يمكن لعميل VPN المتجول أن يستضيف خدمة للمكتب؟
لا يستطيع العميل المتجول خدمة أنظمة المكتب إلا عندما توجّه البوابة إليه، وتسمح سياسة المضيف بذلك، ويبقى الجهاز قابلاً للوصول مدة كافية.
يمكن لحاسوب المكتب المحمول أن يتصل من المنزل ويظل يقدّم شيئًا يحتاجه المكتب، لكن فقط عندما تتفق ثلاثة قرارات منفصلة. النفق هو النقل، والعنوان الداخلي هو الوجهة، والسياسة تحدد من يحق له الطرق. والتعامل مع أي واحد من هذه الثلاثة كأنه الجواب الكامل يُنتج الشكوى المألوفة: المضيف يرد على الارتباطات لكن التطبيق لا يتصل أبدًا. الأدوار ليست واحدة، والفرق هو بالضبط موضع عمل التصميم.
اتجاه الاتصال الصادر لا يقول شيئًا عن اتجاه الخدمة
عندما يبدأ العميل نفقًا، فإنه يفتح مسارًا يستطيع الاتجاهان استخدامه بمجرد وجوده. أما هل يجوز لاتصال جديد أن يدخل من المركز نحو ذلك العميل، فذلك سؤال سياسة على البوابة، وليس خاصية لمن قام بالاتصال. على مركز OpenVPN يعمل بالتوجيه، مثلًا، يحتاج الخادم إلى مسار إلى العنوان الداخلي للعميل وإلى تمرير يسمح بعلاقة النظير.
تخيّل نظام جرد يستطلع وكيلًا على حواسيب محمولة متجولة، أو مطورًا يحتاج واجهة برمجة اختبار من محطة عمل في المنزل. كلاهما يريد أن يبدأ جانب المكتب المحادثة، وهذا عكس النمط المعتاد من العميل إلى الخادم.
تختلف منتجات الوصول عن بعد المستضافة في هذه النقطة، والاختلاف ليس خللًا. بعض شبكات VPN المُدارة تحجب عمدًا الاتصالات غير المطلوبة نحو العملاء المتصلين، لأن نموذجها هو من العميل إلى المورد، لا من المورد إلى العميل. اقرأ البنية الموثقة للمنتج قبل أن تعد زميلًا بأن حاسوبه المحمول يمكن أن يعمل خادمًا.
اتبع مسار الرد قبل أن تفتح منفذًا
للمسار ثلاثة أجزاء: مسار على البوابة يشير إلى العنوان الداخلي للعميل، وسياسة تسمح للمتصل المحدد، وخدمة مُصغية على الهدف. كل جزء يفشل بطريقة مختلفة، ولهذا فإن عبارة «الـ VPN يعمل» لا تقول شيئًا تقريبًا.
الخبر الجيد أن المسار الداخلي لا يحتاج إلى تمرير منفذ على موجه العميل المنزلي. وهذا هو المقصود بنشر الخدمة على عنوان النفق بدلًا من عنوان WAN المنزلي، حيث يكون الانكشاف وقواعد NAT مختلفين تمامًا. وقد يرفض الموجه المنزلي أيضًا إعادة توصيل اتصال يأتي من المكتب، فيفشل مسار WAN لأسباب لا علاقة لها بالـ VPN. وإبقاء الحركة داخل النفق يتجنب المشكلتين معًا.
افحص جانب الهدف كذلك. الخدمة المرتبطة بـ 127.0.0.1 فقط لا تستطيع قبول اتصال يصل عبر واجهة النفق، مهما كانت مسارات البوابة صحيحة. كما أن قاعدة جدار حماية للمضيف تسمح بالمنفذ من الشبكة الفرعية المحلية فقط سترفض أيضًا حركة المكتب، وتلك القاعدة مستقلة عن سياسة الـ VPN فوقها.
الأسماء والعناوين قرارات تصميم
العنوان داخل النفق ليس اسمًا تلقائيًا. سجل DNS خاص تتحكم فيه أوضح من الأمل بأن يعبر بروتوكول اكتشاف النفق، لأن تحليل الأسماء بالبث المتعدد المحلي يبقى على المقطع المحلي ولا يصبح DNS عبر الشبكات الفرعية.
استقرار العنوان لا يقل أهمية. إذا سحب عملاء الـ VPN عناوينهم من مجموعة بمدة إيجار قصيرة، فإن العنوان الداخلي للحاسوب يتغير بين الجلسات، وكل إشارة مرجعية ونطاق جدار حماية وفحص مراقبة مبني عليه ينكسر بهدوء. استخدم حجزًا أو مسار تحديث ديناميكي موثقًا.
اتفق على الاسم مع من يملك هوية الـ VPN، حتى يتغير السجل وتعيين العنوان وسياسة الوصول معًا بدلًا من ثلاثة تذاكر منفصلة.
اختبر الخدمة، لا العضوية
من الهدف، تأكد مما يستمع وعلى أي عنوان، ثم تأكد من رؤية البوابة لمسار العودة:
$ ss -ltnp | grep 8080
LISTEN 0 128 10.80.0.23:8080 0.0.0.0:*
$ ip -4 addr show tun0 | grep inet
inet 10.80.0.23/24 scope global tun0
$ ip route get 10.80.0.1
10.80.0.1 dev tun0 src 10.80.0.23
اختبر الآن من جانب المكتب بطلب حقيقي بدلًا من صدى. نجاح curl ضد الخدمة يثبت المسار والسياسة والمستمع دفعة واحدة، بينما نجاح ping يثبت فقط أن ICMP مسموح. وإذا فشل الطلب، فارجع خطوة بخطوة عبر الأجزاء الثلاثة بدلًا من توسيع جدار الحماية والأمل.
التوافر ينتمي إلى المحادثة نفسها. الحاسوب المحمول ينام ويتجول بين الشبكات وينقطع في نهاية اليوم. والخدمة التي يجب أن تجيب في أي ساعة تنتمي إلى مضيف يعمل دائمًا، أما خدمة بأفضل جهد فيمكن أن تبقى على العميل مع تدوين هذا القيد.
انشر المورد عن قصد، باسم وقائمة متصلين مسموح لهم ومالك، فيصبح الجهاز البعيد خدمة مدعومة بدلًا من خادم عرضي.