দুটি VPN ক্লায়েন্ট, একটি রাউটিং টেবিল: ডিফল্ট রুট কে পায়
দুটি VPN ক্লায়েন্ট খুব কমই সরাসরি সংঘর্ষে জড়ায়; তারা একই ডিফল্ট রুট পুনর্লিখন করে। বেছে নেওয়া পথটি যাচাই করুন, তারপর একটি ক্লায়েন্টকে সব গন্তব্য দাবি করা থেকে থামান।
দেখে মনে হয় দুটি VPN ক্লায়েন্ট একটি সকেট নিয়ে লড়ছে, আর সুস্পষ্ট সমাধান হলো একটি আনইনস্টল করা। বাস্তবে তারা খুব কমই একই সকেট স্পর্শ করে। প্রতিটি সংযোগ অপারেটিং সিস্টেমের রাউটিং টেবিল পুনর্লিখন করে, আর ফুল-টানেল প্রোফাইল ডিফল্ট রুট দাবি করে। যে শেষে সংযুক্ত হয়েছে সে-ই সাধারণত জেতে, তাই লক্ষণটি ক্লায়েন্টদের মধ্যে সরে বেড়ায় বলে মনে হয়।
সংঘাত থাকে রাউটিং টেবিলে
একটি ভার্চুয়াল অ্যাডাপ্টার আর একটি ডিফল্ট রুট—এইভাবেই ফুল টানেল ট্রাফিক ধরে। দ্বিতীয় ক্লায়েন্ট নিজের ডিফল্ট বসালে পুরোনো এন্ট্রিটি প্রতিস্থাপিত হয় বা মেট্রিক দিয়ে নিচে নামে, আর প্রতিটি গন্তব্য এখন নতুন টানেল দিয়ে যায়। প্রথম ক্লায়েন্ট সংযুক্ত থাকে এবং সবুজ আইকন দেখায়, অর্থাৎ ইন্টারফেস চালু আছে কিন্তু পথ নেই। সংযোগের অবস্থা আর রাউটিং অবস্থার এই বিচ্ছেদই আচরণটিকে বিভ্রান্তিকর করে তোলে।
ক্লায়েন্টরা একটি সাধারণ টেবিলের সম্পাদক। কোন সম্পাদনা সবার শেষে হয়েছে জানলেই প্রায় প্রতিটি লক্ষণ ব্যাখ্যা হয়।
কোন টানেল বর্তমান পথের মালিক, তা পড়ুন
সংযুক্ত বলে জানানো ক্লায়েন্টকে বিশ্বাস না করে প্রকৃত সিদ্ধান্তটি যাচাই করুন। সিস্টেমকে জিজ্ঞাসা করুন কোন ইন্টারফেস নির্দিষ্ট গন্তব্য বহন করবে।
ip route get 10.20.0.5
route print -4প্রথম কমান্ডটি একটি গন্তব্যের জন্য ইন্টারফেস ও সোর্স ঠিকানার নাম দেয়, আর সেটিই আপনার আসল প্রশ্ন। রুট ডাম্প Windows-এ প্রতিদ্বন্দ্বী ডিফল্ট এন্ট্রি ও তাদের মেট্রিক দেখায়, ফলে কোনটি এখন জিতছে তা বোঝা যায়। প্রতিটি দূরবর্তী নেটওয়ার্কে একটি হোস্টের জন্য লুকআপ চালান, কারণ একটি গন্তব্য ঠিক থাকতে পারে অথচ অন্য নেটওয়ার্ক অপ্রাপ্য। উত্তর ভুল টানেলের নাম দিলে পুনরায় সংযোগ কাজে লাগবে না; রুট নীতি বদলাতে হবে।
দ্বিতীয় ক্লায়েন্টকে সবকিছু দাবি করা থেকে থামান
এক ক্লায়েন্ট ডিফল্ট রুটের মালিক হবে, আর অন্যটি কেবল নিজের প্রিফিক্স বহন করবে। OpenVPN ক্লায়েন্টরা সার্ভার যা ঠেলে দেয় তা প্রত্যাখ্যান করতে পারে।
pull-filter ignore "redirect-gateway"
ip route get 10.30.4.10route-nopull প্রতিটি ঠেলে দেওয়া রুট উপেক্ষা করে, আর pull-filter ignore "redirect-gateway" কেবল ডিফল্ট-রুট নির্দেশাটি বাদ দেয় এবং ঠেলে দেওয়া DNS ও অন্যান্য অপশন রাখে। সার্ভারের কনফিগারেশনের কতটা এখনো চান তার ভিত্তিতে এদের মধ্যে বেছে নিন, তারপর দ্বিতীয় নেটওয়ার্কের প্রয়োজনীয় নির্দিষ্ট প্রিফিক্স যোগ করুন। DNS মনে রাখুন, কারণ যে টানেল লুকআপ বহন করে না, তার ঠেলে দেওয়া রিজলভার কিছুই ফেরত দেয় না। প্রতিটি নেটওয়ার্কে একটি পরিচিত হোস্ট পরীক্ষা করুন এবং দূরবর্তী পক্ষ যে সোর্স ঠিকানা দেখে তা নিশ্চিত করুন।
ওভারল্যাপিং সাবনেট এড়িয়ে যাওয়া যায় না
দুই নেটওয়ার্ক একই প্রিফিক্স ঘোষণা করলে কার্নেল দুটি ভিন্ন জায়গার জন্য একটি এন্ট্রি রাখে এবং বেছে নিতে বাধ্য হয়। হোস্ট রুট অনুপস্থিত পার্থক্য বানাতে পারে না, মেট্রিক বদলেও পারে না। এক পক্ষকে পুনঃনম্বর দিন, বা তার প্রশাসক দূরবর্তী রেঞ্জ অনুবাদ করুন যাতে প্রিফিক্স আলাদা হয়। ক্লায়েন্টদের দোষ দেওয়ার আগে প্রকৃত সাবনেট দেখুন, কারণ বাড়ির রাউটারের ডিফল্ট 192.168.1.0/24 অফিস রেঞ্জের সঙ্গে প্রত্যাশার চেয়ে বেশি বার সংঘর্ষ করে। টিকিটে দুই রেঞ্জই লিখুন যাতে পরের পরিবর্তন ওভারল্যাপ আবার তৈরি না করে।
দুটি লক্ষ্যও আলাদা করুন: দুই নেটওয়ার্কে পৌঁছানো একটি রাউটিং সমস্যা, আর গোপনীয়তার জন্য টানেল শৃঙ্খলবদ্ধ করা ভিন্ন ডিজাইন যেখানে পথে একজন অতিরিক্ত অপারেটর থাকে। একটিকে দিয়ে অন্যটি সমাধান করবেন না।