هل يحتاج كل نظير في OpenVPN إلى سطر remote؟ ليس تمامًا
يحدّد remote وجهة الحزمة الأولى؛ وهو لا يختار دور العميل أو الخادم أو TLS. اقرأ الترتيب قبل نسخه إلى الطرفين.
تُقارَن تهيئتان لنظيرين جنبًا إلى جنب، إحداهما فيها سطر remote والأخرى لا، والاستنتاج أن إحداهما معطوبة. هذا الاستنتاج خاطئ بما يكفي ليكون جديرًا بالتفكيك. يصف التوجيه أين تُرسَل الحزمة الأولى. وهو لا يختار ما إذا كانت العملية تعمل كعميل يبدأ الاتصال أو كبوابة تنتظر، ولا يحدّد أي طرف يثبت هويته للآخر.
ما الذي يحدده remote فعليًا
يسمّي مدخل remote مضيفًا، واختياريًا منفذًا وناقلًا، واختياريًا عدة مداخل من هذا القبيل تُجرَّب بالترتيب.
لغيبته معنى محدّد لا معنى غامض: تنتظر العملية ولا تتعامل مع حزم من عنوان إلا إذا أثبت ذلك النظير هويته. لذلك لا سبب لبوابة تخدم مستخدمين متجولين أن تسمّي أيًا منهم مسبقًا.
اقرأ المدخل كعلاقة عناوين. أما هل الطرف البعيد موثوق، فتجيب عنه الشهادات وخيارات التحقق، لا مجرد كتابة عنوان ما.
ثلاثة ترتيبات تحدد الجواب
يحتاج العميل المتجول إلى وجهة، لأنه يجب أن يبدأ الاتصال وليس لديه فكرة عن مكان البوابة بدونها. ولا تحتاج بوابة متعددة العملاء إلى وجهة لكل مستخدم، لأن العملاء يصلون ويثبتون هويتهم. وقد يكون لرابط مقصود بين نظيرين معروفَي الطرفين وجهة على طرف واحد أو على الطرفين أو على أي منهما، بحسب الطرف الذي يبدأ الاتصال.
لصق عنوان عميل ثابت في بوابة عامة هو الخطأ الذي ينجم عن تجاهل تلك الفئات. إنه يعمل مع النظير الوحيد الذي سُجّل عنوانه ويضلل كل الآخرين.
لا شيء في التوجيه يحوّل تهيئة إلى خادم متعدد العملاء، ولا شيء في وجوده يمنع دور الخادم. توثّق مرجع OpenVPN 2.6 الوسائط الاختيارية وسلوك غياب remote بشكل منفصل، وهذا تلميح إلى مدى استقلالهما.
| Arrangement | Needs a destination |
|---|---|
| Roaming client | Yes, which gateway to contact |
| Multi-client gateway | No, peers authenticate on arrival |
| Two known peers | Depends on which side initiates |
أدوار النقل محور مختلف
في TCP ينتظر طرف ويطلب الآخر الاتصال. هذه توجيهات منفصلة عن الوجهة، وخلطها ينتج زوجًا ينتظر كله أو يطلب الاتصال كله.
هناك أيضًا دور مرشّح المصدر في TCP، ولهذا فإن القول المسطح بأن الخادم قد لا يحتوي أبدًا على remote خاطئ.
في UDP لا يوجد اتصال يُنشأ، لذا يستخدم الطرفان نقل UDP المقابل ولا يقول التوجيه إلا إلى أين تُوجَّه الحزم. تُعالَج تغييرات العنوان من نظير موثّق بسلوك مخصص لا بإضافة مداخل أكثر. إتقان النقل شرط لأن يعني العنوان شيئًا، وخلط الاثنين ينتج تهيئات تبدو معقولة ولا تكمل المصافحة أبدًا.
لماذا لا تكون غيبة remote بابًا مفتوحًا
العملية التي لا وجهة لها ترفض مع ذلك حركة النظيرين الذين لا يثبتون هويتهم، وهذا هو الجزء الذي يفوته الناس حين يقرؤون السطر الغائب كمستمع مفتوح للجميع.
المصادقة والوجهة مستقلتان، والأولى هي المهمة للثقة.
الخطأ العكسي أخطر. قد يبدو عنوان مصدر ثابت كضابط وصول لأنه محدد ويسهل فحصه، لكنه لا يثبت شيئًا عن هوية الطرف الآخر. أبقِ على التحقق من الشهادة، وأبقِ على فحوص الهوية التي تربط الشهادة بدورها. استبدالها بمطابقة عنوان يقايض ضابطًا حقيقيًا بمظهر ضابط.
اكتب ما تفترضه التهيئة
لكل طرف، سجّل ثلاثة أشياء: كيف تصل الحزمة الأولى إلى النظير، وأي طرف يمكنه قبول النقل، وما يتحقق منه كل طرف بشأن الآخر.
تلك الافتراضات هي التصميم. التوجيهات ليست إلا تهجئتها.
إذا اختلف الملفان، فتحقق مما إذا كانا يعبّران عن افتراضات مختلفة بدل افتراض أن أحدهما خاطئ. الزوج المتماثل من الملفات ليس ضروريًا ولا كافيًا لنفق عامل، واللامتماثل هو غالبًا الجزء الذي يجعل الطوبولوجيا تعمل.