হেডলেস VPN যাচাই: একবারে একটি ফ্লো, প্রমাণসহ
হেডলেস বক্সের জন্য এমন অনুরোধ দরকার যার উত্তর আপনি পড়তে পারেন। প্রতিটি অ্যাড্রেস ফ্যামিলি, কনটেক্সট ও গন্তব্য পরীক্ষা করুন, তারপর ফলাফল কী ঢাকেনি তা লিখে রাখুন।
হেডলেস বক্সে খোলার মতো ব্রাউজার নেই, দেখার মতো তালা নেই, তাই যাচাইকে এমন অনুরোধ হতে হবে যার উত্তর আপনি পড়তে পারেন। এটি তুচ্ছ মনে হয় যতক্ষণ না খেয়াল করেন, একটি একক এক্সিট-অ্যাড্রেস ফলাফল দিয়েই এমন ডিভাইস প্রত্যয়িত করা হচ্ছে যা এক ডজন সার্ভিস, দুইটি অ্যাড্রেস ফ্যামিলি ও একটি প্রক্সি চালায়। নিচের আলোচনা একবারে একটি সীমিত প্রমাণ তৈরি করে, ওয়ার্কলোড যে কনটেক্সটে সত্যিই চলে সেই একই কনটেক্সটে।
পরীক্ষাটি কী প্রমাণ করবে তা ঠিক করুন
কিছু চালানোর আগে প্রত্যাশাটি এক লাইনে লিখুন: কোন ফ্লো, কোন ইন্টারফেস দিয়ে, কোন গন্তব্যে, এবং অপর প্রান্তে কী দেখা উচিত। ঘোষিত প্রত্যাশা ছাড়া পরীক্ষা এমন একটি সংখ্যা দেয় যা কেউ ব্যাখ্যা করতে পারে না।
সবচেয়ে কাজের সংস্করণে একটি অনুমোদিত এন্ডপয়েন্টের নাম থাকে যা সে যে সোর্স অ্যাড্রেস দেখেছে তা রিপোর্ট করে।
সেই এন্ডপয়েন্টই একমাত্র অংশ যা আপনাকে ব্যবস্থা করতে হবে। বাকি সব ক্লায়েন্ট-সাইড পর্যবেক্ষণ, আর ক্লায়েন্ট-সাইড পর্যবেক্ষণ মজার উপায়ে ভুল হয়ে যায়।
সঠিক কনটেক্সটে পর্যবেক্ষণ চালান
অ্যাডমিনিস্ট্রেটরের শেল ওয়ার্কলোডের পরিবেশ নয়। এতে ভিন্ন প্রক্সি ভেরিয়েবল, অন্য নেমস্পেসে ভিন্ন রাউটিং টেবিল, বা অন্য ব্যবহারকারীর এনভায়রনমেন্ট ফাইল থাকতে পারে। যে জিনিসটি যাচাই করছেন তার মতো একই হোস্ট, কনটেইনার, নেমস্পেস বা সার্ভিস কনটেক্সটে পরীক্ষাটি চালান। নইলে আপনি নিজের শেল মাপছেন।
সাধারণ হোস্টে এর মানে একই ব্যবহারকারী ও একই ইউনিট। কনটেইনার এস্টেটে এর মানে হোস্ট থেকে পরীক্ষা না করে কনটেইনারের নেটওয়ার্ক নেমস্পেসে ঢোকা। systemd সার্ভিসে এর মানে একই সেটিংসের একটি ক্ষণস্থায়ী ইউনিট হতে পারে।
নিচের অনুরোধটি কেবল তখনই অর্থবহ, যখন আপনি সঠিক কনটেক্সটে আছেন।
অ্যাড্রেস ফ্যামিলিগুলো আলাদাভাবে যাচাই করুন
প্রতিটি ফ্যামিলি স্পষ্টভাবে চান, কারণ সফল IPv4 অনুরোধ IPv6 পথ একেবারেই ব্যবহার করে না। --ipv4 ও --ipv6 সিলেক্টর নির্বাচন বাধ্য করে, আর দুই ফলাফলের পার্থক্যই নিজে তথ্য।
curl --ipv4 https://probe.example/observed-source
curl --ipv6 https://probe.example/observed-sourceব্যর্থ IPv6 অনুরোধ কার্যকর ব্লকের প্রমাণ নয়। এর মানে হতে পারে এন্ডপয়েন্টের IPv6 অ্যাড্রেস নেই, DNS ব্যবহারযোগ্য কিছু ফেরত দেয়নি, বা ডিভাইসের আদৌ IPv6 রুট নেই। সিদ্ধান্তে পৌঁছানোর আগে ব্যর্থতাটি পড়ুন। টানেলের মধ্য দিয়ে সফল IPv6 অনুরোধই একমাত্র ফলাফল যা প্রমাণ করে IPv6 পথ ঢাকা পড়েছে।
দুটি উত্তর পাশাপাশি লিখুন। এর একটি একা অর্ধেক তথ্য।
এক্সিট যাচাই যা মিস করে সেই চারটি জিনিস যোগ করুন
এক্সিট অ্যাড্রেস একটি প্রশ্নের উত্তর দেয়। আরও চারটি ঠিক করে টানেল ডিজাইন অনুযায়ী আচরণ করছে কি না।
| Check | What it proves | What it does not |
|---|---|---|
| Included and excluded destinations | The split behaves as designed for those flows | Coverage of any other destination |
| Resolver path | Where a fresh lookup actually travelled | Where a cached answer came from |
| Tunnel-down behaviour | The failure policy for a new request | What an already open connection does |
| Reconnect and restart | The requirement survives the lifecycle event | Behaviour under load or partial failure |
গন্তব্য নীতি সবার আগে: ডিজাইনে বিভাজন থাকলে যে ফ্লো অন্তর্ভুক্ত হওয়া উচিত ও যেটি বাদ পড়া উচিত দুটোই পরীক্ষা করুন। তারপর DNS, যেখানে কনফিগার করা মানের বদলে প্রকৃত রিজলভার পথ দেখেন, কারণ ক্যাশ করা উত্তর বা ছাপা সেটিং নতুন লুকআপ কোথায় গেছে সে সম্পর্কে কিছুই বলে না।
ব্যর্থতার আচরণের জন্য পরিকল্পনা ও সংরক্ষিত পুনরুদ্ধার পথ দরকার। টানেল অনুপলব্ধ থাকার সময় নতুন অনুরোধ পর্যবেক্ষণ করুন, এবং মনে রাখুন পুরোনো খোলা সংযোগ ব্যর্থতা নীতির প্রমাণ নয়। লাইফসাইকল শেষে: পুনঃসংযোগ বা সার্ভিস রিস্টার্টের পর পর্যবেক্ষণটি পুনরাবৃত্তি করুন যদি সেই ঘটনাগুলো প্রয়োজনকে প্রভাবিত করে।
প্রমাণ লিখুন, রায় নয়
প্রতিটি ফলাফলের জন্য প্রসেস কনটেক্সট, গন্তব্য, অ্যাড্রেস ফ্যামিলি, সময় ও পর্যবেক্ষিত সোর্স রাখুন। এই সেটটি আপনার চালানো ফ্লোগুলোর সীমিত প্রমাণ, এবং এটি প্রতিরক্ষাযোগ্য ঠিক কারণ এটি বলে দেয় এটি কী ঢেকেছে।
এটি VPN অপারেটরের রেকর্ডের নিরীক্ষা নয়, এবং ডিভাইসের প্রতিটি ভবিষ্যৎ অ্যাপ্লিকেশনের জন্য সনদও নয়।
ফলাফলের পাশে সীমাগুলো লিখুন। যে পরীক্ষা বলে দেয় সে কী ঢাকেনি তা পর্যালোচনা টিকে যায়, আর যে দাবি করে ডিভাইস যাচাই হয়েছে তা টেকে না। আপনি যে ফ্যামিলি সিলেক্টর ব্যবহার করেছেন তার পাশে curl ম্যানুয়াল রাখুন, এবং চার সারির টেবিলটি ফলাফলের সঙ্গে রাখুন।