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

نقرة ping واحدة تقسم المشكلة إلى نصفين

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

ip addr show tun0

اقرأ واجهة العميل قبل أي شيء آخر، لأن قناع الشبكة يسمّي الطوبولوجيا. القناع /24 أو أي قناع شبكة فرعية آخر يعني مجمعاً مشتركاً؛ والقناع /30 مع عنوان قرين يعني التخطيط القديم من نقطة إلى نقطة، حيث لكل عميل جار واحد فقط هو الخادم.

net30 مقابل الشبكة الفرعية، كما تُقرأ من جهة العميل

What you observenet30subnet
Client netmask/30 with a peer addressThe pool's own mask
Peers a client can address directlyOne, the serverEvery client in the pool
AddressingOne /30 block per client, with the server as the only peerOne pool mask shared by all clients
Effect of client-to-clientRequired for any peer trafficRequired for peer traffic, still no broadcast

مع net30 يوزع الخادم كتلة صغيرة لكل عميل، لذلك لا يوجد مسار إلى عنوان نفق عميل آخر إلا إذا مرره الخادم. ومع الشبكة الفرعية يكون المجمع كله شبكة واحدة، ويستطيع كل عميل مخاطبة كل عميل آخر، ويمرر الخادم بينها. لهذا قد تبدو إعدادات خادم واحدة سليمة بينما تفشل pings الأقران: لا شيء معطل، لكن العملاء ليسوا في شبكة واحدة. يرى العميل وصلة عاملة وعنوان قرين لا يستجيب، وهو ما يبدو كجدار حماية لكنه في الحقيقة تخطيط عنونة.

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

client-to-client بوابة منفصلة

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

ولا يمتد ذلك إلى البث. الإعداد يمرر أحادي الإرسال بين العملاء؛ ولا يحوّل النفق إلى مقطع مشترك، ولن يوصل أي قدر منه استعلام اكتشاف متعدد الإرسال إلى كل قرين.

TUN مقابل TAP، وما يستطيع كل منهما حمله

PropertyTUNTAP
LayerLayer 3, IP packetsLayer 2, Ethernet frames
Broadcast and multicastNot carriedCarried
Bridging to the LANNot applicableRequired for a shared segment
Client platform supportEverywhereMissing on Android and iOS, limited on macOS

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

لجهازي عمل أو ثلاثة تحتاج إلى تحليل أسماء، فإن إدخال hosts أو عنوان أحادي الإرسال أرخص بكثير من جسر. استخدم TAP عندما يعتمد بروتوكول لا يمكن استبداله على اكتشاف الطبقة 2، وليس قبل ذلك.

عملاء الشبكة الفرعية نفسها بدون جسر

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

ip neigh add proxy 10.50.1.250 dev eth0

يغلق Proxy ARP تلك الفجوة بأن يجيب الخادم بالنيابة عن العميل. ولنطاق كامل يدير parpd الإدخالات مع مجيء العملاء وذهابهم، بينما يجيب sysctl net.ipv4.conf.eth0.proxy_arp=1 عن كل ما يُوجَّه إلى مكان آخر، وهو أوسع من أن يخلو من مفاجآته على مقطع مزدحم.

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

قبل تغيير أي شيء، التقط محاولة واحدة على الخادم باستخدام tcpdump -ni tun0 وتأكد مما إذا كانت حزمة القرين تصل أصلاً. الوصول ثم الإسقاط يشير إلى client-to-client؛ وعدم الوصول أبداً يشير إلى الطوبولوجيا أو التوجيه. دليل OpenVPN 2.6 يوثّق الكلمتين المفتاحيتين والافتراضي في الطوبولوجيا، ويستحق المقارنة بإصدارك قبل نسخ سطر من منشور منتدى.

  • واجهة tun تُظهر قناع مجمع بدلاً من زوج قرين /30.
  • نجاح ping مباشر إلى عنوان النفق الآخر قبل اختبار الاكتشاف.
  • يتضمن إعداد الخادم client-to-client كلما وجب على الأقران تبادل الحزم.
  • سمِّ بروتوكول الاكتشاف الذي تختبره بدلاً من القول إن التطبيق يفشل.
  • استخدم TAP فقط إذا كانت كل منصة عميل في المجموعة تدعمه.
  • أبقِ NAT خارج المسار بين النفق والشبكة المحلية عندما تكون إمكانية الوصول داخل الشبكة الفرعية نفسها مهمة.

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