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

তালিকাটি আসলে কী মাপল

একটি পাবলিক ডিরেক্টরি শেষ-পরীক্ষার সময়, পর্যবেক্ষিত রাউন্ড-ট্রিপ সংখ্যা, সেশন সংখ্যা এবং মাঝে মাঝে প্রোটোকল তালিকার মতো ক্ষেত্র রাখে। এগুলোর প্রতিটি প্রকল্পের নিজস্ব দৃষ্টিকোণ থেকে শেষ সফল পর্যবেক্ষণ বর্ণনা করে, আপনার প্যাকেট পৌঁছানোর মুহূর্তে নোডের অবস্থা নয়।

সংখ্যার চেয়ে সতেজতা বেশি জরুরি। চার মিনিট আগে পরীক্ষিত একটি নোড আর চার ঘণ্টা আগে পরীক্ষিত একটি নোড একই সবুজ চিহ্ন দেখাতে পারে, এবং তাদের মধ্যে একটিই এখনো রেকর্ড করা অবস্থার মতো দেখায়। রং নয়, টাইমস্ট্যাম্প খুঁজুন।

স্বেচ্ছাসেবক পরিচালনা পরিবর্তনের দ্বিতীয় উৎস যোগ করে, যা কোনো মনিটর সারাতে পারে না। পরিচালক হয়তো ল্যাপটপ রিবুট করছেন, ব্যান্ডউইথ ফুরিয়ে যাচ্ছে, আইএসপি বদলাচ্ছেন, বা শুধু ঢাকনা বন্ধ করছেন। তালিকার এন্ট্রি একটি প্রার্থী, আর এটিকে সেবা-স্তরের চুক্তি ভাবা একটি শ্রেণিগত ভুল।

ক্লায়েন্টের ধাপগুলো দেখুন, স্পিনার নয়

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

নাম সমাধান দিয়ে শুরু করুন। যদি হোস্টনাম সমাধান না হয়, নোডের প্রাপ্যতা নিয়ে কিছুই পরীক্ষা হয়নি, কারণ সংযোগটি কখনো আপনার মেশিন ছাড়েনি। এরপর ট্রান্সপোর্ট: প্রত্যাখ্যাত বা সময়-শেষ হওয়া TCP বা UDP বিনিময় বলে দেয় এন্ডপয়েন্ট সেই পোর্টে উত্তর দিচ্ছে না, যা নোড সম্পর্কে একটি বাস্তব আবিষ্কার। তারপর দরকষাকষি ও প্রমাণীকরণ, যেখানে ভুল সার্টিফিকেট, মেয়াদোত্তীর্ণ প্রোফাইল বা বেমানান সাইফার ব্যর্থ হয়, অথচ নোড পুরোপুরি সুস্থ। টানেল সাজানোর পরেই কেবল রাউটিং বা DNS ত্রুটি শেষ ধাপটি ব্যাখ্যা করতে পারে।

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

প্রতি চেষ্টায় একটি চলক

একই ক্লায়েন্ট, একই অ্যাক্সেস নেটওয়ার্ক ও একই প্রোফাইল ফরম্যাটে প্রার্থীদের তুলনা করুন, শুধু এন্ডপয়েন্ট বদলান। নইলে ব্যর্থতা আপনারও হতে পারে, আর আপনি তা নোডের ওপর আরোপ করবেন।

একটি ধরন দাঁড় করাতে দুটি চেষ্টাই যথেষ্ট, আর তৃতীয়টি তা নিশ্চিত করে। যদি A নোড ট্রান্সপোর্ট ধাপে ব্যর্থ হয় আর B নোড প্রমাণীকরণে ব্যর্থ হয়, তবে আপনার একটি পুরোনো তালিকা নয়, দুটি আলাদা সমস্যা আছে।

যখন প্রতিটি নোড একইভাবে ব্যর্থ হয়

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

আকৃতি-বদলানো নেটওয়ার্কের ঘটনাটি সচেতনভাবে পরীক্ষা করুন। কিছু অ্যাক্সেস নেটওয়ার্ক ওয়েবে HTTPS অনুমোদন করে আর অন্য প্রোটোকল ফেলে দেয়, ফলে তালিকা নির্ভুল থাকলেও প্রতিটি প্রার্থী মৃত দেখায়। ব্রাউজারে একটি পৃষ্ঠা লোড আর একটি কাঁচা সংযোগ চেষ্টার তুলনা এক মিনিটেরও কমে ওই দুই পরিস্থিতি আলাদা করে।

ব্যর্থতাটি যে ধাপে ঘটেছে সেখানেই পড়ুন

টার্মিনাল থেকে চেষ্টাটি পুনরায় চালান যাতে ধাপগুলো দেখা যায়। নিচের তিনটি কমান্ড নাম সমাধান করে, পোর্ট উত্তর দিচ্ছে কি না পরীক্ষা করে, এবং OpenVPN প্রোফাইল থেকে দরকষাকষির লাইনগুলো ছাপে:

dig +short node.example.net
curl -s --max-time 5 telnet://node.example.net:443
openvpn --config node.ovpn --verb 4 2>&1 | grep -iE "TLS|AUTH|PUSH"

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

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