কেন আপনার Windows VPN রাউট টেবিলে 0.0.0.0/1 ও 128.0.0.0/1 দেখায়
ডিফল্ট-গেটওয়ে অপশন একটি নয়, দুটি হাফ-ডিফল্ট রাউট যোগ করে। ক্লায়েন্টে রাউট যোগ বা সরানোর আগে প্রিফিক্স, মেট্রিক ও ইন্টারফেস পড়ুন।
Windows-এ একটি VPN-এ সংযোগ করুন এবং রাউট টেবিল খুলুন, দুটি এন্ট্রি চোখে পড়বে: 0.0.0.0/1 এবং 128.0.0.0/1। এগুলো টাইপো নয় এবং ডিফল্ট রাউটকে প্রতিস্থাপন করে না। এগুলো দেখা যাবে কি না তা একটি প্রোফাইল অপশনের উপর নির্ভর করে, আর এই জোড়াটি হলো একটি সম্পূর্ণ টানেল তৈরির পদ্ধতি, স্প্লিট-টানেল বৈশিষ্ট্য নয়। একটি লাইনও বদলানোর আগে অপশন, প্রিফিক্স ও ইন্টারফেস একসঙ্গে পড়ুন।
ডিফল্ট-গেটওয়ে অপশন কী ইনস্টল করে
যে প্রোফাইল অপশন সবকিছু টানেলের মধ্য দিয়ে পাঠায়, সেটি ওই দুটি প্রিফিক্স যোগ করে কাজ করে। অপশনটি সরিয়ে দিলে তারা অদৃশ্য হয়ে যায়, এবং কেবল টানেল অ্যাডাপ্টারকে দেওয়া সাবনেট কভার করে এমন একটি রাউট থাকে। চেকবক্সটি জোড়াটি নিয়ন্ত্রণ করে; এটি একক ডিফল্ট রাউট পুনর্লিখন করে না। তাই টিক তুলে ফেলার পর টেবিলটি মুছে ফেলার বদলে আংশিক পুনর্লিখনের মতো দেখায়।
0.0.0.0/1 IPv4 স্পেসের নিচের অর্ধেক এবং 128.0.0.0/1 উপরের অর্ধেক কভার করে, তাই একসঙ্গে তারা প্রতিটি ইউনিকাস্ট ঠিকানা কভার করে। প্রতিটি 0.0.0.0/0 ডিফল্টের চেয়ে বেশি নির্দিষ্ট, অর্থাৎ দীর্ঘতম-প্রিফিক্স মিল সাধারণ ট্রাফিককে টানেলে পাঠায়, আর ফিজিক্যাল ডিফল্ট রাউট যেখানে ছিল সেখানেই থাকে। ওই ডিফল্ট রাখা সৌন্দর্যের বিষয় নয়: এনক্রিপ্টেড পেলোড মোড়ানো প্যাকেটগুলো সার্ভারের পাবলিক ঠিকানায় অ্যাড্রেস করা এবং ফিজিক্যাল অ্যাডাপ্টার দিয়ে বেরোতে হয়। ডিফল্টকে ভাগ করার বদলে প্রতিস্থাপন করুন, তাহলে টানেলের নিজস্ব ট্রান্সপোর্ট টানেলে ঢোকার চেষ্টা করবে, যা সংযোগ নয়, লুপ।
তাই VPN অ্যাডাপ্টারের দিকে নির্দেশ করা আক্ষরিক 0.0.0.0/0 থাকলে থামা উচিত। নেটিভ ক্লায়েন্ট সাধারণত এটি লেখে না, সুতরাং একটি ম্যানুয়াল রাউট বা অন্য ক্লায়েন্টের কনফিগারেশন আপনার পিছনে টেবিলটি বদলে দিয়েছে। নিচের যেকোনো কিছু ডিবাগ করার আগে এটি খুঁজে বের করুন।
গেটওয়ে বাঁচানোর চেয়ে টিয়ারডাউন সস্তা
দুটি এন্ট্রির পক্ষে ব্যবহারিক যুক্তি হলো টিয়ারডাউন। সংযুক্ত থাকার সময় ক্লায়েন্টের ঠিক দুটি রাউট থাকে এবং সংযোগ বিচ্ছিন্ন হলে সেগুলো মুছে দেয়, ফলে ফিজিক্যাল অ্যাডাপ্টার সেই মুহূর্তে যা ধরে আছে তাই থেকে যায়। যে ক্লায়েন্ট একক ডিফল্ট প্রতিস্থাপন করেছিল, তাকে আগের গেটওয়ে মনে রাখতে হতো, আর DHCP লিজ বদলালে এমন একটি গেটওয়ে পুনরুদ্ধার করতে পারত যা আর নেই। দুটি মালিকানাধীন এন্ট্রিতে এমন কোনো অবস্থা থাকে না।
অন্য ক্লায়েন্টরাও একই নকশায় পৌঁছায়। redirect-gateway def1 সহ একটি OpenVPN প্রোফাইল ডিফল্ট মুছে ফেলার বদলে ওই দুটি প্রিফিক্স ইনস্টল করে, এবং Windows ক্লায়েন্ট একই রাউটিং কারণে এই ধরনটি অনুসরণ করে।
এজন্যই স্প্লিট আশা করলেও টেবিলটি সম্পূর্ণ টানেলের মতো দেখাতে পারে। জোড়াটি হলো সম্পূর্ণ টানেল গঠনের উপায়, স্প্লিট-টানেল ভুলের প্রমাণ নয়। প্রোফাইলটি যদি রিমোট গেটওয়ে ব্যবহারে সেট থাকে, তবে সবকিছু রাউট হয়, একটি লোকাল অ্যাপ্লিকেশন যা-ই পৌঁছাক না কেন।
যেকোনো মেট্রিকের আগেই দীর্ঘতম প্রিফিক্স জেতে
প্রিফিক্সের দৈর্ঘ্য অন্য যেকোনো ফিল্ডের আগে লুকআপ নির্ধারণ করে। মেট্রিক কেবল একই প্রিফিক্সের রাউটগুলোর মধ্যে টাই ভাঙে, তাই /1 এন্ট্রি মেট্রিক খারাপ হলেও /0 ডিফল্টকে হারায়। ইন্টারফেস বাইন্ডিং ঠিক করে কী থাকে যখন দুটি রাউট একই প্রিফিক্স ভাগ করে এবং Windows-কে বেছে নিতে হয় কোন অ্যাডাপ্টার প্যাকেট পাঠাবে।
route print -4
Get-NetRoute -AddressFamily IPv4 | Sort-Object DestinationPrefix
Find-NetRoute -RemoteIPAddress 10.50.5.20
একটি স্প্লিট-টানেল টেবিলে ফিজিক্যাল ডিফল্ট, দুটি হাফ-ডিফল্ট, টানেল সাবনেটের রাউট এবং আপনার যোগ করা যেকোনো অফিস প্রিফিক্স থাকে। ক্লায়েন্ট ও প্রোফাইল অনুযায়ী ফিজিক্যাল ডিফল্ট কম বা বেশি মেট্রিকে থাকতে পারে, আর যতক্ষণ /1 জোড়াটি থাকে সেই পার্থক্য কিছুই বদলায় না। জোড়াটি সরানোর মুহূর্তেই সবকিছু বদলায়, তখনই পুরোনো গেটওয়ে বা ভুল ইন্টারফেস সামনে আসে। আপনি যে এক লাইনটি বদলাবে ভেবেছিলেন তা নয়, পুরো টেবিলটি পড়ুন।
অফিস প্রিফিক্সের জন্য একজন মালিক বেছে নিন
স্প্লিট টানেলের জন্য কেবল সেই প্রিফিক্সের নাম দিন যা VPN ব্যবহার করবে, এবং এটি মালিকানার একটি উপায় বেছে নিন। রাউটটিকে বরাদ্দ করা টানেল ঠিকানার দিকে নির্দেশ করা ওই ঠিকানা বদলানো পর্যন্ত কাজ করে, আর ইন্টারফেসে বাইন্ডিং ঠিকানার পরিবর্তন সইতে পারে কিন্তু প্রোফাইল পুনর্গঠনের পর ইনডেক্স নতুন করে বরাদ্দ হলে ভেঙে পড়ে। প্রোফাইল-বাউন্ড cmdlet দুটি সমস্যাই এড়ায়, বিনিময়ে প্রোফাইলটি লাগে।
route -p add 10.50.0.0 mask 255.255.0.0 172.16.8.1
route -p add 10.50.0.0 mask 255.255.0.0 0.0.0.0 IF 31
Add-VpnConnectionRoute -ConnectionName Office -DestinationPrefix 10.50.0.0/16
cmdlet প্রিফিক্সটিকে নামকরণ করা প্রোফাইলে বাঁধে, তাই রাউটটি সংযোগের সঙ্গে আসে ও তার সঙ্গে চলে যায়, যা একটি ব্যবস্থাপিত ল্যাপটপ চায়। স্থায়ী রাউট রিবুটের পরেও টেকে এবং যে প্রোফাইল তাকে ডেকেছিল তার পরেও টেকে, এভাবেই একটি অবসরপ্রাপ্ত VPN বছরের পর বছর এন্ট্রি রেখে যায়। প্রতিটি প্রিফিক্সের জন্য একটি পদ্ধতি বেছে নিন এবং সিদ্ধান্তটি লিখে রাখুন, কারণ একই প্রিফিক্সের জন্য স্থায়ী রাউট ও প্রোফাইল রাউট মিলে ডুপ্লিকেট তৈরি করে যা টিয়ারডাউনের সময় খুলতে কষ্ট হয়। যা-ই বেছে নিন, মালিকানা কেবল মেশিনে নয়, টিকিটেও দৃশ্যমান হওয়া উচিত।
এই বিভাগ যে প্রশ্নের উত্তর দেয় তা মালিকানা, ব্যাকরণ নয়। একটি প্রিফিক্সের জন্য দুই মালিক হলো যে ব্যর্থতা এড়ানো উচিত।
ওয়েবসাইট নয়, গন্তব্য দিয়ে যাচাই করুন
যে গন্তব্যকে টানেল পেরোতে হবে তা পরীক্ষা করুন, এমন ওয়েবসাইট নয় যা একটি এক্সিট ঠিকানা রিপোর্ট করে। Find-NetRoute নির্বাচিত রাউট ও সোর্স ঠিকানা ফেরত দেয়, তাই আপনি দেখতে পারেন অফিস প্রিফিক্স জিতেছে না ফিজিক্যাল ডিফল্ট, তারপর শেয়ারটি নিজেই খুলুন।
Find-NetRoute -RemoteIPAddress 10.50.5.20
Get-VpnConnection -Name Office
এক্সিট-ঠিকানা সাইট দুর্বল যাচাই, কারণ DNS, IPv6 ও একটি ব্রাউজার প্রক্সি প্রত্যেকে সেই অনুরোধ ভিন্ন পথে পাঠাতে পারে। একই ডায়ালগে IPv4 ও IPv6-এর আলাদা সেটিংসও থাকে, আর একটি বক্স খালি করলে অন্য পরিবার অক্ষত থাকে, তাই ডুয়াল-স্ট্যাক মেশিন IPv6 টানেল দিয়ে নিতে পারে যখন IPv4 স্প্লিট রাউট অনুসরণ করে। প্রোফাইলকে স্প্লিট বলার আগে দুই পরিবারই পরীক্ষা করুন। রাউট ঠিক থাকলে এবং সেবা এখনও ব্যর্থ হলে অবশিষ্ট স্তরটি রাউটিং নয়, ফিল্টারিং।
ক্লায়েন্ট-পরিচালিত ফায়ারওয়াল নিখুঁত রাউট টেবিল থাকা সত্ত্বেও অফিস সাবনেট ব্লক করতে পারে। সেই নীতি যে প্রোফাইল পুশ করেছে তার, রাউট সম্পাদনকারীর নয়।