একসঙ্গে দুটি VPN ক্লায়েন্ট: ডিফল্ট রুট কে জেতে?
দুটি VPN ক্লায়েন্ট ডিফল্ট রুট দাবি করে এবং কেবল একটি জেতে। টানেলের ক্রম বেছে নেওয়ার আগে মেট্রিক, /1 জোড়া এবং রিজলভার বিভাজন পড়ুন।
একসঙ্গে দুটি VPN ক্লায়েন্ট চালানো একটি রাউটিং বিতর্ক, গোপনীয়তার সেটিং নয়। যে টানেলের কাছে বেশি নির্দিষ্ট রুট থাকে সে-ই ট্রাফিক পায়, আর অন্যটি সংযুক্ত থেকেও নিষ্ক্রিয় থাকে। কর্পোরেট গেটওয়ে তখন ব্যক্তিগত এক্সিট থেকে আসা একটি সংযোগ দেখে, অথচ আপনার মেশিনের কর্পোরেট ক্লায়েন্ট এখনও প্রতিটি অ্যাডাপ্টর দেখে। এই দুই তথ্যের মধ্যে কোনটি গুরুত্বপূর্ণ তা ঠিক করাই পুরো ব্যাপার।
রাউট টেবিল একজন বিজয়ী বেছে নেয়
কর্পোরেট ক্লায়েন্ট চালু হওয়ার আগে ও পরে টেবিলটি ধরে রাখুন এবং কেবল গন্তব্য নয়, ইন্টারফেস কলামটি পড়ুন। বাইরের টানেলের সাধারণ ডিফল্ট রুট সরিয়ে দেওয়া সহজ, কারণ /1 জোড়া /0-এর চেয়ে বেশি নির্দিষ্ট। আক্ষরিক জোড়া 0.0.0.0/1 এবং 128.0.0.0/1 পুরো IPv4 জায়গাকে দুই ভাগে ঢেকে দেয় এবং যেকোনো একক ডিফল্টকে হারায়। এটি বসানোর পরেও বাইরের টানেল সংযুক্ত দেখায় এবং কিছুই বহন করে না।
ip route show default
ip route show | grep -E '^(0.0.0.0/1|128.0.0.0/1)'পলিসি রাউটিং মূল টেবিলকে সম্পূর্ণভাবে অগ্রাহ্য করতে পারে, তাই রুটের পাশাপাশি নিয়মগুলিও পড়ুন। যে নিয়ম চিহ্নিত ট্রাফিককে অন্য টেবিলে পাঠায়, সেটি মূল টেবিল দেখার আগেই জেতে। এভাবেই একটি অ্যাপ্লিকেশন ভৌত লিংকে থাকতে পারে, যখন বাকি সবকিছু টানেল ব্যবহার করে।
ip rule showWindows এটি মেট্রিক দিয়ে ঠিক করে
Windows-এ বিজয়ী হলো গন্তব্যের জন্য সবচেয়ে কম মেট্রিকের রুট এবং দুটি ক্লায়েন্ট ভিন্ন মেট্রিকে ডিফল্ট রুট বসাতে পারে। টেবিল ও ইন্টারফেস কনফিগারেশন একসঙ্গে পড়ুন, কারণ কম মেট্রিকের অ্যাডাপ্টর সবসময় আপনার প্রত্যাশিতটি নয়। যে ক্লায়েন্ট ইন্টারফেস মেট্রিকও সেট করে, সে একটি রুটও না যোগ করে ডিফল্ট সরাতে পারে। যে অ্যাডাপ্টর হারে, সেটি চালু থাকে এবং কেবল কিছুই পায় না।
route print -4
Get-NetIPConfiguration | Select-Object InterfaceAlias, IPv4DefaultGatewayদুটি আউটপুট তুলনা করুন এবং 0.0.0.0/0-এর মালিক ইন্টারফেসের নাম বলুন। যদি দুটি ক্লায়েন্টই এটি দাবি করে, মেট্রিকই সিদ্ধান্ত নেয়, তাই সংযোগের ক্রম পরীক্ষা বিভিন্ন মেশিনে অসঙ্গত দেখাতে পারে। যদি কোনো আউটপুটই ডিফল্ট গেটওয়ে না দেখায়, ক্লায়েন্টটি ফুল-টানেলে চলছে না এবং চেইনের যুক্তিটি অর্থহীন।
দুই পর্যবেক্ষক, দুই ভিন্ন দৃষ্টিভঙ্গি
দূরবর্তী গেটওয়ে বাইরের এক্সিট থেকে আসা একটি সংযোগ দেখে, সাথে ক্লায়েন্ট তার টানেলে যা পাঠায় তা-ও। স্থানীয় ক্লায়েন্ট অ্যাডাপ্টর, রুট এবং আরেকটি টানেলের অস্তিত্ব দেখে, কারণ সেগুলো তৈরি করার বিশেষাধিকার নিয়ে সে চলে। এই দৃষ্টিভঙ্গিগুলো আলাদা করাই মূল কথা; ক্লায়েন্ট কিছুই লক্ষ্য করতে পারবে না বলে দাবি করা নয়।
ধরে নিন ক্লায়েন্ট যা চায় গণনা করতে পারে, এবং পরিবর্তে গেটওয়ের দৃষ্টিভঙ্গির জন্য পরিকল্পনা করুন। যে নকশা ক্লায়েন্ট অন্ধ থাকার উপর নির্ভর করে, সেটি ভাঙার এক আপডেট দূরে।
DNS এবং IPv6-ই হলো যেখানে চেইন ফাঁস হয়
DNS যে রিজলভার সেটিং জেতে তার অনুসরণ করে, এবং সেটি প্যাকেটের আসল পথ নাও হতে পারে। কর্পোরেট টানেল দিয়ে পৌঁছানো কর্পোরেট রিজলভার নকশার সঙ্গে সঙ্গতিপূর্ণ; তার বাইরে পৌঁছানো স্থানীয় রিজলভার নয়, এবং এটি এমন নাম প্রকাশ করে যা টানেলের লুকানো উচিত ছিল। IPv6 হলো দ্বিতীয় ফাঁস: ডুয়াল-স্ট্যাক হোস্ট গন্তব্যের দিকে IPv6 ব্যবহার চালিয়ে যায়, যেখানে টানেল কেবল IPv4-এর উপর দিয়ে বহন করে। পরিবারগুলো আলাদাভাবে পরীক্ষা করুন, কারণ শুধু-IPv4 টানেল IPv6 রুট বা রিজলভার সম্পর্কে কিছুই বলে না।
ip -6 route show default
resolvectl status | grep -A2 'DNS Servers'রিজলভার এবং IPv6 রুটটি সচেতনভাবে ঠিক করুন, উপরে দ্বিতীয় টানেল স্তূপ না করে। দ্বিগুণ এনক্যাপসুলেশন MTU-ও খরচ করে, তাই চেইন ওঠার পরে পেজ আটকে গেলে প্রথমে ছোট ভেতরের MTU চেষ্টা করুন। দ্রুত উত্তর দেওয়া রিজলভার সঠিক রিজলভার হওয়ার প্রমাণ নয়।