একটি Tailscale হোস্টে পৌঁছানো যাচ্ছে না: সাবনেট রাউটার নাকি এক্সিট নোড?
প্রথমে অনুপস্থিত গন্তব্যটি ঠিক করো: প্রাইভেট NAS-এর জন্য দরকার ঘোষিত সাবনেট, আর পাবলিক ব্রাউজিংয়ের জন্য দরকার এক্সিট নোড।
একটি Tailscale হোস্ট উত্তর দেয় আর অন্যটি অন্ধকারে থাকে, অথবা সবকিছু কাজ করে যতক্ষণ না পাবলিক ওয়েবসাইট ভুল দেশ দেখাতে শুরু করে। দুটি অভিযোগই আসে “Tailscale ভাঙা” হিসেবে, আর দুটিই সাধারণত ভুল গন্তব্যের জন্য চালু করা ভুল কাঠামো। সাবনেট রাউটার একটি প্রাইভেট নেটওয়ার্ককে tailnet-এ উন্মুক্ত করে, আর এক্সিট নোড বদলে দেয় ইন্টারনেট ট্রাফিক কোথা থেকে বেরোবে। প্রথমে ব্যর্থ গন্তব্যটি ঠিক করো, তারপর সেই ভূমিকা বেছে নাও যা সেটি ঢাকে।
যে গন্তব্যে ব্যর্থ হয়েছে সেখান থেকেই শুরু করো
যে ঠিকানা বা নামটি কাজ করেনি এবং এটি কী ধরনের জিনিস তা লিখে রাখো। অন্য সাইটের পেছনের প্রাইভেট LAN-এ থাকা একটি ডিভাইস, নিজের সেগমেন্টের একটি সার্ভিস আর একটি পাবলিক ওয়েবসাইট—এই তিনটি রাউটিং সমস্যা কেবল একটি ক্লায়েন্ট ভাগ করে নেয়। পার্থক্যটি সৌন্দর্যের নয়, কারণ দুটি কাঠামো ভিন্ন ভিন্ন গন্তব্যের সেট ঢাকে। একটিকে চালু করলে অন্যটির জন্য কিছুই হয় না, আর পুরো বিভ্রান্তির উৎস এটাই।
ঠিকানার পরিবারও লক্ষ করো। কেবল IPv4 হিসেবে ঘোষিত একটি সাবনেট IPv6 গন্তব্যকে লোকাল পথে রেখে দেয়, যা কেউ দুটি রাউটিং টেবিল মিলিয়ে না দেখা পর্যন্ত আংশিক ব্যর্থতার মতো দেখায়। পথটি কেমন হবে বলে তুমি আশা করেছিলে তা লিখে রাখো, যাতে পরে পরীক্ষার সামনে অস্বীকার করার মতো কিছু থাকে।
এমন ডিভাইসে পৌঁছাও যেটি কখনো Tailscale চালায় না
রাউটার tailnet-এ নির্দিষ্ট রেঞ্জ ঘোষণা করে, তারপর tailnet আর প্রাইভেট সেগমেন্টের মধ্যে প্যাকেট রিলে করে, তাই সেই সেগমেন্টের ডিভাইসগুলোর নিজের কোনো ক্লায়েন্ট লাগে না। বাড়ির ল্যাপটপ থেকে অফিসের NAS-এ পৌঁছানো ঠিক এই ক্ষেত্রটি। ওই দিকে tailnet-এর একমাত্র সদস্য রাউটারটিই।
tailscale up --advertise-routes=10.40.0.0/24 --advertise-exit-node=false
ip route get 10.40.0.55
tailscale status
ঘোষণা তিনটি শর্তের মধ্যে কেবল প্রথমটি। রুটটি tailnet-এর জন্য অনুমোদিত হতে হবে, ক্লায়েন্টকে ঘোষিত রুট গ্রহণ করতে হবে, আর একটি অ্যাক্সেস নিয়মে সংযোগটির অনুমতি দিতে হবে। এই শৃঙ্খলের কারণেই উপসর্গটি প্রায়ই এমন হয় যে রাউটার চালু আর NAS নয়। পৌঁছানো যায় এমন রাউটার প্রমাণ করে টানেল কাজ করছে; অনুমোদন, ক্লায়েন্টের গ্রহণ বা পলিসি সম্পর্কে এটি কিছুই প্রমাণ করে না।
ওই তিনটি ব্যর্থতার প্রতিটি অ্যাডমিন কনসোলে আলাদা দেখায়। তিনটিই একসঙ্গে না বদলে ক্রমানুসারে যাচাই করো, কারণ দ্বিতীয় পরিবর্তন ঢেকে দেয় কোনটি আসলে গুরুত্বপূর্ণ ছিল।
পাবলিক ট্রাফিক অন্য মেশিন দিয়ে বের করো
একটি এক্সিট নোড তোমার সাধারণ ইন্টারনেট ট্রাফিক নিজের মধ্য দিয়ে রাউট করে, যা অন্য VPN পণ্যের ফুল-টানেল ব্যবস্থার সবচেয়ে কাছের তুলনা। এরও তিনটি আলাদা সম্মতি লাগে: ডিভাইসটি ভূমিকা ঘোষণা করে, প্রশাসক তা অনুমোদন করে, আর ক্লায়েন্ট তা বেছে নেয়। tailnet-এ যোগ দিলে ডিফল্টভাবে অন্য কোনো সদস্যের মধ্য দিয়ে কিছুই যায় না।
tailscale up --advertise-exit-node
tailscale up --exit-node=100.101.102.103 --exit-node-allow-lan-access=false
tailscale status --json | grep -i exitnode
এক্সিট নোড বেছে নিলে ওই নোডের নিজের LAN-এ স্বয়ংক্রিয়ভাবে প্রবেশাধিকার মেলে না। LAN-অ্যাক্সেস অপশনটি আছে ঠিক এই কারণে যে এগুলো আলাদা অনুমতি, আর এটি বন্ধ রাখাই নিরাপদ ডিফল্ট। অন্য Tailscale রিসোর্সের রুট এক্সিট নোড সক্রিয় থাকলেও নিজের পরিচালনা ধরে রাখে। এজন্যই সাবনেটে হোস্ট করা একটি সার্ভিস পাবলিক ইন্টারনেট পথ বদলে গেলেও কাজ চালিয়ে যেতে পারে।
এক্সিট নোড ইন্টারনেট তোমাকে কীভাবে দেখে তাও বদলে দেয়, কেবল কত দ্রুত লাগে তা নয়। জিওলোকেশন, স্ট্রিমিং ক্যাটালগ আর রেট লিমিট তোমার নয়, এক্সিটের ঠিকানা অনুসরণ করবে বলে মনে রেখো।
কেবল একটি হোস্ট ব্যর্থ হলে তিন দিকের বিভাজন পড়ো
নিজের সেগমেন্টের একটি প্রিন্টার, দূরের সাবনেট রাউটারের পেছনের একটি NAS আর একটি পাবলিক সাইট—তিনটি ভিন্ন পথের তিনটি গন্তব্য। এর মধ্যে ঠিক একটি ব্যর্থ হলে ত্রুটিটি পুরো ক্লায়েন্টের নয়, ওই গন্তব্যের পথের। এক্সিট নোড ব্যবহারের সময় লোকাল প্রিন্টারের জন্য স্বাভাবিক উত্তর হলো LAN-অ্যাক্সেস সেটিং। দূরের NAS-এর জন্য ঘোষিত রেঞ্জ, তার অনুমোদনের অবস্থা আর অ্যাক্সেস নিয়ম এই ক্রমে দেখো। পাবলিক সাইটের জন্য দেখো কোন এক্সিট নোড বেছে নেওয়া হয়েছে আর ক্লায়েন্ট সত্যিই তা গ্রহণ করেছে কি না।
ঠিকানা কাজ করলে আর নাম না করলে, রুট দেখা বন্ধ করো। প্রাইভেট DNS আলাদাভাবে কনফিগার হয়, আর ভুল ঠিকানায় রিজলভ হওয়া নাম ব্যর্থ হয় এমনভাবে যা ব্লক করা রুটের মতোই দেখায়। আগে ঠিকানা, তারপর নাম পরীক্ষা করো, আর দুটি ফলাফলই বলে দেবে কোন স্তর খুলতে হবে।
তুমি যে পথ বানিয়েছ বলে ভাবো তা নিশ্চিত করো
যাচাই মানে রুট লুকআপ আর ঠিকানা যাচাই, ping নয়। লুকআপ বলে দেয় কোনো গন্তব্য কোন ইন্টারফেস ব্যবহার করবে, আর ঠিকানা যাচাই বলে দেয় গন্তব্যটি আসলে কোন রেঞ্জে থাকে। সফল ping বলে হোস্টটি কোথাও জীবিত আছে, যা প্রশ্ন নয়। কোনো কনফিগারেশন বদলানোর আগে দুটিই চালাও।
ip route get 10.40.0.55
ip -6 route show default
tailscale ping 10.40.0.55
এর সঙ্গে tailnet-এর নিজের দৃষ্টিভঙ্গি মেলাও, যা দেখায় পিয়ারটি সরাসরি সংযুক্ত না রিলে হয়ে আছে। রিলে পথও কাজ করে, আর এটাই ব্যাখ্যা করে সেই লেটেন্সি অভিযোগ যা তুমি যে রুট ডিবাগ করছিলে তার সঙ্গে কোনো সম্পর্কই রাখে না। সাবনেট রাউটার ডকুমেন্টেশন অপরিচিত হলে অনুমোদনের ধাপটি ঢেকে দেয়। তারপর নিজের নেটওয়ার্কের জন্য কোন কাঠামো কোন গন্তব্য ঢাকে তা লিখে রাখো, কারণ পরের যে ব্যক্তি সাইট যোগ করবে সে একই প্রশ্ন করবে।