بوابة VPN تحتاج إلى تمرير IP: ما الذي يجب فحصه
يمكن للبوابة أن تستجيب على عنوانها الخاص بينما لا تمرر شيئًا بين الواجهات. افحص التمرير لكل عائلة عناوين، ثم مسار العودة.
يمكن لعميلك أن يرسل ping إلى عنوان البوابة بينما يظل كل مورد خلفها غير قابل للوصول. يصف هذان الملاحظتان مضيفًا يتحدث إليك وموجّهًا لا يقوم بالتوجيه، وهما دوران مختلفان على الجهاز نفسه. التمرير هو المفتاح بينهما.
الدوران مستقلان، وكذلك عائلتا العناوين.
الرد على عنوانه الخاص لا يثبت شيئًا
عندما تُوجَّه حزمة إلى البوابة نفسها، تستهلكها حزمة الشبكة المحلية ولا يحدث أي قرار تمرير. لهذا يخبرك ping ناجح إلى عنوان النفق أو إلى واجهة إدارة أن البرنامج الخفي حي وأن النفق قائم، دون أن يقول شيئًا عن حركة المرور المتجهة إلى شبكة خلف الصندوق. لا تراجع النواة مسار التمرير إلا للحزم غير الموجَّهة إليها.
اقرأ المتطلب كدور لا كإعداد: يجب أن ينقل هذا المضيف الحزم بين واجهتين. الحاسوب المحمول الذي يحتاج فقط إلى الوصول إلى شبكة بعيدة لا يتخذ هذا الدور أبدًا، ونقطة نهاية موقع-إلى-موقع تتخذه دائمًا. قراءة المتطلب بهذه الطريقة تفسر لماذا يفشل إعداد عميل عامل عند نقله إلى بوابة.
تنطبق الجملة نفسها على الجدار الناري الذي يسبق قرار التمرير، وله سياسته الخاصة بشأن ما يجوز تمريره.
افحص كل عائلة عناوين على حدة
تمرير IPv4 مفتاح واحد، وتمرير IPv6 مفتاح آخر له سلوك خاص بكل واجهة. تفعيل الأول لا يقول شيئًا عن الثاني، ويمكن لعميل مزدوج الحزمة أن يصل إلى نصف شبكة بينما يبقى الباقي معتمًا. لذلك يمكن لعميلين من عائلتين مختلفتين أن يختلفا بشأن البوابة نفسها. اسأل أي عائلة استخدم العميل الفاشل قبل تعديل أي من الإعدادين. أكّد كليهما قبل أن تستنتج أن تصميم التوجيه خاطئ.
sysctl net.ipv4.ip_forward
sysctl -a --pattern 'net.ipv6.conf.(all|default).forwarding'
nft list ruleset | head -n 40
في كثير من التوزيعات، القيمة التي تقرأها في وقت التشغيل وضعها هناك خدمة أو ملف تهيئة، لذا قد يختفي تغيير أُجري بأمر لمرة واحدة عند إعادة التشغيل. اعثر على الملف الذي يملك الإعداد قبل أن تعدل قيمة وقت التشغيل.
التمرير أحد أربعة متطلبات
يحتاج التدفق الممرَّر العامل إلى أربعة أشياء في وقت واحد: يجب أن يعرف العميل أن الوجهة خلف النفق، ويجب أن يكون لدى البوابة مسار إلى الأمام، ويجب أن يكون للردود مسار عودة، ويجب أن يسمح الجدار الناري بالحركة. ترجمة المصدر جزء من ذلك التصميم كخيار لا كقاعدة، لأن الشبكة الموجهة الخاصة ذات المسارات المتماثلة لا تحتاج إليها والشبكة غير المتماثلة تحتاج إليها عادة. يفشل كل واحد من الأربعة باستقلال، ولهذا نادرًا ما يغيّر إصلاح واحد العَرَض. اكتب الأربعة جميعًا قبل أن تغيّر أيًا منها.
تضيف منصات السحابة اعتبارًا خامسًا. بعضها يفرض فحوص المصدر والوجهة على النسخ، فتُسقط الحزم الممرَّرة بغض النظر عما أُعدّت نواة الضيف لفعله. توثيق الشبكة الخاص بالمنصة هو المرجع هناك، لا مخرجات sysctl داخل الآلة الافتراضية.
اختبر من العميل، لا من البوابة
الاختبار الذي يُجرى في صدفة البوابة نفسها لا يعبر أي جزء من مسار التمرير الذي فعّلته للتو. أنشئ الحركة من العميل الذي لديه المشكلة، وتأكد من أنها تصل إلى شيء خلف البوابة لا إلى البوابة نفسها. هذا هو الاختبار الوحيد الذي يمارس الدور الذي غيّرته.
أبقِ قواعد المستمع وقواعد التمرير منفصلة في ذهنك وفي سجل التغييرات. فتح منفذ VPN يسمح للعملاء بالدخول إلى الخدمة؛ ولا يمنحهم شيئًا على الشبكة خلفها، ويبدو الاثنان متطابقين في قائمة جدار ناري نمت على مدى سنوات.
إذا وصلت الحزم ثم رفضت الخدمة المستخدم، فقد تجاوزت الشبكات. تابع مع تخويل التطبيق بدلًا من توسيع سياسة التمرير مرة أخرى.