ترسل معظم إعدادات النفق الكامل كل حزمة عبر VPN، وredirect-gateway هو التوجيه الذي يجعل ذلك ممكنًا. يمكن مع ذلك استثناء وجهة واحدة. وإضافة مسار مضيف لذلك العنوان مع العنصر النائب net_gateway تخبر العميل بأن يصل إليه عبر البوابة الأصلية للجهاز، بينما يظل كل شيء آخر يستخدم النفق.

يبدو السطر غير مؤذٍ وكثيرًا ما يكون كذلك، لكنه يحسم سؤالًا واحدًا فقط: أين تذهب الحزم الموجهة إلى عنوان IPv4 ذلك بالتحديد. وهو لا يغيّر DNS ولا IPv6 ولا سياسة الجدار الناري ولا العملية التي فتحت الاتصال، وكل واحد من ذلك يمكن أن يُبطل الاستثناء بهدوء.

ما الذي يسميه net_gateway فعليًا

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

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

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

لماذا يتغلب مسار المضيف على المسار الافتراضي للنفق

يُحدَّد التوجيه بواسطة البادئة المطابقة الأكثر تحديدًا. redirect-gateway def1 لا يستبدل المسار الافتراضي عادةً؛ بل يضيف نصفين، مسارًا للنصف الأدنى من فضاء العناوين وآخر للنصف الأعلى، فيبقى المسار الافتراضي الأصلي محفوظًا لاستخدامات أخرى. هذان النصفان أوسع من عنوان واحد.

المسار لعنوان واحد بقناع 255.255.255.255 هو /32، وهو أكثر تحديدًا مما يبلغه IPv4. عند تقييم حزمة لذلك العنوان، يطابق /32 ويفوز بصرف النظر عن المسار الذي ثُبّت أولًا. هذه هي الآلية وراء الاستثناء، وهي تعمل بالطريقة نفسها على Linux وmacOS وWindows ما دام المسار موجودًا فعلًا.

يضيف Windows بُعدًا ثانيًا. عندما يكون مساران متساويين في التحديد، يفوز ذو المقياس الأدنى، ويمكن لمحول VPN أن يحمل مقياس واجهة يغيّر النتيجة. يبقى /32 أكثر تحديدًا من النصفين، لذا يصمد الاستثناء عادةً، لكن مسارًا قديمًا من جلسة سابقة قد ينتج نتيجة مربكة إذا كان متساويًا في التحديد.

ما لا يغطيه الاستثناء

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

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

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

فحص الاستثناء دون خداع نفسك

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

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

أخيرًا، افحص عناصر التحكم التي يمكنها تجاوز المسار. قد يمنع مفتاح الإيقاف على جانب العميل أو إعداد block-outside-dns في Windows حركة المرور المباشرة، ويظهر ذلك كاتصال يفشل رغم صحة المسار. لا تعطّل عناصر التحكم تلك لتجعل الاستثناء يبدو ناجحًا؛ فإذا كانت السياسة تمنع المسار المباشر، فالاستثناء مشكلة تصميم على مالك خدمة VPN.

أعد الفحص بعد إعادة الاتصال أو تبديل الشبكات، لأن البوابة السابقة لـ VPN والمسار المتاح هما خاصيتان للحظة، لا للملف الشخصي.

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