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

float কী শিথিল করে, আর কী কখনও শিথিল করে না

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

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

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

যে প্যাকেট সেশন সরায় তাকে প্রমাণীকরণ করতে হবে

কনফিগার করা রিমোটের বিপরীতে স্বাভাবিক উপায়ে একটি সেশন শুরু করুন, আর ম্যাপিং বদলালে কী ঘটে তা float সামলায়। প্রবাহের মাঝপথে নম্বর বদলানো মোবাইল অপারেটর, পোর্ট ম্যাপিং পুনরায় লেখা NAT গেটওয়ে, বা আপলিংক বদলানো ল্যাপটপ সবই একই আকার তৈরি করে: নতুন টাপল থেকে প্রত্যয়িত প্যাকেট, যা পুরনোটিতে এখনও বিশ্বাস করা একটি সেশনে পৌঁছায়।

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

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

আবিষ্কার সম্পূর্ণ আলাদা একটি ব্যবস্থা

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

অপশনটি আরেকবার যোগ করলে নতুন ঠিকানায় রুট না থাকার ক্ষতি পূরণ হয় না। পিয়ার নীরব থাকলেও তা সাহায্য করে না, কারণ নীরব পিয়ার কখনও সেই প্রত্যয়িত প্যাকেট পাঠায় না যা কিছু সরাতে পারত।

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

যখন NetworkManager প্রোফাইলের মালিক

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

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

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

ধরে নেওয়ার বদলে রূপান্তরটি প্রমাণ করুন

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

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

শেষে, কেবল সেই ক্ষেত্রটির বর্ণনা দিন যা আপনি প্রয়োগ করেছেন। সেশনের সময় সফল ঠিকানা পরিবর্তন এর প্রমাণ নয় যে DNS মাইগ্রেশন, ভিন্ন ক্লায়েন্ট বাস্তবায়ন বা পুনর্নির্মিত প্রোফাইল একইভাবে আচরণ করবে। link-options ডকুমেন্টেশন অপশনটির পরিধি নিখুঁতভাবে বলে; আপনার পরীক্ষা লগে বলা উচিত আপনি সেই পরিধির কোন অংশ সত্যিই কভার করেছেন।

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