OpenVPN না WireGuard? পরিচয় ও পরিবহন থেকে সিদ্ধান্ত নিন
কীসমূহ, লগইন প্রবাহ এবং শুধু UDP পরিবহন থ্রুপুটের অনেক আগেই পছন্দ নির্ধারণ করে। চারটি পরীক্ষা চালান এবং মাপার কাজটি সৎ রাখুন।
এই দুটি প্রোটোকল তুলনা করা তখনই কাজে লাগে যখন আপনি সত্যিই যা চালাবেন তা-ই তুলনা করেন। WireGuard পিয়ারদের চেনে পাবলিক কী দিয়ে এবং নিজের প্রোটোকল UDP-এর উপর বহন করে, অন্যদিকে OpenVPN আরও বিস্তৃত প্রমাণীকরণ ব্যবস্থা দেয় এবং সার্ভার দুটোই দিলে UDP বা TCP-এর উপর চলতে পারে। এই পার্থক্যগুলো থ্রুপুট গড়ার অনেক আগেই প্রস্তুতি ও বিকল্প পথ গড়ে তোলে। নিচের চারটি পরীক্ষা ক্রমানুসারে চালান; প্রথম দুটি সাধারণত পছন্দ ঠিক করে দেয়, আর শেষ দুটি বলে সিদ্ধান্তটি ঠিক ছিল কি না।
পরিচয় দিয়ে শুরু করুন, সাইফারের তালিকা দিয়ে নয়
একটি WireGuard পিয়ার একটি প্রাইভেট কী রাখে এবং যে পাবলিক কীগুলোতে সে পৌঁছাতে পারে সেগুলো তালিকাভুক্ত করে। প্রোভাইডার এর চারপাশে একটি অ্যাকাউন্ট পোর্টাল গড়তে পারে, কিন্তু প্রোটোকলের নিজের কোনো ব্যবহারকারীনাম-পাসওয়ার্ড বিনিময় নেই, তাই অ্যাকাউন্টের জীবনচক্র কী বিতরণ করে তার ভেতরেই থাকে। OpenVPN সার্টিফিকেট, বিদ্যমান ডিরেক্টরির বিপরীতে প্লাগইন বা যাচাই স্ক্রিপ্ট ব্যবহার করতে পারে, তাই পরিচয় ব্যবস্থা থাকা প্রতিষ্ঠানগুলো প্রায়ই এটি পছন্দ করে। কোনো নকশাই হারানো ডিভাইস কীভাবে সরানো হবে সেই প্রশ্ন মেটায় না।
| Decision | OpenVPN | WireGuard |
|---|---|---|
| Identity | Certificates, plugins or scripts against an existing directory | One private key per peer, public keys listed for the peers it may reach |
| Transport | UDP or TCP profiles when the server offers both | UDP only in the native protocol |
| Routing and DNS | Server pushes routes and DNS options | AllowedIPs maps ranges to peers, and tooling installs the routes |
| Where it usually breaks | Profile mismatch, expired certificate, failing plugin | Blocked UDP, wrong AllowedIPs, key not installed |
ছোট কনফিগারেশন মানে সরল প্রস্তুতি নয়। একটি প্রাইভেট কী একাধিক মানুষকে দিলে পরবর্তীতে সরানো দ্ব্যর্থক হয়ে যায়, কারণ তা প্রত্যাহার করলে সবাই একসাথে সরে যায়। বাছাই করার আগে ব্যক্তি থেকে কী বা সার্টিফিকেটের ম্যাপিং লিখে রাখুন, তাহলেই প্রোটোকল নির্বাচন অনেক সহজ হবে।
তারপর দেখুন পরিবহন কী অনুমতি দেয়
WireGuard-এর প্রোটোকল UDP ব্যবহার করে। OpenVPN সেবাগুলো UDP ও TCP উভয় প্রোফাইল দিতে পারে, আর যে নেটওয়ার্ক UDP ব্লক বা দুর্বল করে সেখানে দ্বিতীয় বিকল্পটি তাত্ত্বিক নয়, বাস্তব। সার্ভারকে আপনার বেছে নেওয়া প্রোফাইল সমর্থন করতে হবে, আর পোর্ট নম্বর বদলালে টানেল HTTPS হয়ে যায় না বা ফায়ারওয়ালকে তা অনুমোদন করতে রাজি করায় না।
TCP-এর ভেতরে TCP বহন করলে ক্ষতির সময় আচরণও বদলায়, কারণ দুটি স্তরই আলাদাভাবে আবার চেষ্টা করে ও পুনর্বিন্যাস করে। সীমিত নেটওয়ার্কে কাজ করা TCP প্রোফাইল ক্ষতিপূর্ণ নেটওয়ার্কে দুর্বল পারফরম্যান্স দিতে পারে, আর সে কারণেই একটি শ্রেষ্ঠ ঘোষণা না করে দুটি প্রোফাইলই হাতের কাছে রাখা উচিত।
তারপর রাউটিং ও নাম সমাধান যাচাই করুন
WireGuard-এর AllowedIPs ঠিকানা পরিসরগুলোকে পিয়ারদের সাথে মেলায় এবং প্রোটোকলের ভেতরে রাউটিং সিদ্ধান্ত হিসেবে কাজ করে, আর আশপাশের টুলগুলো রুট বসানোর সময় ওই পরিসরগুলো ব্যবহার করে। OpenVPN সার্ভার থেকে রুট ও DNS অপশন পাঠায়। দুই ক্ষেত্রেই ক্লায়েন্ট উঠে আসতে পারে, অথচ অভীষ্ট নীতি অর্ধেকই প্রয়োগ হয়েছে।
ip route show
ip -6 route show
resolvectl status
wg show
সংযুক্ত সূচকে ভরসা করার আগে আউটপুট পড়ুন। ip route show দেখায় ক্লায়েন্ট IPv4-এর জন্য কী বসিয়েছে, আর IPv6 সংস্করণ ধরে ফেলে এমন টানেল যা একটিমাত্র পরিবার বহন করে। resolvectl status দেখায় ক্লায়েন্ট আসলে কোন রিজলভারকে জিজ্ঞাসা করবে, আর wg show ছাপে সেই AllowedIPs যা WireGuard নিজের বলে মনে করে। যদি রুটগুলো পূর্ণ কভারেজের দাবি করার সময়ও রিজলভার স্থানীয় নেটওয়ার্কেই দেখায়, তাহলে DNS টানেলের বাইরে চলে যায়।
তারপর আপনার দরকারের কাজটি মাপুন
ডিভাইস, নেটওয়ার্ক ও গন্তব্য স্থির রাখুন এবং যে ক্লায়েন্ট ও এন্ডপয়েন্ট ব্যবহার করেছেন তা লিখে রাখুন। দুটি সেবা যদি ভিন্ন শহরে বের হয় বা ভিন্ন হার্ডওয়্যারে চলে, তা বলে দিন, কারণ ফলাফল তখন প্রোটোকল নয়, ওই সেবাগুলোর বর্ণনা দেয়।
iperf3 -c 203.0.113.20 -t 30
mtr -rwzbc 50 203.0.113.20
দুটি কমান্ডই দুবার চালান, প্রতি প্রোফাইল জোড়ার জন্য একবার, একই নেটওয়ার্ক ও ডিভাইসে। iperf3 থ্রুপুটের একটি সংখ্যা দেয়, আর mtr পথ এবং ক্ষতি কোথায় দেখা দেয় তা দেয়, যা একটি ডাউনলোড সংখ্যা দেখাতে পারে না। একটি ডাউনলোড সংখ্যা কল যা টের পায় তাও বাদ দেয়: বাড়তি লেটেন্সি, জিটার এবং পুনঃসংযোগে কত সময় লাগে। এগুলো আলাদা করে লিখুন, কারণ যে প্রোটোকল থ্রুপুটে জেতে সে আপনি যে কাজটি সত্যিই চালান তাতে হারতে পারে।
পরিচালিত সংযোগে সামঞ্জস্য, সহায়তা ও নবায়নের পরিশ্রম ছোট বেঞ্চমার্ক পার্থক্যের চেয়ে বেশি গুরুত্বপূর্ণ হতে পারে। ব্যক্তিগত এক্সিটে অপারেটরের লগিং ও এখতিয়ার প্রোটোকলের লেবেলের চেয়ে বেশি জরুরি। দুটি প্রোটোকলই ভালো সংযোগ বহন করতে পারে; সেবা ও তার কনফিগারেশনই ঠিক করে আপনি কী পান।
পরীক্ষার আগে প্রোফাইল জোড়াটি লিখে রাখুন
মাপার আগে প্রতি প্রোটোকলে একটি প্রোফাইল বাছুন এবং লিখে রাখুন প্রতিটির কী করা উচিত: শুধু প্রাইভেট সাবনেট, নাকি নির্দিষ্ট এক্সিটসহ সব ট্রাফিক। যে পরীক্ষা একটি স্প্লিট-টানেল প্রোফাইলকে পূর্ণ-টানেল প্রোফাইলের সাথে তুলনা করে, সে প্রোফাইল মাপে, প্রোটোকল নয়। ক্লায়েন্টের নাম, ক্লায়েন্ট সংস্করণ ও এক্সিটের অবস্থান একই নোটে লিখুন।
তারপর একই কাজটি দুটিতেই চালান, একই নেটওয়ার্কে, একই সেশনে। যদি একটি আদৌ সংযোগ করতে না পারে, সেই ব্যর্থতাই ফলাফল এবং কারণসহ তা রেকর্ডে থাকা উচিত। রেকর্ডটি সেবার নথির সাথে রাখুন যাতে পরের মানুষ নতুন করে শুরু না করে একই জোড়াটি তুলনা করে।