ZeroTier পরিষেবা স্তরে ONLINE এবং নেটওয়ার্ক স্তরে ACCESS_DENIED দেখায়, আর এই দুটি পরস্পরবিরোধী নয়। প্রথমটি আপনার ক্লায়েন্ট ও সমন্বয় অবকাঠামোর মধ্যকার পথ সম্পর্কে একটি বিবৃতি। দ্বিতীয়টি একটি নেটওয়ার্কের সদস্য তালিকা সম্পর্কে একটি বিবৃতি। এদের আলাদা করে পড়ুন, এবং এই মিল আপনাকে ঠিক কোথায় দেখতে হবে তা বলে দেবে।

ONLINE কী মাপে

স্ট্যাটাস কমান্ড জানায় স্থানীয় পরিষেবার কাছে পিয়ার আবিষ্কার সমন্বয়কারী মূল সার্ভারগুলোর পর্যন্ত কাজ করা পথ আছে কি না। এটি কোনো নির্দিষ্ট নেটওয়ার্ক সম্পর্কে কিছু বলে না, এবং কোনো কন্ট্রোলার এই ডিভাইস অনুমোদন করেছে কি না তাও বলে না। তাই কাজ করা সংযোগে একটি নতুন ইনস্টলেশন সঙ্গে সঙ্গে ONLINE জানায়, কেউ কোথাও এটি অনুমোদন করার আগেই।

ONLINE-কে প্লাম্বিং সম্পর্কে বিবৃতি এবং প্রতি-নেটওয়ার্ক স্ট্যাটাসকে সদস্যতা সম্পর্কে বিবৃতি হিসেবে ধরুন। একটিকে দিয়ে অন্যটি ব্যাখ্যা করাই এই বিভ্রান্তির বেশিরভাগের শুরু।

ACCESS_DENIED আপনাকে কী করতে বলে

ব্যক্তিগত নেটওয়ার্কে কন্ট্রোলার একটি সদস্য তালিকা রাখে। সেই তালিকায় না থাকা, বা তালিকায় থাকলেও অনুমোদিত না হওয়া নোড ACCESS_DENIED পায়, সঙ্গে মৌলিক হ্যান্ডশেকের বাইরে কোনো কনফিগারেশন পায় না। সমাধান কন্ট্রোলারের দিকে এবং এতে মেশিনের নাম নয়, নোডের ঠিকানা দরকার, তাই আপনার ক্লায়েন্ট আউটপুটের ঠিকানাটি সদস্য এন্ট্রির সঙ্গে মিলিয়ে সেই এন্ট্রি অনুমোদন করুন।

ক্লায়েন্ট পুনরায় ইনস্টল করা ভুল প্রথম পদক্ষেপ, কারণ নতুন ইনস্টলেশন নতুন পরিচয় নিয়ে আসে এবং পুরোনো অনুমোদন আর তার উপর প্রযোজ্য হয় না। নেটওয়ার্কটি পাবলিক হলে একই স্ট্যাটাস ভিন্ন অবস্থার দিকে ইঙ্গিত করে, তাই অনুমোদন চাওয়ার আগে কন্ট্রোলার মালিককে জিজ্ঞাসা করুন নেটওয়ার্কটি ব্যক্তিগত কি না। ওই একটি প্রশ্নই বাকি কথোপকথন ঠিক করে দেয়।

স্ট্যাটাস লেখা একটি শাখা, রায় নয়

প্রতিটি স্ট্যাটাস পরবর্তী পরীক্ষাকে সংকুচিত করে, আর এগুলোকে একটি ব্যর্থতার বার্তা হিসেবে পড়াই দুই মিনিটের সমাধানকে সারা বিকেলের পুনরায় ইনস্টলে বদলে দেয়। NOT_FOUND মানে আপনি যে শনাক্তকারক লিখেছেন তা ওই কন্ট্রোলারে নেই, তাই সদস্যতার প্রশ্নে এখনো পৌঁছানো হয়নি। REQUESTING_CONFIGURATION মানে নোড কন্ট্রোলারে পৌঁছেছে এবং এমন কনফিগারেশনের অপেক্ষায় আছে যা আসছে না, যা অনুমোদনের বদলে পথের দিকে ইঙ্গিত করে। OK মানে সদস্যতা ও কনফিগারেশন জায়গায় আছে, তাই পরের প্রশ্নটি হলো বরাদ্দ করা ঠিকানা এবং তারপর পরিষেবাটি নিজে।

দুটি কমান্ড এই সব আলাদা করে, আর দুটিই একই ক্লায়েন্ট পড়ে। ZeroTier CLI রেফারেন্স প্রতি নেটওয়ার্কের স্ট্যাটাস স্ট্রিংগুলো তালিকাভুক্ত করে যা তারা ফেরত দেয়। প্রথম কমান্ডটি পরিষেবার দৃশ্য এবং দ্বিতীয়টি প্রতি নেটওয়ার্কের:

zerotier-cli status
zerotier-cli listnetworks

অ্যাডমিনিস্ট্রেটরের কাছে সাহায্য চাইলে স্ট্যাটাস লেখাটি রাখুন। একটি স্থানীয় জয়েন কমান্ড নিশ্চিতকরণ ছেপেছে মানে শুধু অনুরোধটি স্থানীয়ভাবে গৃহীত হয়েছে, যা ভেতরে গ্রহণ হওয়ার থেকে আলাদা সত্য।

সদস্যতা একটি পরিচয়ের অন্তর্গত

ক্লায়েন্টের পরিচয় ফাইলগুলোই কন্ট্রোলার চেনে, তাই কনফিগারেশন অন্য মেশিনে কপি করা বা পুনরায় ইনস্টলের সময় পরিচয় মুছে ফেলা এমন সদস্য তৈরি করে যা কন্ট্রোলার কখনো দেখেনি। এজন্যই আবার সদস্য রেকর্ড মুছে ফেলা তার অনুমোদন প্রত্যাহার করার থেকে আলাদা। অনুমোদিত নোড যা এখনো চলছে চেষ্টা চালিয়ে যায়, আর প্রত্যাহারের বদলে মোছা রেকর্ড একই ঠিকানা থেকে নতুন অনুরোধ হিসেবে ফিরে আসতে পারে।

কোনো ডিভাইস অবসরে নিলে আগে তার অনুমোদন প্রত্যাহার করুন এবং কিছু সরানোর আগে নিশ্চিত করুন এন্ট্রিটি সেই অবস্থা প্রতিফলিত করে। ক্রমটাই পরিষ্কার অপসারণ আর রহস্যময় পুনরায় যোগদানের মধ্যে পার্থক্য।

পরিবর্তনের পরে যাচাই করুন

পরিবর্তন করা কমান্ডটির বদলে নেটওয়ার্ক এন্ট্রিটি আবার পড়ুন। চারটি প্রশ্ন ফলাফল ঢেকে দেয়, এবং এদের যেকোনো একটি ভুল হতে পারে যখন বাকিগুলো ঠিক দেখায়:

zerotier-cli listnetworks
ip -br addr show
ping -c 2 10.147.20.5
ip route get 10.147.20.5

প্রথমটি প্রতিটি নেটওয়ার্কের সদস্যতা ও বরাদ্দ করা ঠিকানা ছাপে, আর দ্বিতীয়টি দেখায় কোনো ইন্টারফেস সত্যিই সেই ঠিকানা পেয়েছে কি না। শেষ দুটি প্রমাণ করে নেটওয়ার্কের একটি পিয়ার উত্তর দেয় এবং কোন ইন্টারফেস ট্রাফিক বহন করে। কোন কমান্ড কোন প্রশ্নের উত্তর দিয়েছে তা টুকে রাখুন, যাতে পরের ব্যক্তি স্মৃতি নয়, প্রমাণ থেকে শুরু করেন।

সদস্যতা OK এবং ঠিকানা আছে কিন্তু পিয়াররা উত্তর দেয় না হলে সমস্যাটি রাউটিং বা পিয়ারের নিজের নীতিতে সরে গেছে। স্ট্যাটাস লেখাটি ওই কথোপকথন থেকে বাদ দিন, কারণ এটি ইতিমধ্যে নিজের কাজ করেছে। সদস্য রেকর্ড ও পথ আলাদা বিষয়, আর যত দ্রুত এদের আলাদা করা যায় তত দ্রুত তদন্ত শেষ হয়।

সম্পর্কিত নিবন্ধ