কেন একটি ফুল-টানেল VPN আপনার রাউটেড লোকাল VLAN লুকিয়ে রাখে
allow local network অপশনটি আপনার রাউটারের পিছনের VLAN সম্পর্কে কিছুই জানে না। লোকাল গেটওয়ে দিয়ে একটি নির্দিষ্ট রুট স্টোরেজ ও ল্যাব সাবনেট অ্যাক্সেসযোগ্য রাখে।
VPN ক্লায়েন্টে “allow local network” সুইচটি শুনতে এমন মনে হয় যেন তা ভবনের সবকিছু ঢেকে রাখে। বাস্তবে এটি সাধারণত টানেলের ডিফল্ট রুটে কয়েকটি প্রাইভেট-অ্যাড্রেস ব্যতিক্রম যোগ করে এবং সেখানেই থেমে যায়। আপনার স্টোরেজ VLAN তবেই অ্যাক্সেসযোগ্য থাকে যদি সেই নির্দিষ্ট প্রিফিক্সের জন্য একটি রুট টানেলের আগমন থেকে টিকে থাকে, এবং অনেক ক্লায়েন্টে তা টেকে না।
এটি VPN সেটিং নয়, বরং রাউটিংয়ের প্রশ্ন, আর এটাই ভালো খবর: এর একটি নির্দিষ্ট উত্তর আছে।
allow-local-network আসলে কী ঢাকে
ক্লায়েন্টরা সেই অপশনটি ভিন্নভাবে বাস্তবায়ন করে। কেউ মেশিন যে সাবনেটে যুক্ত সেই সাবনেটের জন্য রুট যোগ করে, কেউ RFC 1918 রেঞ্জ যোগ করে, আর অল্প কিছু ক্লায়েন্ট কেবল ডিফল্ট গেটওয়েকে বাদ দেয়। তাদের কেউ জানে না যে আপনার অফিস রাউটার একটি স্টোরেজ VLAN, একটি ল্যাব সেগমেন্ট বা একটি প্রিন্টার সাবনেটও পরিবেশন করে, কারণ সেই প্রিফিক্সগুলো ক্লায়েন্ট যে তারে দেখতে পায় সেখানে নেই। লেবেলটি আপনার টপোলজি বর্ণনা করে ধরে নেওয়ার বদলে সঠিক আচরণের জন্য ক্লায়েন্টের নিজের ডকুমেন্টেশন পড়ুন।
পার্থক্যটি সবচেয়ে বেশি গুরুত্বপূর্ণ ফুল-টানেল ডিজাইনে, যেখানে ক্লায়েন্ট ইচ্ছাকৃতভাবে ডিফল্ট রুট প্রতিস্থাপন করে যাতে সব ট্রাফিক VPN দিয়ে যায়। এটাই ডিজাইনের পুরো উদ্দেশ্য, আর এটাই লোকাল রাউটেড নেটওয়ার্কগুলোকে হারিয়ে দেয়। সেগুলো কখনো নিজেদের রুটে ঢাকা ছিল না; তারা ঠিক প্রতিস্থাপিত ডিফল্ট রুটের উপরেই চড়ছিল। ক্লায়েন্ট যা আছে জানে না তা রাউট করতে পারে না, আর সে কেবল নিজের ইন্টারফেসে যুক্ত প্রিফিক্স সম্পর্কে জানতে পারে। বাকি সবকিছু এমন কাউকে বর্ণনা করতে হবে যে টপোলজি জানে।
কানেক্টেড রুট প্রথম রাউটারেই থেমে যায়
192.168.10.20/24 ঠিকানার একটি ওয়ার্কস্টেশন, যার গেটওয়ে 192.168.10.1, স্বয়ংক্রিয়ভাবে 192.168.10.0/24-এর জন্য একটি কানেক্টেড রুট পায়। 192.168.20.0/24-এ থাকা স্টোরেজ VLAN আলাদা প্রিফিক্স, কেবল সেই গেটওয়ে দিয়েই পৌঁছানো যায়, আর ওয়ার্কস্টেশনের কাছে ডিফল্টের বাইরে এর কোনো রুট নেই। টানেল ওঠার আগে সাধারণ ডিফল্ট ঘটনাক্রমে স্টোরেজ ট্রাফিক 192.168.10.1-এ পাঠায় এবং সবকিছু কাজ করে।
যখন VPN ফুল-টানেল ডিফল্ট বসায়, 192.168.20.1-এর প্যাকেটগুলো নতুন ডিফল্ট অনুসরণ করে টানেলে ঢোকে। দূরের গেটওয়ের সেই প্রিফিক্স কোথায় আছে কোনো ধারণা নেই, তাই সে প্যাকেটগুলো ফেলে দেয় বা অকেজো কোথাও পাঠিয়ে দেয়। স্টোরেজ VLAN-এ কিছুই ভুল কনফিগার হয়নি; তার পথ ধার করা ছিল, আর সেই ধার ফেরত চাওয়া হয়েছে।
প্রলোভন হলো /1 রুট জোড়া বা দ্বিতীয় ডিফল্টের মতো বিস্তৃত ব্যতিক্রমের দিকে হাত বাড়ানো। এর বিরুদ্ধে দাঁড়ান। ব্যতিক্রম যত সংকীর্ণ, নেটওয়ার্ক বদলালে তা ব্যাখ্যা করা, যাচাই করা ও সরানো তত সহজ।
ব্যতিক্রমটি সেই টেবিলে রাখুন যে জেতে
একই রাউটিং টেবিলের ভিতরে /24 দীর্ঘতম-প্রিফিক্স মিলের মাধ্যমে /0 বা /1-কে হারায়, তাই লোকাল গেটওয়ে দিয়ে স্টোরেজ VLAN-এ একটি নির্দিষ্ট রুটই যথেষ্ট, শর্ত হলো টেবিলটি আদৌ দেখা হয়। Linux-এ সাধারণ রূপটি সংক্ষিপ্ত:
ip route add 192.168.20.0/24 via 192.168.10.1 dev eth0পলিসি রাউটিং সেই নিশ্চয়তাকে জটিল করে। আগের একটি নিয়ম ট্রাফিককে এমন টেবিলে পাঠাতে পারে যার নিজের ডিফল্ট রুট টানেলের ভিতরে যায়, আর আপনার /24 ধারণ করা মূল টেবিল তখন কখনো পৌঁছানো হয় না। রুটটিকে কর্তৃত্বপূর্ণ ধরে নেওয়ার আগে নিয়মগুলো দেখুন, কারণ ভুল টেবিলে সঠিক দেখতে একটি এন্ট্রি ভাঙা রুটের মতো দেখতে একটি ব্যর্থতার ব্যাখ্যা দেয়।
তারপর ক্লায়েন্টের সমর্থিত প্রক্রিয়া বা ইন্টারফেসের মালিক নেটওয়ার্ক ম্যানেজারের মাধ্যমে এন্ট্রিটি স্থায়ী করুন। প্রম্পটে টাইপ করা রুট পরের পুনঃসংযোগে হারিয়ে যায়, আর একটি Wi-Fi গেটওয়ের সাথে বাঁধা রুট ল্যাপটপের পরের নেটওয়ার্কে বহনযোগ্য নয়।
নাম ও পলিসি রুট অনুসরণ করে না
রুট ঠিক করা প্যাকেট ফেরায়, নাম নয়। যদি লোকাল ডিভাইসগুলো এমন একটি চাপিয়ে দেওয়া রিজলভারের মাধ্যমে রিজলভ হয় যা তাদের সম্পর্কে কিছুই জানে না, ঠিকানাটি পৌঁছানো গেলেও মাউন্ট তবু ব্যর্থ হয়। লোকাল নামের জন্য লোকাল বা বিভক্ত DNS ব্যবস্থা দরকার, আর এটি রুট ব্যতিক্রম থেকে আলাদা সিদ্ধান্ত।
পলিসি আবার আলাদা। VPN ক্লায়েন্টের লোকাল-অ্যাক্সেস ফিল্টার ইচ্ছাকৃতভাবে প্রাইভেট রেঞ্জে ট্রাফিক নিষিদ্ধ করতে পারে, আর একটি রুট সেই নিয়মকে অতিক্রম করে না। অবিশ্বস্ত নেটওয়ার্কে একটি প্রাইভেট ঠিকানাও প্রমাণ নয় যে গন্তব্যটি আপনার স্টোরেজ সার্ভার, তাই ব্যতিক্রমটি রুটের মতোই নির্দিষ্ট হওয়া উচিত।
একটি চুক্তি যা আপনি হস্তান্তর করতে পারেন
সম্পূর্ণ ডিজাইনটি একটি ছোট তালিকা হিসেবে পড়া উচিত: সাধারণ ইন্টারনেট ট্রাফিক টানেল অনুসরণ করে, আর এই নামকরণ করা লোকাল প্রিফিক্সগুলো লোকাল রাউটার দিয়ে নিজেদের পথ ধরে রাখে। প্রিফিক্সগুলো, পরবর্তী হপ এবং তাদের সাথে যাওয়া DNS সাফিক্স লিখে রাখুন, আর তালিকাটি এত ছোট রাখুন যাতে কেউ রাউটিং টেবিল না পড়েই তা যাচাই করতে পারে।
লোকাল ও রিমোট রেঞ্জের মধ্যে ওভারল্যাপে নজর রাখুন। VPN-এর পিছনের কিছুর সাথে প্রিফিক্স ভাগ করা একটি স্টোরেজ VLAN যে রুটটি বেশি নির্দিষ্ট সেটিতেই রিজলভ হবে, আর ফলাফল আচরণ এমনভাবে বিভ্রান্তিকর যা মাঝে মাঝে ঘটছে বলে মনে হয়। এক পাশে পুনঃনম্বরকরণ সাধারণত অনিশ্চয়তাটি চিরকাল ডিবাগ করার চেয়ে সস্তা।
চুক্তিটি দুবার পরীক্ষা করুন: একবার টানেল ওঠা অবস্থায় এবং একবার নামা অবস্থায়। যদি লোকাল পথ কেবল সেই দুটি অবস্থার একটিতেই কাজ করে, তবে ব্যতিক্রমটি এখনো চুক্তি নয়।