كيفية اختبار ما إذا كان نظام أسماء النطاقات (DNS) يسبب فشل الاتصال بـ Immich

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

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

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

حدّد اسم المضيف المحدد ومسار الفشل

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

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

كإجراء ضبط، اختبر إمكانية الوصول إلى عنوان الخادم والمنفذ المتوقعين من دون الاعتماد على بحث DNS المعتاد. تعامل مع هذا فقط باعتباره وسيلة لتمييز مسار الشبكة؛ إذ يمكن لشهادات HTTPS وSNI والوكلاء العكسيين والمضيفات الافتراضية رفض طلب يستند إلى عنوان IP حتى عندما تكون الخدمة سليمة.

استعلم عن DNS من العميل الذي يواجه الفشل، وليس من الخادم فقط

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

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

كرّر الاستعلام عدة مرات بدلًا من الوثوق بنجاح واحد. سجّل حالات NXDOMAIN وSERVFAIL وانتهاء المهلة والعناوين القديمة أو إجابات A/AAAA غير المتسقة. إذا كانت الإجابة الصحيحة مستقرة، فقلّل الشك في تحليل DNS الأساسي ووجّه التحقيق إلى التوجيه أو الوكيل أو TLS أو الجدار الناري أو إعدادات التطبيق.

قارن نتائج أدوات حل الأسماء وأنواع الأخطاء

فسّر رمز الاستجابة قبل تغيير الإعدادات. تعني NXDOMAIN أن الاسم الذي جرى الاستعلام عنه غير موجود من وجهة نظر أداة حل الأسماء تلك؛ وتعني SERVFAIL تعذّر إكمال التحليل؛ بينما يعني انتهاء المهلة أن أداة حل الأسماء لم تُجب في الوقت المناسب. وقد تكون الإجابة الناجحة نحويًا خاطئة مع ذلك إذا أشارت إلى عنوان موجّه قديم أو نقطة نهاية لا يمكن الوصول إليها.

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

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

استخدم تجاوزًا مضبوطًا لإثبات علاقة DNS بالمشكلة أو استبعادها

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

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

إذا تعذّر على استعلام نظيف واحد إعادة إنتاج فشل المنزل خلال الفترة المعنية، فقارن حالة المضيف والحاوية وأداة حل الأسماء المحلية وأداة حل الأسماء العليا وDHCP وVPN وذاكرة التخزين المؤقت بمرور الوقت. يساعد فحص أعطال DNS متعدد الطبقات على اكتشاف الحالات المتقطعة التي تختفي أثناء اختبار يُجرى مرة واحدة.

امسح ذاكرة التخزين المؤقت الصحيحة وأعد اختبار سير عمل Immich الأصلي

بعد تصحيح سجل DNS أو أداة حل الأسماء أو خيار DHCP أو قاعدة DNS المنقسم أو التجاوز المحلي، امسح فقط ذاكرة التخزين المؤقت ذات الصلة بالعميل أو أداة حل الأسماء، متى كان ذلك عمليًا. لا تكرر مسح كل الطبقات من دون تسجيل ما تغيّر، لأن ذلك قد يجعل من المستحيل تفسير نجاح مؤقت.

حلّل اسم المضيف مرة أخرى من العميل المتأثر وتحقق من إجابة A/AAAA المقصودة وأداة حل الأسماء ووقت الاستجابة. ثم افتح Immich باستخدام اسم المضيف المعتاد، وحمّل أصولًا قديمة، وأجرِ بحثًا، ونفّذ عملية رفع آمنة واحدة أو إجراء كتابة آخر، بحيث يغطي الاختبار أكثر من صفحة تسجيل الدخول.

كرّر الفحص من حالة الشبكة التي حدث فيها الفشل أصلًا، مثل بيانات الهاتف المحمول أو شبكة Wi-Fi المنزلية أو شبكة Wi-Fi المتصلة عبر VPN أو بعد تجديد الموجّه أو DHCP. لا يُستبعد DNS كسبب جذري إلا عندما يظل اسم المضيف المعتاد صحيحًا أثناء المحفّز الذي تسبب سابقًا في تعطله؛ وإلا فاحتفظ بالأدلة الجديدة وتابع التحقيق في طبقة الشبكة التالية.

الدعم والنصائح

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.