شبكة VPN الخاصة بك تدفع ثلاثة خوادم DNS: أيها يجيب؟
قد تكون الإدخالات الإضافية احتياطًا أو مسارًا لكل نطاق أو بقايا من الرابط الفيزيائي. اربط كل إدخال بنطاقه قبل أن تصف القائمة بالتسريب.
افتح صفحة الإعدادات بعد الاتصال، فتظهر ثلاثة عناوين DNS؛ وسؤال التدقيق هو أيها تعامل مع استعلامك الأخير. العدد وحده لا يجيب عن شيء، لأن دفع العميل والواجهة الفيزيائية وسياسة لكل نطاق تكتب جميعها في العرض نفسه. تحمل هذه الإدخالات نطاقات مختلفة، والنطاق وليس الموضع هو ما يحدد من يجيب. ابدأ بفصل المصادر، ثم اختبر المصدر الذي يملك الاسم الذي يهمك.
لماذا القائمة أطول من ملفك الشخصي
يدفع عميل VPN عناوين المُحلِّلات لرابط النفق، ويحتفظ نظام التشغيل بها إلى جانب ما كانت الواجهة الفيزيائية تملكه أصلًا. الموجّه وعقد DHCP المؤسسي وشبكة VPN ثانية وسياسة لكل نطاق يسهم كل منها بإدخال خاص به. لذلك قد تعني ثلاثة عناوين على الصفحة ثلاثة نطاقات بدل ثلاثة مرشحين لمهمة واحدة. وقراءة العدد كدليل على تسريب هي الخطأ الأول في هذا التدقيق.
داخل واجهة واحدة يحاول العميل خوادمه بالترتيب، لذا فالقائمة المرتبة ليست بلا معنى. أما ما ليس طابورًا فهو العرض المدمج، حيث تجلس إدخالات الملف والرابط الفيزيائي وقواعد كل نطاق جنبًا إلى جنب دون ترتيب واحد. هذا التمييز يحدد ما تختبره: الترتيب يفسر السلوك داخل نطاق واحد، والنطاق يفسر كل شيء آخر.
DNS المشفَّر يكسر الصورة من داخل التطبيق. المتصفح أو عميل الدردشة الذي يملك مُحلِّل DNS-over-HTTPS خاصًا به يرسل الاستعلامات متجاوزًا قائمة نظام التشغيل بالكامل، لذا فإن العناوين على صفحة الإعدادات تصف حركة لم يولّدها التطبيق قط. تحقق من إعداد المُحلِّل الخاص بالتطبيق قبل أن تلوم الملف على اسم ظهر خطأً.
ما الذي يخبرك به كل فحص من الثلاثة
كل مصدر يترك أثره في مكان مختلف، ولا يعرض أمر واحد جميعها. هذا هو التخطيط الذي يستحق الاحتفاظ به بجانب صفحة الإعدادات:
| Entry source | Where it is visible | What it proves |
|---|---|---|
| Tunnel profile | Link-scoped DNS on the tunnel device | Which servers the VPN asked you to use, not which one answered |
| Per-domain policy | Suffix list or routing domains | Which names are steered to a particular resolver |
| Physical link | DNS on the LAN interface | Whether a second scope still exists outside the tunnel |
| Application resolver | App settings, absent from the OS list | Whether the system list was consulted at all |
على نظام يستخدم systemd-resolved، يُعد resolvectl status المرجع، لأنه يبلّغ عن DNS لكل رابط مع نطاقات التوجيه. ويجيب macOS عبر scutil --dns، الذي يسرد المُحلِّلات ذات النطاق بترتيب تجربتها. أما Windows فيقسم النصفين: Get-DnsClientServerAddress لخوادم كل واجهة، و Get-DnsClientNrptPolicy لقواعد اللواحق. شغّل الأمر الذي يخص المُحلِّل المستخدم فعلًا، لأن جهازًا يحتوي على وقت تشغيل حاويات ومُحلِّل سطح مكتب قد يكون لديه أكثر من واحد مثبَّت.
مُحلِّل احتياطي لا يستطيع الإجابة عن منطقتك
الإدخال الثاني موجود عادةً من أجل التوافر، والتوافر لا يعمل إلا إذا كان الاحتياط يعرف الأسماء. اطلب من مُحلِّل عام اسمًا داخليًا فيعيد NXDOMAIN، أو إجابة حرف بدل من نطاق بحث لا علاقة له بك. وعندها ينتج الفشل التلقائي الذي لم يفحصه أحد انقطاعًا في اللحظة التي يُحتاج إليه فيها بالضبط.
يوجد Split DNS لمنع ذلك: لواحق الشركة تذهب إلى مُحلِّل يحتفظ بالمنطقة، والأسماء العامة تبقى على المسار الافتراضي. التصميم سليم، وهو يعتمد على أن تكون قائمة اللواحق كاملة. توثّق Microsoft سياسة المُحلِّل الخاصة بكل لاحقة التي تدير هذا على Windows، وتظهر الفكرة نفسها كنطاقات توجيه في systemd-resolved وكمُحلِّلات ذات نطاق على macOS.
قارن المناطق التي يجوز للاحتياط الإجابة عنها باللواحق الموجودة في السياسة. تلك المقارنة تكشف الفجوة قبل أن يبلّغ مستخدم بأن موقعًا داخليًا توقف عن الحل بعد تغيير في النفق.
استعلم عبر السياسة، لا حولها
استعلم عبر مُحلِّل نظام التشغيل، لأن الاستعلام المباشر لخادم يتجاوز السياسة ولا يبلّغ إلا بما سيقوله ذلك الخادم. الفجوة بين الإجابتين هي المقصودة كلها:
resolvectl query intranet.example.com
dig +short intranet.example.com @198.51.100.53
إذا أعاد استعلام النظام عنوانًا خاصًا بينما يعيد الاستعلام المباشر NXDOMAIN، فالسياسة تعمل والاحتياط هو نقطة الضعف. وإذا أعاد كلا الاستعلامين الإجابة العامة نفسها، فالاسم يُحل خارج النطاق الذي أردته، وقائمة اللواحق هي موضع البحث. احتفظ بالمخرجات كليهما، لأن نقاش المُحلِّل يُحسم أسرع بسطرين من لقطة شاشة لصفحة الإعدادات.
ثم اختبر مسار الفشل، لأن احتياطًا لم يفحصه أحد افتراض. اجعل المُحلِّل المفضَّل ثقبًا أسود لاستعلام واحد وراقب أي عنوان يعود:
ip route add blackhole 198.51.100.53/32
resolvectl query intranet.example.com
ip route del blackhole 198.51.100.53/32
احذف ذلك المسار فور انتهاء الاستعلام، وإلا ورث الشخص التالي لغزًا. إذا ظلت الأسماء الداخلية تُحل في تلك النافذة، فقد أجاب عنها شيء خارج النطاق المقصود. وإذا انتهت مهلتها بدلًا من ذلك، فالاحتياط مفقود أو محدَّد النطاق بشكل صحيح، وسجل المُحلِّل نفسه يخبرك أي الأمرين كان.
قرِّر: أبقِ أو حدِّد النطاق أو أزل
احتفظ بمُحلِّل ثانٍ عندما يجيب عن مساحة الأسماء التي تحتاجها ويظل قابلًا للوصول تحت الملف. حدِّد نطاقه عندما ينبغي أن يرى لاحقة واحدة ولا شيء غيرها، وأزله عندما لا يكون له نطاق ولا غرض موثَّق. الإدخال بلا مهمة هو تسريب مستقبلي بلا فائدة، والافتراضي من المورِّد ليس غرضًا.
سجِّل النتيجة في أربعة أعمدة: اللاحقة والمُحلِّل والواجهة والمالك. ذلك السطر يجيب عن سؤال التدقيق التالي أسرع من أي لقطة شاشة، ويصمد أمام تحديث العميل الذي يعيد ترتيب القائمة بهدوء.