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

اقرأ سجل البوابة قبل أن تلمس أي عميل

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

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

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

ما يفعله الراوتر مع GRE و NAT-T

PPTP هو المخالف الكلاسيكي: قناة التحكم هي TCP 1723 بينما مسار البيانات هو GRE، البروتوكول IP رقم 47. كثير من راوترات المستهلكين تأتي بمساعد PPTP يتابع اتصال تحكم واحدًا، فيفتح عميل ثانٍ خلف NAT نفسه قناة تحكمه ثم لا يستقبل مسار بيانات على الإطلاق. تمرير منفذ TCP رقمه 47 لا يفعل شيئًا لـ GRE، لأن GRE رقم بروتوكول لا منفذ.

L2TP فوق IPsec يتصرف بشكل مختلف بحكم التصميم: يستخدم IKE المنفذ UDP 500، وينقل تجاوز NAT الحمولة المحمية إلى UDP 4500، والتغليف موجود تحديدًا كي تصل عدة عملاء خلف عنوان واحد إلى البوابة نفسها. هذا التصميم لا يمنع بوابة أو صندوقًا وسيطًا من فرض سقف جلسات لكل عنوان، ومن الأريكة يبدو الفشلان متطابقين. بروتوكول SoftEther الأصلي فيه المشكلة نفسها من حيث النوع، حيث يقبل راوتر بلا تمرير فعّال العميل الأول من الشبكة المحلية ويسقط الثاني. اختبر مفتاح ALG أو التمرير في الراوتر في الوضعين، لأن مساعدًا كُتب لعميل أقدم قد يُفسد حزمًا يرسلها عميل حالي.

nc -vz 203.0.113.5 1723
sudo tcpdump -ni any proto gre

سقوف الهوية التي تبدو كسقوف نقل

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

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

sudo journalctl -u openvpn-server@server -n 60 --no-pager
cat /run/openvpn/server.status

طابق الإصلاح مع مدخل السجل

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

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

التحقق من جلستين حيّتين

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

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

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