شبكتا VPN على هاتف واحد: اختر الترتيب لا عدد التطبيقات
التبديل وفصل الملفات الشخصية والسلسلة المتداخلة ثلاثة تصاميم مختلفة. اختر بحسب ما يحتاجه التطبيق في اللحظة نفسها، ثم تحقّق من MTU والمسار.
استخدام شبكتي VPN ليس طلبًا واحدًا. قد يعني الوصول إلى مؤسستين الواحدة بعد الأخرى، أو فصل تطبيقات العمل عن التطبيقات الشخصية، أو تشغيل نفق داخل نفق آخر. يتعامل Android مع هذه الحالات الثلاث بطرق مختلفة تمامًا، وعدد تطبيقات VPN المثبّتة على الهاتف ليس هو البنية. السؤال الذي يفصل بينها بسيط: هل يجب أن يوجد مسارَان في اللحظة نفسها للتطبيق نفسه؟
ثلاثة ترتيبات، سؤال واحد
إذا كان الجواب لا، لأن الشبكتين تُستخدمان في أوقات مختلفة، فأنت تريد تبديلًا مقصودًا. إذا كان الجواب لا لأن التطبيقات نفسها منفصلة، فأنت تريد فصل الملفات الشخصية، حيث يقع كل تطبيق في السياق الذي يملك نفقَه. وإذا كان الجواب نعم، ويجب أن يحمل أحد المسارين الآخر فعليًا، فأنت تريد سلسلة، وهي الوحيدة من الثلاثة التي يكون فيها الترتيب جزءًا من التصميم.
كل ما عدا ذلك يتبع هذا الاختيار. للتبديل نافذة انتقال، وللفصل حدّ سياسي، وللسلسلة كلفة إضافية وكلفة اعتماد. اختيار الخيار الخطأ لا يفشل بشكل نظيف؛ بل ينتج هاتفًا يبدو متصلًا وتطبيقًا لا يستطيع الوصول إلى أي شيء.
التبديل داخل سياق مستخدم واحد
يسمح Android بخدمة VPN نشطة واحدة لكل مستخدم. تشغيل تطبيق VPN ثانٍ في السياق نفسه يستبدل الأول أو يُرفض رفضًا قاطعًا؛ وهو لا يجمع مجموعتي المسارات أبدًا، وبالتأكيد لا يكدّس تشفيرهما. داخل المستخدم الواحد، النفقان تسلسل لا مجموع.
هذا عملي عندما يكون الوصول متتاليًا فعلًا. سمِّ الملفات الشخصية بحيث يكون النشط واضحًا، وأنهِ أي شيء حساس قبل التبديل، وتوقّع نافذة قصيرة لا يكون فيها أي من المسارين مكتمل الإنشاء. إغلاق تبويب في المتصفح ليس كإنهاء جلسة: يمكن للتبويب أن يحتفظ بحالة حسابه وأن يرسل الطلب التالي ببساطة عبر الشبكة المختارة حديثًا، وهذا بالضبط هو التسريب الذي يلاحظه الناس لاحقًا.
ما لا يستطيع التبديل منحه لك هو جهاز يكون على الشبكتين في الوقت نفسه. إذا كان التطبيق يحتاج عنوانًا خاصًا من كل جهة، فلن ينتجه أي قدر من انضباط العميل.
الفصل حسب الملف الشخصي
الملف الشخصي للعمل المُدار هو مستخدم منفصل له تطبيقاته ومخزنه للمفاتيح وسياسته للشبكة. يمكن لعميل بريد العمل أن يستخدم نفق المؤسسة بينما يستخدم متصفح شخصي نفقًا شخصيًا، ويمكن أن يكون الاثنان متصلين في الوقت نفسه لأنهما ليسا في السياق نفسه يتنافسان على الفتحة.
الفصل هو أيضًا الحد. المتصفح الشخصي لا يستعير نفق العمل، ولا يرى لواحق DNS الخاصة بالعمل، ولا يصل إلى شبكة العمل لمجرد أن الخدمتين تظهران متصلتين. عندما يبلّغ أحدهم بأن رابطًا لا يُفتح، تحقّق من أي نسخة من التطبيق تعاملت معه وأي ملف شخصي يملك ذلك الحساب قبل أن تلمس أيًا من شبكتي VPN.
تعامل مع الحدّ على أنه ثابت. إنشاء ملف شخصي ثانٍ أو إزالة ملف عمل للالتفاف على قرار توجيه من صاحب العمل يدمّر الفصل نفسه الذي جعل الترتيب ناجحًا، وعلى جهاز مُدار يكون ذلك عادةً مخالفة سياسة لا تعديلًا في الإعدادات.
سلسلة يكون فيها الترتيب هو التصميم
السلسلة هي الترتيب الذي يقصده الناس عادةً بقولهم الاثنان معًا: نفق الهاتف يسير داخل نفق الموجّه. يمكن أن يعمل، والقيود محددة. على المزوّد الخارجي أن يسمح بمسار عامل إلى نقطة نهاية VPN الخاصة بالهاتف، وهذا يعني بالنسبة إلى بروتوكولات UDP أن على الخدمة الخارجية ألا تحظر ذلك المرور أو تخنقه.
افهم من يرى ماذا. المزوّد الخارجي يرى اتصالًا نحو نقطة النهاية الداخلية. المزوّد الداخلي يتلقى مرور الهاتف من المخرج الخارجي ويمرّره إلى الأمام. الوجهة النهائية ترى عادةً مخرج الخدمة الداخلية، ولا يوجد مزوّد على طول السلسلة أعمى؛ فحسابات التطبيقات لا تزال تعرّف المستخدم بصرف النظر عن المسار.
توقّع كلفة عملية. كل طبقة تضيف تغليفًا، فينخفض MTU الفعلي، وتصبح قيمة كانت مناسبة لنفق واحد تتفكك أو تتعطل حتى يُضبط MTU النفق الداخلي بقيمة محافظة. كما تعني الطبقتان اعتماديتَي فشل ومجموعتَي رسائل إبقاء حياة، والنفق الداخلي القائم على TCP عبر وصلة خارجية رديئة قد يتعطل بطرق تشبه خادمًا ميتًا.
الأهم من ذلك أن السلسلة لا تدمج شبكتين خاصتين. المسارات والبادئات المتداخلة وتحليل DNS وقواعد الوصول تبقى قرارات منفصلة، والموجّه الذي يحمل شبكة VPN بينما يحمل الهاتف أخرى لا يمنح الهاتف مساحتي العنوانين.
تحقّق من التصميم قبل أن تصلحه
اكتب الترتيب في جملة واحدة واختبره مقابل التطبيق الذي فشل. ينبغي أن يُظهر الوصول المتتالي نفقًا واحدًا في كل مرة؛ وينبغي أن يُظهر فصل الملفات الشخصية كل تطبيق في مستخدمه؛ وينبغي أن تُظهر السلسلة النفق الداخلي وهو ينشأ فوق واجهة خارجية لا فوق الواجهة الفعلية.
adb shell ip -br addr
adb shell ip route get 10.20.0.8
adb shell dumpsys connectivity | grep -i vpnإذا كان استعلام التوجيه يسمّي الواجهة الفعلية بينما يتوقع التطبيق النفق، فالتصميم وسياق التطبيق لا يتفقان، ولن يوفّق بينهما أي تطبيق VPN إضافي. تغطي وثائق الملفات الشخصية المُدارة قواعد الفصل إذا كنت بحاجة إلى تفاصيل السياسة لا إلى تفاصيل التوجيه.