Tailscale MagicDNS يعمل لكن nslookup يفشل على macOS
تستخدم تطبيقات macOS محلّل النظام؛ بينما يقرأ nslookup ملفًا ثابتًا. اختبر اسم tailnet نفسه عبر المسارين قبل تغيير أي إعداد DNS.
على جهاز Mac يحل ping اسم جهاز داخل tailnet بينما يعيد nslookup فشلًا، وكل من الأمرين يقول الحقيقة. تحل التطبيقات عبر محلّل النظام، الذي يضبطه Tailscale لكل واجهة، بينما يقرأ nslookup وhost ملفًا ثابتًا لا يمسّه MagicDNS أبدًا. يمكن أن يختلف المساران دون أن يضيع أي حزمة. حدّد المسار الذي سلكه تطبيقك الفاشل قبل تغيير أي إعداد DNS.
مسارا حل، إجابتان مختلفتان
تمر حركة التطبيقات على macOS عبر محلّل النظام، وتحدّد إدخالات المحلّل المقيّدة لكل واجهة أي خادم يجيب عن أي نطاق. يثبّت Tailscale إدخال MagicDNS هناك، ولهذا يجد Safari وssh أسماء tailnet. أما nslookup وhost وdig فتقرأ /etc/resolv.conf أو تأخذ خادمًا على سطر الأوامر، وهذا الملف عادةً ما يسمّي الموجّه أو خادم مكتب. والاسم داخل tailnet المرسل إلى ذلك الملف لا ينتظره أي جواب موثوق، لذا تبلّغ الأداة عن فشل بينما ينجح مسار النظام.
لا تسيء أي من الأداتين التصرف. إنهما تسألان خادمين مختلفين، وواحد فقط من هذين الخادمين يعرف tailnet الخاص بك.
اختبر الاسم نفسه عبر مسار النظام
استخدم نداء البحث في النظام كاختبار أول، ثم قارنه باستعلام موجّه مباشرةً إلى محلّل MagicDNS. أبقِ الإملاء متطابقًا في الاثنين، بما في ذلك نطاق tailnet، لأن الاسم القصير والاسم المؤهّل بالكامل سؤالان مختلفان بإجابتين مختلفتين.
dscacheutil -q host -a name nas-01.tailnet-a1b2.ts.net
scutil --dns
dig @100.100.100.100 nas-01.tailnet-a1b2.ts.net
تلك المخرجات الثلاثة تجيب عن ثلاثة أسئلة: ما يعيده النظام، وأي المحلّلات مضبوطة لأي نطاقات، وما يعرفه MagicDNS نفسه. والاسم الموجود في الثاني والثالث والغائب عن الأول يشير إلى إعداد محلي لا إلى tailnet.
بعد أن يُحلّ الاسم، اختبر الخدمة
الجواب الصحيح من DNS يثبت فقط أن اسمًا يشير إلى عنوان. قد تكون الخدمة خلفه متوقفة، وقد يُرشَّح المنفذ بقاعدة وصول، وقد تشير شهادة إلى مضيف مختلف عن الذي كتبته.
nc -vz nas-01.tailnet-a1b2.ts.net 445
ping -c 3 nas-01.tailnet-a1b2.ts.net
احتفظ بنص الخطأ الأصلي، لأن تحذير شهادة ومهلة اتصال وعدم العثور على الاسم يقود كل منها إلى مكان مختلف. تغيير خوادم الأسماء يصلح الثالث ويضيّع بعد ظهر كامل على الأولين.
MagicDNS ليس بديلًا عن DNS المكتب
الاسم داخل نطاق مكتب ليس اسم جهاز في tailnet حتى عندما يستطيع العميل نفسه الوصول إلى الاثنين. وعندما تكون الوجهة خلف موجّه شبكة فرعية، يحتاج العميل إلى DNS منقسم لذلك النطاق يشير إلى المحلّل الداخلي، وهو إعداد مختلف عن MagicDNS وموثّق إلى جانبه.
نطاقات البحث مهمة أيضًا. الاسم القصير غير المؤهّل تُضاف إليه كل لاحقة مضبوطة بالترتيب، لذا قد يحل حاسوب محمول انضم حديثًا إلى شبكة أخرى عبر لاحقة قديمة. تحقّق من اللاحقة التي طُبّقت قبل إعلان النطاق معطوبًا.
عندما يفشل المساران، تقرّر حقائق tailnet
إذا فشل بحث النظام والاستعلام المباشر معًا لجهاز تعتقد أنه موجود، فالمشكلة تقع قبل محلّل جهاز Mac.
أكّد اسم الجهاز ونطاق tailnet في لوحة الإدارة، وأكّد أن الجهاز متصل ومعتمد، وأكّد أن إعدادات DNS للعميل لم تُعطَّل محليًا. الجهاز غير المتصل يحتفظ باسمه وليس لديه ببساطة عنوان يعيده.
ثم اختر بناءً على الأدلة. الاسم الذي يُحل في مسار النظام ويفشل في nslookup هو اختلاف في مسار الأداة؛ والاسم الذي يُحل بينما ترفض الخدمة هو مشكلة وصول أو شهادة؛ والاسم الذي لا يُحل في أي مكان هو مشكلة في tailnet أو في إعداد DNS. ثلاثة مسؤولين وثلاث إصلاحات، وتشرح وثائق MagicDNS تفاصيل macOS في الحالة الأولى.