দূরবর্তী ব্যবহারকারীদের একটি ভৌত LAN-এ একটি প্রিন্টার ও একটি ফাইল সার্ভারে পৌঁছাতে হয়, আর সবসময় চালু থাকা একমাত্র Linux বাক্সটি একটি VirtualBox VM। VM-টিকে সেই LAN-এ ব্রিজ করা হলো প্রথম অর্ধেক। দ্বিতীয় অর্ধেক হলো এমন একটি ফেরার রুট যা LAN-এর প্রতিটি ডিভাইস সত্যিই ব্যবহার করবে, আর সেটিই অধিকাংশ সেটআপে বাদ পড়ে। এটি না থাকলে টানেল সংযুক্ত হয়, ক্লায়েন্ট গেটওয়েকে পিং করে, আর অন্য কিছুই উত্তর দেয় না।

এমন ঠিকানা ব্যবহার করুন যেখানে পৌঁছানো যায়

VM-এর LAN অ্যাডাপ্টারকে সেই নেটওয়ার্কের জন্য অনুমোদিত Bridged Adapter সংযুক্তিতে সেট করুন, এবং স্বাভাবিক বরাদ্দ প্রক্রিয়ার মাধ্যমে এটিকে একটি ঠিকানা দিন। তখন VM-টি ভৌত LAN-এ অন্য যেকোনো হোস্টের মতো দেখা যায়। এর ডিফল্ট রুটকে অবশ্যই আসল গেটওয়ে ব্যবহার করতে হবে, যাতে VPN পিয়ারের সঙ্গে এনক্রিপ্ট করা পরিবহন পৌঁছানোযোগ্য থাকে। LAN-এর পরবর্তী হপ হিসেবে VirtualBox NAT-এর ডিফল্ট ঠিকানা ব্যবহার করবেন না, কারণ সেই ঠিকানাটি একটি ভার্চুয়াল NAT-এর পিছনে থাকে এবং হোস্ট বা LAN-এর অন্য মেশিনের জন্য on-link নয়।

LAN router:          192.168.70.1/24
VirtualBox host:     192.168.70.5/24
VPN gateway VM:      192.168.70.10/24
Example LAN service: 192.168.70.40
VPN client pool:     10.80.0.0/24

পুল বেছে নেওয়ার আগে দূরবর্তী ব্যবহারকারীদের হোম নেটওয়ার্কের সঙ্গে ওভারল্যাপ আছে কি না দেখুন। ওভারল্যাপ রাউটিংয়ের এমন দ্ব্যর্থতা তৈরি করে যা কোনো সার্ভার কনফিগারেশন ঠিক করতে পারে না।

LAN ঘোষণা করুন, তারপর ফরওয়ার্ড করুন

যে সার্ভারের প্রমাণীকরণ ও পরিবহন ইতিমধ্যে পরিচালিত, তার জন্য নেটওয়ার্কিং লাইনগুলো এমন দেখায়। push গ্রহণকারী ক্লায়েন্টকে বলে কীভাবে LAN-এ পৌঁছাতে হবে, এবং এটি নিজে থেকে VM-কে কিছু ফরওয়ার্ড করতে বাধ্য করে না।

dev tun
topology subnet
server 10.80.0.0 255.255.255.0
push "route 192.168.70.0 255.255.255.0"

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

ফেরার রুটটি LAN রাউটারে থাকে

LAN ডিভাইসগুলো তাদের ডিফল্ট গেটওয়ের মাধ্যমে উত্তর দেয়, যেটি 192.168.70.1-এ LAN রাউটার। 10.80.0.0/24 কোথায় আছে তা না বললে সেই রাউটারের কোনো ধারণা নেই। পুল রুটটি রাউটারের সমর্থিত স্থায়ী কনফিগারেশনে যোগ করুন, যা VM-এর LAN ঠিকানার দিকে নির্দেশ করে। শুধু VirtualBox হোস্টে এটি যোগ করলে যে পথগুলো সেই হোস্টকে জিজ্ঞাসা করে সেগুলো ঠিক হয়, আর LAN-এর প্রতিটি ডিভাইস তা নয়।

ip route add 10.80.0.0/24 via 192.168.70.10

গন্তব্যের নিজের ফায়ারওয়ালকে এখনও ক্লায়েন্ট পুলকে উৎস হিসেবে অনুমতি দিতে হবে। রুট প্যাকেট বহন করে; এটি পরিষেবা দেয় না।

LAN রাউটার পরিবর্তন করা না গেলে, VM-এ সীমিত উৎস অনুবাদই বিকল্প। এটি রুট ছাড়াই উত্তর ফিরিয়ে দেয়, এবং LAN পরিষেবা থেকে আলাদা আলাদা ক্লায়েন্ট ঠিকানা লুকায়।

একটি প্যাকেট শুরু থেকে শেষ পর্যন্ত অনুসরণ করুন

10.80.0.25-এ থাকা একটি ক্লায়েন্ট টানেলের মধ্য দিয়ে 192.168.70.40-এ পাঠায়। VM প্যাকেটটি LAN-এ ফরওয়ার্ড করে। পরিষেবাটি তার রাউটারকে উত্তর দেয়, যেটি ক্লায়েন্ট পুলের জন্য VM বেছে নেয়, এবং VM প্যাকেটটি OpenVPN-এর মাধ্যমে ফিরিয়ে দেয়। সেই বাক্যের প্রতিটি হপ এমন একটি জায়গা যেখানে নকশাটি ব্যর্থ হতে পারে।

দূরবর্তী ক্লায়েন্ট থেকে আসল অ্যাপ্লিকেশন দিয়ে পরীক্ষা করুন, তারপর VM ও রাউটার উভয়েই পরিচালিত কনফিগারেশন পুনরায় লোড করার পর পুনরাবৃত্তি করুন।

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

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