Tailscale MagicDNS کام کرتا ہے، لیکن macOS پر nslookup ناکام ہوتا ہے
macOS ایپس سسٹم ریزالور کے ذریعے نام حل کرتی ہیں؛ nslookup ایک جامد فائل پڑھتا ہے۔ کوئی بھی DNS ترتیب بدلنے سے پہلے وہی tailnet نام دونوں راستوں پر جانچیں۔
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 ڈیوائس کا نام نہیں، چاہے وہی کلائنٹ دونوں تک پہنچ سکے۔ جب منزل سب نیٹ راؤٹر کے پیچھے ہو، کلائنٹ کو اس زون کے لیے اندرونی ریزالور کی طرف اشارہ کرنے والا split DNS درکار ہے، جو MagicDNS سے مختلف ترتیب ہے اور اس کے ساتھ دستاویزی ہے۔
تلاش ڈومینز بھی اہم ہیں۔ غیر اہل مختصر نام میں ہر ترتیب شدہ لاحقہ باری باری شامل ہوتا ہے، اس لیے حال ہی میں کسی دوسرے نیٹ ورک میں شامل ہونے والا لیپ ٹاپ پرانے لاحقے کے ذریعے حل ہو سکتا ہے۔ زون کو خراب قرار دینے سے پہلے جانچیں کہ کون سا لاحقہ لاگو ہوا۔
جب دونوں راستے ناکام ہوں، tailnet کے حقائق فیصلہ کرتے ہیں
اگر سسٹم لک اپ اور براہ راست کوئری دونوں اس ڈیوائس کے لیے ناکام ہوں جس کے وجود پر آپ کو یقین ہے، تو مسئلہ Mac کے ریزالور سے اوپر ہے۔
ایڈمن کنسول میں مشین کا نام اور tailnet ڈومین تصدیق کریں، تصدیق کریں کہ ڈیوائس آن لائن اور منظور شدہ ہے، اور تصدیق کریں کہ کلائنٹ کی DNS ترتیبات مقامی طور پر غیر فعال نہیں کی گئیں۔ آف لائن ڈیوائس اپنا نام رکھتی ہے اور واپس کرنے کے لیے اس کے پاس کوئی پتہ نہیں ہوتا۔
پھر شواہد کی بنیاد پر انتخاب کریں۔ جو نام سسٹم راستے پر حل ہو اور nslookup میں ناکام ہو وہ ٹول راستے کا فرق ہے؛ جو نام حل ہو مگر سروس انکار کرے وہ رسائی یا سرٹیفکیٹ کا مسئلہ ہے؛ جو نام کہیں حل نہ ہو وہ tailnet یا DNS ترتیب کا مسئلہ ہے۔ تین مالک، تین اصلاحات، اور MagicDNS دستاویزات پہلی صورت کے macOS تفصیلات کا احاطہ کرتی ہیں۔