«সংযোগ বিচ্ছিন্ন» চাপলে কাজ হয়, আর দশ সেকেন্ড পরে টানেল আবার ফিরে আসে। এই চক্রটি খুব কমই VPN ক্লায়েন্টের অসদ্ব্যবহার; এটি একটি পুনরুদ্ধার স্ক্রিপ্ট যা কেবল একটি প্রশ্ন করেছিল — «এটা কি বন্ধ আছে?» — এবং সংযোগ করে তার উত্তর দিয়েছিল। ব্যবহারকারী যে প্রশ্নের উত্তর দিয়েছেন তা সিস্টেম যে প্রশ্নের প্রতিবেদন করে তা থেকে আলাদা করলেই সমাধান হয় দীর্ঘতর অপেক্ষা নয়, অল্প একটু অবস্থা।

দুটি প্রশ্ন, একটি নয়

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

IntentWhat you observeWhat to do
WantedDropped unexpectedlyAllow one supported recovery attempt
Paused by the userDisconnectedDo nothing until intent changes
WantedAlready connectingWait instead of starting a rival attempt
WantedAuthentication needs a personPrompt, then stop replaying credentials

সারিগুলোকে কেসের তালিকা নয়, নীতি হিসেবে পড়ুন। দ্বিতীয় সারিটিই বেশিরভাগ স্ক্রিপ্ট বাদ দেয়, এবং এটিই একমাত্র সারি যা একটি মনিটরকে নিজের সঠিকতা নিয়ে জেদ করা একটি মেশিন থেকে আলাদা করে।

পর্যবেক্ষিত স্ট্যাটাস কোনো পছন্দ নয়

Apple-এর Network Extension স্ট্যাটাস মডেল সংযোগ-স্থাপন, সংযুক্ত, বিচ্ছিন্নকরণ, বিচ্ছিন্ন এবং পুনরুদ্ধার — এই পাঁচটি অবস্থার প্রতিবেদন করে। পাঁচটিই সংযোগের বর্ণনা দেয়। এগুলোর কোনোটিই বলে না «ব্যবহারকারী চেয়েছেন এই প্রোফাইলটি বিরতিতে থাকুক», কারণ সেটি আদৌ সংযোগের কোনো অবস্থা নয়। যে ক্লায়েন্টগুলো ওই ফ্রেমওয়ার্কের উপর তৈরি নয়, তারা নিজেদের সমর্থিত নিয়ন্ত্রণ ও স্ট্যাটাস কল প্রকাশ করে এবং নিজেদের শব্দভাণ্ডারেই একই রেখা টানে।

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

scutil --nc list
scutil --nc status "Office VPN"

এই প্রোফাইল চালু করার আর কার অনুমতি আছে

আপনার হেল্পার যে বিরতির প্রতিশ্রুতি দেয়, তা একই প্রোফাইলের অন্য মালিকদের মতোই শক্তিশালী। একটি On Demand নিয়ম, একটি পরিচালিত কনফিগারেশন বা একটি দ্বিতীয় ক্লায়েন্ট — সবাই সংযোগ চাইতে পারে, আর আপনার হেল্পার ঠিক যেমন লেখা আছে তেমন আচরণ করেও ভাঙা দেখাবে।

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

পুনরায় চেষ্টাগুলোকে একঘেয়ে করুন

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

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

বিরতি ও ট্র্যাফিক নীতি আলাদা প্রতিশ্রুতি

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

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

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