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-সংক্রান্ত খুঁটিনাটি কভার করে।