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

الفحص 1: اعثر على العنوان الذي يطلبه المتصفح

قارن عنوان URL بما تحمله الآلة فعلاً. يعرض ip -brief addr show واجهة zt وعنوان التراكب الذي خصّصه متحكّم الشبكة؛ إذا استخدم URL ذلك العنوان، فإن مقبس المتصفح يدخل إلى شبكة التراكب.

حين يُحلّ الاسم بدلاً من ذلك إلى عنوان شبكة محلية، فقد لا تكون شبكة التراكب معنية إطلاقًا، مهما اقترح مؤشّر حالة العميل. يطبع ip route get 10.147.20.5 الواجهة وعنوان المصدر الذي ستختاره النواة، لذا فإن واجهة zt هناك تعني أن الحزمة تدخل شبكة التراكب، أما اسم بطاقة الشبكة الفيزيائية فيعني أنها لا تدخل. تضيف الأسماء طبقة أخرى: السجل الذي يشير إلى عنوان تراكب يتصرّف بشكل مختلف عن سجل يشير إلى عنوان شبكة محلية، ولاحقة بحث أو إدخال في ملف hosts يمكن أن يقرّرا بهدوء أيّها ستحصل عليه.

الفحص 2: تأكّد أن الطرفين قرينان، لا مرحّل يفكّ التشفير

يشفّر ZeroTier بين الأقران، وحيث لا يوجد مسار مباشر تُمرَّر الحزم عبر جذر يعيد توجيهها وهي لا تزال مشفّرة. يعلّم zerotier-cli peers مسار كل قرين بـ DIRECT أو RELAY مع رقم زمن وصول. المسار المُمرَّر يكلّف رحلات ذهاب وإياب، لا سرّية.

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

الفحص 3: راقب أين يصبح الطلب مقروءًا

على المضيف الذي تظنّه يقدّم الصفحة، التقط واجهة التراكب أثناء إعادة التحميل: sudo tcpdump -i ztxxxxxxx -A -c 5 'tcp port 80'. سطر طلب مقروء في ذلك الناتج يثبت أن الحركة وصلت مفكوكة التشفير إلى ذلك المضيف، وهو الحدّ الذي تبحث عنه.

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

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

الفحص 4: احسب كل قفزة خلف موجّه أو جسر

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

تتبّعه بدلاً من افتراضه. يُظهر traceroute من العميل إلى عنوان الخدمة مع جدول التوجيه على عضو البوابة ما إذا كانت القفزة الأخيرة zt أو eth.

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

الفحص 5: قرّر ما يزال على التطبيق فعله

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

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

"VPN متصل" ليس تقييمًا لأي من هذا. النسخة الصادقة تسمّي الطرفين، والمسار بينهما، وأول قفزة غير مغطّاة.

احفظ ناتج الالتقاط وقائمة الأقران بجانب توثيق الخدمة، حتى يرى من يغيّر مسارًا أو يضيف جسرًا أي افتراض على وشك كسره.

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