কেন অ্যাডাপ্টার ক্রম আপনার ল্যাব VPN রুট নির্ধারণ করে না
হাইপারভাইজারে অ্যাডাপ্টার 1 থাকা গেস্ট কোন রুট নেবে তা বলে না। প্রতিটি হার্ডওয়্যার পরিবর্তনের পর প্রিফিক্স, মেট্রিক ও নীতি নিয়ম মেলান।
হাইপারভাইজারের তালিকায় অ্যাডাপ্টার 1 প্রথমে থাকা কেবল প্রদর্শনের ক্রম, গেস্টের রাউটিং টেবিল তা পড়ে না। পথ নির্ধারণ করে প্রিফিক্স, মেট্রিক এবং দুটির আগেই প্রযোজ্য যেকোনো নীতি নিয়ম। তাই ল্যাব VM-এ একটি ব্রিজড অ্যাডাপ্টার যোগ করলে দ্বিতীয় ডিফল্ট পথ তৈরি হতে পারে, অথচ পুরোনো NAT ইন্টারফেস এখনও উপস্থিত ও দ্বিতীয় নম্বরযুক্ত হিসেবে দেখায়। ফল হলো এমন VM যা কখনও টানেল ব্যবহার করে আর কখনও করে না, অথচ ব্যাখ্যা করার মতো কোনো কনফিগারেশন পরিবর্তন নেই।
তিনটি শর্ত পথ নির্ধারণ করে
তিনটি শর্ত হলো কোন প্রিফিক্স বেশি নির্দিষ্ট, প্রিফিক্স সমান হলে মেট্রিক কী করে, এবং হার্ডওয়্যার পরিবর্তনের পর গেস্ট কোন নিয়ম প্রয়োগ করেছে। প্রতিটির উত্তর একটি কমান্ডেই পাওয়া যায়, এবং কোনোটিতেই হাইপারভাইজারের নম্বরায়ন জড়িত নয়।
শেষ কথাটাই সিদ্ধান্ত: VPN এন্ডপয়েন্টের নিজের ঠিকানার জন্য কোন প্রিফিক্স জিতবে তা যদি বলতে না পারেন, তবে আপনার রাউটিং নীতি নেই, আপনার আছে এমন একটি টপোলজি যা আজ কেবল দৈবক্রমে কাজ করছে।
শর্ত এক: কোন প্রিফিক্স জেতে
10.8.0.0/24-এর ভিতরের কোনো ঠিকানার জন্য সেই রুট ডিফল্ট রুটকে হারায়, মেট্রিক ও অ্যাডাপ্টার ক্রম নির্বিশেষে। এজন্য নির্দিষ্ট রুট বসানো VPN ক্লায়েন্ট কম মেট্রিকের দ্বিতীয় অ্যাডাপ্টার এলেও কাজ চালিয়ে যায়: খরচ বিবেচনার আগেই নির্দিষ্টতা জিতে যায়। আপনি যে টেবিলটি ব্যবহৃত মনে করছেন তা ip route show দিয়ে, আর একটি নির্দিষ্ট গন্তব্যের জন্য কার্নেল আসলে কী উত্তর দেবে তা ip route get 203.0.113.9 দিয়ে যাচাই করুন।
এন্ডপয়েন্টের নিজের ঠিকানাই সবচেয়ে গুরুত্বপূর্ণ পরীক্ষা। VPN সার্ভারের ঠিকানা যদি সদ্য যোগ করা ব্রিজড অ্যাডাপ্টার দিয়ে রিজলভ হয়, তবে টানেল কখনও তৈরি নাও হতে পারে, অথবা তৈরি হয়ে নিজের ট্রান্সপোর্ট পথ হারাতে পারে। টানেল ইন্টারফেসই উত্তর—এমন ধরে না নিয়ে ওই ঠিকানাটিই আলাদাভাবে জিজ্ঞাসা করুন।
শর্ত দুই: মেট্রিক কী করে আর কী করে না
এর ভূমিকা বেশিরভাগ মানুষের প্রত্যাশার চেয়ে সংকীর্ণ। মেট্রিক একই প্রিফিক্সের রুটগুলোর মধ্যে সমতা ভাঙে; প্রশস্ততর রুটকে আরও নির্দিষ্ট রুটের ওপর জেতাতে দেয় না। সমতার মধ্যে ছোট সংখ্যা অগ্রাধিকার পায়, আর বিভিন্ন অপারেটিং সিস্টেম বিপরীত দিকে গণনা করে, তাই Linux ও Windows-এর মধ্যে কপি করা পরামর্শ প্রায়ই নিজের বিরুদ্ধেই যায়।
গেস্টে ip route show প্রতিটি রুটের পাশে মেট্রিক দেখায়, আর Windows-এ Get-NetRoute একটি InterfaceMetric এবং রুট মেট্রিক দেখায়। দুটোই পড়ুন, কারণ কার্যকর অগ্রাধিকার একটি ক্ষেত্র নয়, যোগফলও হতে পারে। দুটি ডিফল্ট রুট থাকলে সেটাই মূল আবিষ্কার: গেস্টের বেরোনোর দুটি পথ আছে, আর কোনটি জিতবে তা এমন সংখ্যার ফাংশন যা হার্ডওয়্যার পরিবর্তনে বদলে যেতে পারে।
শর্ত তিন: গেস্ট আসলে কী প্রয়োগ করেছে
কনফিগারেশন আর প্রয়োগকৃত অবস্থা এক নয়। সব প্ল্যাটফর্মে হার্ডওয়্যার পরিবর্তনের পর ইন্টারফেসের নাম স্থির থাকে না, আর নামের ভিত্তিতে মেলা কনফিগারেশন এখন কোনো কিছুতে প্রয়োগ নাও হতে পারে।
উদ্দিষ্ট অবস্থা নয়, প্রয়োগকৃত অবস্থা যাচাই করুন। ip -br link এখন যে ইন্টারফেসগুলো আছে তা দেখায়, আর NetworkManager হোস্টে nmcli connection show দেখায় কোন প্রোফাইল কোন ডিভাইসে বাঁধা। বাঁধতে ব্যর্থ প্রোফাইল ইন্টারফেসকে ঠিকানাহীন অবস্থায় চালু রেখে দেয়, যা রাউটিং সমস্যার মতো দেখায় কিন্তু নামকরণের সমস্যা। পুনরুদ্ধার করা স্ন্যাপশট এটিকে আরও খারাপ করে, কারণ গেস্টের সংরক্ষিত অবস্থা এমন অ্যাডাপ্টার পরিচয়ের উল্লেখ করতে পারে যা নতুন হার্ডওয়্যার আর দেয় না।
ল্যাব টপোলজি পুনরুৎপাদনযোগ্য রাখুন
উদ্দিষ্ট ভার্চুয়াল নেটওয়ার্ক সংযুক্তিগুলো গেস্ট কনফিগারেশনের সঙ্গে সংরক্ষণ করুন, যাতে ভূমিকা থেকে অ্যাডাপ্টারে ম্যাপিং তালিকার অবস্থান থেকে অনুমান না করে লেখা থাকে।
নাম দেওয়ার জন্য সাধারণত চারটি ভূমিকা যথেষ্ট: প্রাইভেট লিংক, ম্যানেজমেন্ট, বাইরের ট্রান্সপোর্ট ও টানেল। প্রতিটির জন্য ফাইলে একটি নির্দিষ্ট অ্যাডাপ্টার ও একটি নির্দিষ্ট গেস্ট ইন্টারফেস নির্ধারিত হওয়া উচিত।
তারপর হার্ডওয়্যার পরিবর্তন, রিস্টার্ট বা পুনরুদ্ধার করা স্ন্যাপশটের পর প্রকৃত অ্যাপ্লিকেশন পরীক্ষা করুন এবং সেই পরীক্ষায় VPN এন্ডপয়েন্টের রুটও অন্তর্ভুক্ত করুন। গেটওয়ে VM যদি একমাত্র নির্গমন হওয়ার কথা হয়, তবে যাচাই করুন যে পরীক্ষার VM-এর অনিচ্ছাকৃত দ্বিতীয় ডিফল্ট পথ নেই, কারণ ব্রিজড অ্যাডাপ্টার ঠিক দ্বিতীয় ডিফল্টই যোগ করে। হাইপারভাইজার কনসোল থেকে নয়, গেস্ট থেকেই পরীক্ষা করুন, কারণ কোনটি কোন ইন্টারফেস তা নিয়ে দুটো ভিন্নমত পোষণ করতে পারে।
VirtualBox নেটওয়ার্কিং ডকুমেন্টেশন অ্যাডাপ্টার মোডগুলো এবং প্রতিটি কীসের সঙ্গে যুক্ত হয় তা বর্ণনা করে, দ্বিতীয়টি যোগ করার আগে পড়ার মতো অংশটি ঠিক সেটাই। যে ল্যাব প্রতিটি ভূমিকায় কোন অ্যাডাপ্টার কাজ করে তা চিহ্নিত করে, সেখানে রুট পরিবর্তন ব্যাখ্যাযোগ্য হয়। আর যে ল্যাব হাইপারভাইজারের নম্বরায়নের ওপর নির্ভর করে, সেখানে প্রতিটি পরিবর্তনই পরীক্ষা হয়ে দাঁড়ায়।