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

العَرَض: الضيوف ما زالوا يخرجون عبر WAN

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

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

الخطوة 1: مقطع حقيقي، لا مجرد اسم

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

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

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

الخطوة 2: اختر النفق حسب المصدر

تُختار جداول التوجيه حسب الوجهة، لذا قاعدة تقول بإرسال 0.0.0.0/0 إلى النفق تنطبق على الجميع. توجيه السياسة يضيف بعدًا ثانيًا: اختر الجدول حسب عنوان المصدر. على موجّه قائم على Linux، هذه قاعدة إضافية مع جدول مخصص، والترتيب مهم لأن أول قاعدة مطابقة تفوز:

ip rule add from 192.168.60.0/24 lookup 100 priority 1000
ip route add default dev wg0 table 100
ip route get 1.1.1.1 from 192.168.60.10

هذا الأمر الأخير يجيب عن السؤال مباشرة: أي واجهة سيستخدمها هذا المصدر لهذه الوجهة. شغّله قبل التغيير وبعده وستعرف هل سرت السياسة دون لمس أي متصفح.

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

الخطوة 3: مسار الرد والترجمة

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

nft add rule ip nat POSTROUTING ip saddr 192.168.60.0/24 oifname "wg0" masquerade

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

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

اختبر العزل، لا التصفح فقط

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

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

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

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

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