মাল্টি-রাউটার Pi VPN: প্রতিটি রুট সেই ডিভাইসে রাখুন যে সিদ্ধান্ত নেয়
একটি ডাউনস্ট্রিম রাউটার দ্বিতীয় ক্লায়েন্ট সাবনেট যোগ করে, এবং চারটি ডিভাইসের প্রত্যেকটি একটি করে সিদ্ধান্তের মালিক। রুটগুলো বসান, সোর্স যাচাই করুন, তারপর প্রকৃত ক্লায়েন্ট থেকে পরীক্ষা করুন।
Pi-এর পিছনে একটি Wi-Fi বক্স বসালে একটি রাউটিং সিদ্ধান্ত চারটি হয়ে যায়, এবং চারটিই এক ডিভাইসে নেওয়া হলে পরিকল্পনা ভেঙে পড়ে। প্রথম প্রশ্নটি কোন রুট যোগ করবেন তা নয়। প্রশ্নটি হলো নতুন বক্সটি ব্রিজ করবে না রাউট করবে, কারণ সেই উত্তরই ঠিক করে কতগুলো সাবনেট আছে এবং কোন ডিভাইসগুলোকে সেগুলো সম্পর্কে জানতে হবে। আগে সংযুক্তির মডেল বেছে নিন; প্রতিটি রুট তা থেকেই আসে।
ব্রিজ না রাউট: যে পছন্দ সংখ্যাটি ঠিক করে
একটি ব্রিজ নতুন ক্লায়েন্টদের Pi যে সাবনেট ইতিমধ্যে পরিবেশন করে সেখানেই রাখে। একটি সাবনেট, একটি DHCP কর্তৃপক্ষ, এবং রাউট করার জন্য কোনো হ্যান্ডঅফ নেই। এটিই সহজ বিন্যাস এবং আলাদা ক্লায়েন্ট নেটওয়ার্ক কখনো প্রয়োজন না হলে এটিই সঠিক পছন্দ। রাউটেড লিংক ভিন্ন এক নকশা: বক্সটি নিজের সাবনেট রাখে, এবং সেই প্রিফিক্সকে ট্রাফিক যেখানে যায় সেখানেই বহন করতে হয়।
এই পরিকল্পনার বাকি অংশ ডাউনস্ট্রিম রাউটারটি রাখে এবং ক্লায়েন্ট সোর্স ঠিকানা সংরক্ষণ করে। লক্ষ্য একটি ব্যক্তিগত VPN নেটওয়ার্ক, সম্পূর্ণ ইন্টারনেট এক্সিট নয়। ঠিকানার আগে মডেলটি লিখে রাখুন, কারণ নিচের তালিকাটি কেবল একটি রাউটেড সংযুক্তির উদাহরণ।
client subnet 10.41.0.0/24
client gateway 10.41.0.1
router-to-Pi link 192.168.71.2
Pi on that link 192.168.71.1
private target 10.72.9.0/24
কে কী সিদ্ধান্ত নেয়
| Decision owner | Entry that encodes the decision | Failure when the entry is missing |
|---|---|---|
| Pi VPN host | Return route for 10.41.0.0/24 via 192.168.71.2, and a tunnel route for 10.72.9.0/24 | Replies to downstream clients die at the Pi |
| Owner of the remote network | A path for 10.41.0.0/24 over the permitted tunnel | Replies stop at the first unaware hop |
| LAN router behind the Pi | Specific route for 10.72.9.0/24 via 192.168.71.1, or a suitable default | Clients never send private traffic to the Pi |
| Client machine | Default via 10.41.0.1, or a specific entry for 10.72.9.0/24 | The private network is unreachable from the client |
প্রতিটি ডিভাইস একটি সিদ্ধান্ত নেয়, এবং কেউ অন্যের হয়ে তা নিতে পারে না। Pi-এর দুটি এন্ট্রি দরকার, একটি নয়, এবং ফেরার পথটিই মানুষ ভুলে যায়। ফরোয়ার্ড করা ট্রাফিক সঠিকভাবে ব্যক্তিগত নেটওয়ার্কে পৌঁছায় এবং তারপর ফেরার পথে মরে যায়, কারণ 10.41.0.0/24 কোথায় থাকে তা Pi জানে না। এটি ফায়ারওয়াল সমস্যার মতো দেখায় এবং আসলে একটি অনুপস্থিত রুট।
দূরের পাশেও নিজের রুট দরকার। যদি দূর প্রান্তের পরিষেবা না জানে যে 10.41.0.0/24 আপনার টানেল দিয়ে পৌঁছানো যায়, তবে উত্তরগুলি প্রথম হপেই থামে যার কোনো উত্তর নেই। প্যাকেট ফিল্টার পড়ার আগে দুই দিকই যোগ করুন।
পরবর্তী হপ আসে সংযুক্তি থেকে
পরবর্তী হপ অবশ্যই এমন নেটওয়ার্কের একটি ঠিকানা হতে হবে যেখানে ডিভাইসটি সত্যিই পৌঁছাতে পারে। VPN পিয়ারের পাবলিক ঠিকানা ব্যক্তিগত সাবনেটের জন্য পরবর্তী হপ নয়, এবং দূরের পরিষেবা নেটওয়ার্ক কোনোভাবেই পরবর্তী হপ নয়। অপৌঁছানো গেটওয়ের রুট তালিকায় সঠিক দেখায় এবং প্রতিটি প্যাকেট ফেলে দেয়। গন্তব্যের দোষ দেওয়ার আগে যাচাই করুন যে গেটওয়ে উত্তর দেয়।
রাখুন Pi-এর বাইরের VPN পিয়ারকে তার নিজের আন্ডারলে রুটের মাধ্যমে পৌঁছানো। সেই এন্ট্রিটি পেলোড রুট থেকে আলাদা, এবং সেগুলো মিশিয়ে দিলে এমন টানেল হয় যা পথ পরিবর্তনের পরে আবার প্রতিষ্ঠিত হতে পারে না।
স্ট্যাটিক রুটের ডকুমেন্টেশন গন্তব্য বনাম গেটওয়ে পার্থক্যটি স্পষ্ট করে, যদিও প্রতিটি প্ল্যাটফর্ম তার মেনু আলাদাভাবে নাম দেয়। অন্য বিক্রেতার স্ক্রিন কপি না করে আপনার সামনের ডিভাইসের ডকুমেন্টেশন পড়ুন। নিচের কমান্ডগুলো Linux-এ এন্ট্রিগুলোর আকৃতি দেখায়।
# on the Pi
ip route add 10.41.0.0/24 via 192.168.71.2
ip route add 10.72.9.0/24 dev tun0
# on the downstream router
ip route add 10.72.9.0/24 via 192.168.71.1
অনুবাদ সোর্সের সাথে কী করে
যদি ডাউনস্ট্রিম রাউটার ইতিমধ্যে তার ক্লায়েন্টদের ট্রানজিট ঠিকানায় অনুবাদ করে, তবে Pi প্রতিটি ক্লায়েন্টের নিজের ঠিকানার বদলে একটি অনূদিত সোর্স দেখে। এটি উপরের সোর্স-সংরক্ষণকারী নকশা থেকে আলাদা। এটি সোর্স-ভিত্তিক নীতি, লগিং এবং কোন পক্ষ সংযোগ শুরু করতে পারে তা বদলে দেয়। দুটি নকশাই কাজ করে; তারা ভিন্ন প্রশ্নের উত্তর দেয়।
যখন একটি আপস্ট্রিম VPN পরিষেবা ক্লায়েন্ট প্রিফিক্স ফেরত রাউট করতে অস্বীকার করে, তখন Pi-এর টানেল ইগ্রেসে সংকীর্ণ অনুবাদ একটি বৈধ কাজের পদ্ধতি হতে পারে। এটি প্রমাণ নয় যে অনুপস্থিত রুটটি অপ্রয়োজনীয় ছিল। রেকর্ড করুন দূরের নেটওয়ার্ক আসলে কোন ঠিকানা দেখে এবং কোন ফেরার পথ ফলাফল দেয়।
রুট নির্বাচন, ফরোয়ার্ডিং অনুমতি এবং সোর্স অনুবাদ তিনটি আলাদা কাজ থাকে। একটি ওয়্যারড ক্লায়েন্ট কাজ করে বলে শেয়ার করা NAT চেইন ফ্লাশ করা বা প্রতিটি ইন্টারফেস অনুমোদন করাই হলো কাজ করা পরীক্ষাকে খোলা ফরোয়ার্ডারে পরিণত করার উপায়।
একটি ক্লায়েন্ট মেশিন থেকে এটি প্রমাণ করা
ডাউনস্ট্রিম LAN-এর একটি মেশিন থেকে অনুরোধ পাঠান, তারপর তার সোর্সকে বাইরে ও ফিরে অনুসরণ করুন। Pi থেকে দেওয়া ping কখনো ডাউনস্ট্রিম ফেরার রুট ব্যবহার করে না, তাই সফল একটি ping যতটা মনে হয় তার চেয়ে কম প্রমাণ করে। Pi-এর নিজের LAN-এর একটি ওয়্যারড ক্লায়েন্ট থেকে দ্বিতীয় পরীক্ষা যোগ করুন যাতে দুই পথ তুলনা করা যায়। যেকোনো ডিভাইস রিবুট করার পরে দুটিই পুনরাবৃত্তি করুন।
হাতে যোগ করা রুট এবং কখনো সংরক্ষণ না করা অনুবাদ একসাথে অদৃশ্য হয়ে যায়। তখন জোড়াটি অসম্পূর্ণ কাজের বদলে নতুন ত্রুটির মতো দেখায়।
সংযুক্তির মডেলটি রুট, অনুমোদিত ব্যক্তিগত পরিষেবা এবং যেকোনো অনুবাদসহ একটি নোটে সংরক্ষণ করুন। সেই নোটই পরের ব্যক্তিকে ওয়্যারলেস স্থাপনকে রাউটিং নীতির প্রশ্ন হিসেবে বিবেচনা করা থেকে বিরত রাখে।