OpenVPN remote-random: এলোমেলো ক্রম, একটি টানেল
remote-random সংযোগের সময় কনফিগার করা রিমোটগুলোর ক্রম এলোমেলো করে। এটি প্রতি অনুরোধে আপনার প্রস্থান বদলায় না, প্যাকেট ভারসাম্য করে না এবং চলমান টানেল বদলায় না।
remote-random যোগ করলে প্রোফাইলটি ঘুরতে থাকা পুলে পরিণত হয় এবং প্রতিটি সংযোগ আলাদা ঠিকানা থেকে আসে—এটাই সাধারণ ধারণা। কিন্তু ডিরেক্টিভটি আসলে যা করে, তা হলো ক্লায়েন্ট সংযোগ শুরু করার সময় রিমোটের তালিকা একবার এলোমেলো করে, তারপর সেই নতুন ক্রমে সেগুলো চেষ্টা করে। শেষে যে টানেলটি ওঠে, সেটি এখনও একটি প্রান্তবিন্দুতেই শেষ হয় এবং সেশনের পুরো আয়ুষ্কাল সেখানেই থাকে।
এই পার্থক্যটি পরীক্ষা এবং গোপনীয়তার দাবি—দুটির জন্যই গুরুত্বপূর্ণ।
সংযোগের সময় অপশনটি কী বদলায়
একটি ক্লায়েন্ট প্রোফাইলে একাধিক remote লাইন থাকতে পারে, প্রতিটির নিজস্ব হোস্টনেম ও পোর্ট সহ। ডিরেক্টিভ ছাড়া সেগুলো ফাইলের ক্রমে চেষ্টা করা হয়; এটি থাকলে সেশন শুরুর সময় তালিকাটি একবার পুনর্বিন্যাস হয় এবং যে ঠিকানাটি প্রথমে সাড়া দেয়, সেটিই জেতে। বাকিগুলো এই প্রচেষ্টার জন্য বিকল্প হিসেবে থাকে, সমান্তরাল পথ নয়। একটিমাত্র রিমোট থাকা প্রোফাইলে ডিরেক্টিভের এলোমেলো করার কিছু থাকে না, এবং এটিই দ্রুততম উপায় যাচাই করার যে এটি আদৌ গুরুত্বপূর্ণ হতে পারে কি না।
OpenVPN-এর ম্যানুয়াল এই অপশনটিকে সংযোগ প্রচেষ্টার ক্রমকে প্রভাবিত করে বলে নথিভুক্ত করে, এবং আচরণে ঠিক এই পরিধিটাই প্রত্যাশা করা উচিত।
পুনঃসংযোগ নতুন একটি নির্বাচন চক্র শুরু করে, তাই পরের সেশন অন্য জায়গায় পড়তে পারে। চলমান টানেল চালু থাকা অবস্থায় নড়ে না।
ভ্রান্ত ধারণা: প্রতিটি অনুরোধ নতুন সার্ভার পায়
প্রতিষ্ঠিত হওয়ার পর টানেলটি সেই সেশনের সব ট্র্যাফিক নির্বাচিত পিয়ারে নিয়ে যায়। প্রতি অনুরোধে পুনর্নির্বাচন নেই, এবং ডিরেক্টিভটি আলাদা আলাদা সংযোগের জন্য লোড ব্যালেন্সার নয়: এটি প্রার্থীদের এলোমেলো করে, প্যাকেট ছড়ায় না। ওই টানেল ভাগ করা প্রতিটি অ্যাপ্লিকেশন একই পিয়ার ভাগ করে। ব্রাউজার তার প্রস্থান সম্পর্কে যা রিপোর্ট করে, তা সেশনভুক্ত, কোনো একক অনুরোধের নয়।
যদি কোনো পরীক্ষায় দুটি ভিন্ন প্রস্থান দেখায়, তবে একটি চতুর অপশন নয়, দুটি আলাদা সেশন খুঁজুন। এই পার্থক্যটিই ব্যাখ্যা করে কেন ব্রাউজার পরীক্ষা ও ডাউনলোড পরীক্ষা একমত না হতে পারে, যখন তাদের মাঝে পুনঃসংযোগ ঘটে।
remote-random-hostname কী জন্য
একই রকম নামের দ্বিতীয় একটি ডিরেক্টিভ রেজোলিউশনের জন্য ব্যবহৃত হোস্টনেম বদলায়, রিমোট তালিকার ক্রম নয়। এটি এমন স্থাপনার জন্য আছে যেখানে round-robin DNS-এর মাধ্যমে একটি নাম একাধিক ঠিকানায় রিজলভ হয়, এবং সেবাটি এর জন্য তৈরি হলেই কেবল এটি ব্যবহার করা উচিত। কেবল রেজোলিউশন ধাপটি বদলায়; প্রার্থী তালিকার ক্রম বদলায় না।
নামগুলো সম্পর্কিত দেখায় বলে এটি চালু করা সাধারণ ভুল। ওয়াইল্ডকার্ড সার্টিফিকেট বা এমন DNS বিন্যাস যা পরিবর্তিত নাম প্রত্যাশা করে না, সেটি সহজেই রিজলভ বা যাচাই করতে ব্যর্থ হবে।
লগ থেকে নির্বাচিত প্রান্তবিন্দু পড়ুন
সিদ্ধান্তে পৌঁছানোর আগে সেশনটি আসলে কোন পিয়ার ব্যবহার করেছে তা লিপিবদ্ধ করুন। বিস্তারিত আউটপুট যে ঠিকানাটি চেষ্টা করা হচ্ছে তা নাম দেয়, আর প্রোফাইল নিজেই দেখায় কতজন প্রার্থী আছে। এলোমেলো করাকে দোষ দেওয়ার আগে সেই সংখ্যাটি লগের ঠিকানার সঙ্গে মিলিয়ে নিন।
grep -c '^remote ' client.ovpn openvpn --config client.ovpn --verb 4 2>&1 | grep -i -E 'attempting|peer connection' openvpn --help | grep -A2 remote-random head -20 client.ovpn
কর্মক্ষমতা তুলনার জন্য অন্য রিমোটগুলো কমেন্ট করে প্রান্তবিন্দুটি স্থির করুন, যাতে পরীক্ষাধীন চলকটি পথ নয়, প্রোটোকল বা ক্লায়েন্ট হয়। গোপনীয়তার প্রশ্নের জন্য সেবার পরিচয় ও লগিং সামগ্রিকভাবে মূল্যায়ন করুন; এলোমেলো করা প্রথম পছন্দ কুকি মুছে দেয় না, অ্যাকাউন্ট লগইন সরায় না, এবং দুই অপারেটরকে সমতুল্য করে না।
প্রেরিত ট্রাস্ট উপাদান এবং সমর্থিত প্রান্তবিন্দুর সেট একসঙ্গে রাখুন। পুনরায় এলোমেলো করা কেবল সেই সেটটি যে ক্রমে চেষ্টা করা হয়, তা বদলায়।