الأسماء الداخلية تفشل على VPN بينما تعمل المواقع العامة
عطلان يصلان معًا: اسم الشبكة الداخلية لا يُحلّ، والاستعلامات ما زالت تخرج من النفق. قارن ترتيب المحوّلات واللاحقة والخادم المدفوع.
يبلّغ مستخدم بأن اسم مضيف الشبكة الداخلية لا يُحلّ عبر VPN. ويقول تقرير ثانٍ من الحاسوب المحمول نفسه إن اختبار تسرب ما زال يُظهر استعلامات يجيب عنها الخادم المحلي. يبدوان مشكلة واحدة وهما مشكلتان، بدليلين مختلفين، والإصلاح المعتاد للأولى يزيد الثانية سوءًا. افصلهما قبل أن تمسّ أي إعداد.
عرضان ليسا عطلًا واحدًا
فشل حلّ اسم داخلي يعني أن السؤال ذهب إلى مكان لا يملك جوابًا عنه. أما خروج الاستعلامات من النفق فيعني أن السؤال ذهب إلى المكان الخطأ حتى حين كان الجواب متاحًا. هذان عطلان متعاكسان: أحدهما جواب مفقود والآخر وجهة زائدة.
الفخ أن إضافة خادم المكتب في كل مكان تُصلح الأولى وتضمن الثانية. وإضافة خادم عام في كل مكان تفعل العكس.
دوّن الملاحظتين معًا مع الطابع الزمني، ثم امضِ في الفحوص الأربعة أدناه بالترتيب.
أي محوّل يحصل على السؤال
في Windows يختار عميل DNS الخوادم وفق ترتيب ربط المحوّلات، ومحوّل النفق ليس الأول تلقائيًا. افتح الإعدادات المتقدمة للمحوّل وحرّك اتصال الوصول البعيد فوق المحوّل الفيزيائي، ثم أعد الاتصال كي يسري التغيير على جلسة جديدة.
ترتيب الربط نصف الحكاية فقط. على العميل أيضًا أن يعرف أي الأسماء تنتمي إلى ذلك المحوّل، وهذه مسألة لاحقة لا مسألة ترتيب.
ضع ipconfig /all من الجهاز العامل بجانب نظيره من الحاسوب المحمول، وكلاهما مأخوذ والنفق قائم. سيُظهر الجهاز العامل لاحقة DNS خاصة بالاتصال على محوّل المكتب، وقد لا يُظهر الحاسوب المحمول شيئًا على النفق. هذا الفرق يفسّر صنفًا كاملًا من التقارير التي تقول إن الخادم هناك والاسم ما زال يفشل، لأن الاسم القصير بلا لاحقة لا يكتمل أبدًا إلى النطاق الذي يخدمه خادم المكتب.
الاسم القصير يحتاج لاحقة قبل أن يحتاج مسارًا
كتابة اسم مضيف غير مؤهَّل تطلب من الخادم تخمين نطاق. والتخمين يأتي من قائمة اللواحق المرتبطة بالاتصال، فإن كانت القائمة فارغة خرج الاستعلام بتسمية واحدة لا يطابقها أي نطاق خاص.
انسخ لاحقة الجهاز العامل إلى خصائص IPv4 لمحوّل VPN في تبويب DNS ثم أعد الاتصال. وعلى Linux المكافئ هو نطاق البحث على وصلة النفق، وهو ما يعرضه systemd-resolved لكل وصلة لا بشكل عام.
أبقِ الإعدادين منفصلين في ملاحظاتك. اللاحقة تغيّر ما يُسأل؛ وعنوان الخادم يغيّر من يُسأل. وإصلاح أحدهما والآخر خاطئ يُنتج نتيجة تبدو عشوائية.
اسأل الخادم مباشرة، ثم اسأل الاسم
استعلام مباشر إلى خادم المكتب يفصل مشكلة الاسم عن مشكلة المسار، لأنه يتجاوز اختيار العميل للخادم كليًا.
nslookup intranet.corp.example 10.20.0.53 nslookup intranet resolvectl status
الأمر الأول يسأل خادمًا محددًا عن اسم مؤهَّل بالكامل. فإن أجاب فخادم الأسماء والمسار إليه سليمان والعطل في الاختيار أو اللاحقة. وإن انتهت المهلة فالعنوان خاطئ أو غير قابل للوصول والمشكلة في التوجيه لا في DNS. والأمر الثاني يُظهر ما يحدث مع الاسم القصير، والثالث يطبع إعداد الخادم لكل وصلة على مضيف يعمل بـsystemd.
انتبه للأجوبة العامة التي تعيدها بعض الشبكات عن أسماء مجهولة. فالرد الذي يبدو معقولًا ليس دليلًا على أن الخادم المقصود هو من أجاب، لذا قارن العنوان المعاد بالعنوان الذي يستخدمه الخدمة الداخلية فعلًا. وإن كان العنوان يعود لصفحة انتظار أو لوكيل، فقد أجاب الخادم لكن الجواب لم يكن لك أبدًا. هذا التمييز يوفّر ساعة من مطاردة نفق كان يعمل طوال الوقت.
على Linux، عميل VPN يعيد كتابة /etc/resolv.conf يستبدل الخوادم المحلية كليًا. ويكشف vpnc الخيار DNSUpdate no لمنع ذلك، ويمكن لـsystemd-resolved توجيه النطاقات المدرجة فقط إلى وصلة النفق. وكلا الأسلوبين يبقي الأسماء العامة على الخادم المحلي ويرسل الأسماء الداخلية إلى المكتب.
التسريب قاعدة، لا مربع اختيار
حلّ الأسماء تبادل UDP إلى المنفذ 53، لذا فالنفق الذي يحمل حركة الويب ولا يحمل UDP يترك الاستعلام على المسار الفيزيائي. أثبت ذلك بالتقاط الحركة على بطاقة الشبكة الفيزيائية أثناء حلّ اسم عام. وظهور الاستعلام على تلك الواجهة بصيغة مقروءة يعني أن النفق لا يحمله.
sudo tcpdump -ni eth0 -c 20 'udp port 53' resolvectl query example.com
إن ظهر الاستعلام على تلك الواجهة بصيغة مقروءة فالنفق لا يحمله. والإصلاح قاعدة تسمح بالمنفذ 53 إلى الخادم الذي دفعته VPN وحده وتُسقط الوجهات الأخرى، مع إعداد عميل لا يتجاهل الخيار المدفوع بصمت.
هذا الجزء الأخير أهم مما يبدو. ابدأ OpenVPN بـroute-nopull فيختفي خيار DNS المدفوع مع المسارات، إلا إذا وُسّع مرشّح السحب ليبقيه. وأي عميل يتجاهل dhcp-option DNS سيظل يستخدم ما كان لديه سابقًا. وأي تغيير على جانب الخادم يحتاج جلسة جديدة كي يسري، لأن قائمة الخوادم تُسلَّم عند قيام النفق والجلسة القديمة تظل تُظهر الحالة السابقة.
سجّل أي عطل لاحظته فعلًا قبل إغلاق التذكرة. الجواب الداخلي المفقود والاستعلام الهارب من النفق يستدعيان إصلاحين مختلفين، وتغيير اللاحقة الذي يصلح الأول قد يزيد الثاني سوءًا بهدوء. ومن سيتولى التذكرة بعدك سيثق بالعنوان، فاجعل العنوان دقيقًا.