هل يفسد ملف خيارات pppd المشترك اتصال VPN آخر لديك؟
يمكن لعميلَي VPN مبنيين على PPP أن يقرآ الإعدادات الافتراضية نفسها لملف pppd، فيغيّر إصلاح أحدهما الآخر بصمت. تتبّع مالك الخيار قبل أن تعدّل أي سطر.
تضيف سطرًا واحدًا ليجد اتصال PPTP عنيد طريقه إلى الاتصال، وبعد أسبوع يتوقف عميل L2TP الذي ظل يعمل أشهرًا. القراءة البديهية أن البروتوكولين صارا متعارضين. لكن الأرجح أن كلا العميلين يشغّل pppd، وكلاهما يقرأ الإعدادات الافتراضية نفسها، وأن السطر الذي أضفته لم يكن يومًا محصورًا في الملف الشخصي الذي كنت تصلحه. ملف الخيارات المشترك هو سبب الارتباط، والبروتوكولات بريئة.
ما الذي يرثه العميل عند بدء التشغيل
قلّما يبني أي عميل قائم على PPP سطر أوامره من العدم. فهو يبدأ pppd، الذي يقرأ إعدادات النظام الافتراضية، ثم أي ملف للمستخدم أو ملف طرفية، ثم الوسائط التي يمرّرها العميل، وقد يوجّهه العميل أيضًا إلى ملف نظير. ويمكن لكل طبقة من هذه الطبقات أن تحمل ملحقًا أو طريقة مصادقة أو توجيهًا للمسار، وأول طبقة تضبط خيارًا محميًا قادرة على تثبيته في وجه أي تغيير لاحق.
لذا فالسؤال المفيد ليس أي VPN هو المعطوب، بل أي طبقة قدّمت هذا الإعداد. فالعميل الذي يولّد وسائطه بنفسه يبدو مستقلًا بذاته، ومع ذلك يرث كل ما يحتويه ملف النظام.
انسب السطر إلى مصدره قبل تغييره
ابدأ بالنظر إلى العملية التي تعمل أثناء نشاط الاتصال. يُظهر سطر الأوامر أي الملفات مُرّرت صراحةً، وكل ما لم يُذكر هناك جاء من مسار افتراضي.
ps -o pid=,args= -C pppdإن كانت قائمة الوسائط تحوي اسم نظير، فاقرأ ذلك الملف. وإن لم تحوه، فالإعداد الذي تتبعه يقيم في مسار مشترك. يسرد دليل pppd ترتيب قراءة تلك الملفات، والخيارات التي لا يستطيع مستخدم عادي تجاوزها، ولهذا لا يفعل سطر لاحق شيئًا على الإطلاق أحيانًا. فالخيار المحمي مثل مسار ملحق لا يمكن استبداله بسطر لاحق على مستوى المستخدم، لذا لا يترك تعديل الملف الخطأ أي أثر ظاهر.
سطر الملحق الذي يتبع كل عميل
الملحق المحمّل في ملف النظام هو أسوأ الجناة، لأنه يغيّر ما تحاول عملية PPP جديدة تحميله أيًا كان الزر الذي ضغطه المستخدم. وملحق L2TP هو المثال الكلاسيكي: صحيح لملف شخصي واحد، وعديم المعنى أو ضار لملف PPTP ينطلق من الإعدادات الافتراضية نفسها.
انقله إلى ملف نظير يختاره العميل، أو إلى إعدادات العميل الخاصة بكل اتصال عندما يدعمها. أما حذفه كليًا فيصلح العميل الثاني ويكسر الأول، وهكذا تنتقل هذه المشكلات بين الفرق.
تحقّق من كل عميل بعد النقل
اختبر الاتصالين من الجهاز نفسه، واحدًا بعد الآخر، واقرأ الخيارات المتفاوض عليها بدلًا من مربع حوار النجاح. يطبع أمر dump أدناه مجموعة الخيارات التي جمعها pppd فعليًا، وهي القائمة الوحيدة المهمة.
sudo pppd call office debug dumpكرّر ذلك مع العميل الثاني وقارن المخرجات. ينبغي أن يظهر الخيار الذي نقلته في واحدة منهما فقط. وإن ظهر في الاثنتين، فالعميل يعيد توليده، والإصلاح مكانه ذلك الملف الشخصي لا الملف المشترك. ودوّن مكان الإعداد الآن بجانب الاتصال، حتى لا يكتشف الشخص التالي الارتباط مرة أخرى بتكسيره من جديد.