macOS-এ সার্ভিস অর্ডার আপনার VPN রুট নিয়ন্ত্রণ করে না
সার্ভিস অর্ডার সাধারণ ইন্টারফেসের মধ্যে বেছে নেয়। একটি VPN ইতিমধ্যেই সেগুলোর উপরে, আর তার অন্তর্ভুক্ত রুটগুলো প্রোফাইল থেকে আসে, ওই তালিকা থেকে নয়।
ওয়েবসাইটে কিছু একটা ব্যর্থ হয়, সহকর্মী মনে করেন সার্ভিস অর্ডার বলে কিছু আছে, আর Wi-Fi-কে Ethernet-এর উপরে টেনে আনা হয়। কিছুই বদলায় না, কারণ ওই তালিকা কখনো ঠিক করেনি VPN গন্তব্য কোথায় যাবে। Apple VPN সংযোগকে সাধারণ সংযোগের চেয়ে অগ্রাধিকার দেয় এবং সেগুলোকে ওই পুনর্বিন্যাসের বাইরে রাখে, তাই সুইচটি জিজ্ঞাসিত প্রশ্নের চেয়ে সংকীর্ণ প্রশ্নের উত্তর দেয়। ব্যর্থতার জন্য দরকার নির্বাচিত রুট আর রিজলভার, নতুন কোনো ক্রম নয়।
সার্ভিস অর্ডার কী বদলায়, আর কী কখনো স্পর্শ করে না
Set Service Order আছে সিস্টেম সেটিংস, নেটওয়ার্ক, Action মেনুতে, এবং এটি সাধারণ সংযোগকে ক্রমে সাজায় যখন দুই বা তার বেশি সক্রিয় থাকে। ওই ক্রম প্রাথমিক সার্ভিস বেছে নেয়, যা ডিফল্ট রুট এবং রিজলভার আচরণের একটি অংশ যোগায়। এটি সমকক্ষদের মধ্যে টাই-ব্রেক, টানেলের পিছনের ব্যক্তিগত গন্তব্যের জন্য সুইচ নয়। Wi-Fi আর USB Ethernet অ্যাডাপ্টারযুক্ত ল্যাপটপ এটি ব্যবহার করে একটি যুক্তিসঙ্গত প্রশ্নের উত্তর দিতে, এবং সেই প্রশ্ন টানেল নিয়ে নয়।
একটি VPN প্রোফাইল অন্তর্ভুক্ত রুট, বাদ দেওয়া গন্তব্য এবং কখনো অ্যাপ-ভিত্তিক নিয়ম বহন করে, আর সেগুলো ঠিক করে টানেলে কী ঢোকে; অর্ডারিং মেনু সেগুলো সম্পাদনা করে না। তাই একটি স্প্লিট-টানেল প্রোফাইল পাবলিক ট্র্যাফিক বাইরে রাখতে পারে, অথচ VPN তখনো প্রতিটি ফিজিক্যাল ইন্টারফেসের উপরে। Wi-Fi-কে উপরে টেনে আনা একটি ব্যক্তিগত রেঞ্জ পৌঁছানোর যোগ্য করে না, এবং প্রোফাইল ইতিমধ্যে যে গন্তব্য অন্তর্ভুক্ত করেছে সেটি থামাতে পারে না। তালিকা ইন্টারফেস সরায়; প্রোফাইল প্রিফিক্স সরায়। Apple অগ্রাধিকারটি নেটওয়ার্ক সার্ভিস অর্ডার পৃষ্ঠায় নথিভুক্ত করে, যা কিছু পুনর্বিন্যাস করার আগে একবার পড়া উচিত।
মেশিন আসলে যে রুট বেছে নিয়েছে সেটি পড়ুন
নির্দিষ্ট ঠিকানা কোথায় যায় তা মেশিনকে জিজ্ঞাসা করুন route get 10.20.4.10 দিয়ে, তারপর IPv6-এর জন্য route -n get -inet6 2001:db8::10 দিয়ে পুনরাবৃত্তি করুন। দুটি পরিবার আলাদা সিদ্ধান্ত, তাই কাজ করা একটি IPv4 পথ v6 পথ সম্পর্কে কিছুই বলে না, আর সরাসরি সংযুক্ত সাবনেট বা আরও নির্দিষ্ট প্রিফিক্স যেকোনোভাবেই সাধারণ সংযোগ লেবেলকে হারিয়ে দেয়, ঠিক এ কারণেই লেবেলটি মানুষকে বিভ্রান্ত করতে থাকে।
আউটপুট যদি টানেল ইন্টারফেসের নাম বলে, তবে প্রোফাইল গন্তব্যটি ধরে ফেলেছে এবং ক্রমটি অপ্রাসঙ্গিক। যদি এটি ফিজিক্যাল ইন্টারফেসের নাম বলে, তবে প্রোফাইল ধরেনি, আর যতই টানাটানি করুন প্রিফিক্স টেবিল বদলাবে না। দুটি আউটপুটই মেশিন যে সোর্স ঠিকানা ব্যবহার করত তার নামও বলে, আর দুটি রান তুলনা করার সময় এটিই উদ্ধৃত করার ক্ষেত্র। কিছু বদলানোর আগে আউটপুট সংরক্ষণ করুন, কারণ পরে এটিই একমাত্র প্রমাণ থাকবে।
DNS ইন্টারফেস দিয়ে নয়, নাম দিয়ে সমাধান করে
স্কোপড ও ডোমেইন-নির্দিষ্ট রিজলভার মানে উত্তর ইন্টারফেস অনুযায়ী নয়, নাম অনুযায়ী ভিন্ন হতে পারে। scutil --dns সিস্টেম আসলে যে রিজলভার কনফিগারেশন ব্যবহার করছে তা ছাপে, স্কোপড এন্ট্রিসহ। সার্ভিস অর্ডার প্রভাব ফেলে কোন সার্ভিস ডিফল্ট রিজলভার দেয়, কিন্তু নাম-নির্দিষ্ট স্কোপ যেকোনোভাবেই জিততে পারে।
তাই ঠিকানায় ping কাজ করতে পারে অথচ হোস্টনেম ব্যর্থ হয়, বা উল্টোটা। দোষী বেছে নেওয়ার আগে দুটি আউটপুটই পড়ুন।
প্রোফাইল বদলান, তারপর দুটি আউটপুট আবার পড়ুন
যখন গন্তব্য নীতিতে পরিবর্তন দরকার, মালিক হলো VPN প্রোফাইল: অন্তর্ভুক্ত রুট, বাদ দেওয়া রুট এবং ভেন্ডর যে স্প্লিট-টানেল নিয়ম সমর্থন করে। তার বদলে ইন্টারফেস বদলানো শুধু তর্কটি সরায়। দূর থেকে পরিচালিত Mac-এ আগে বর্তমান নেটওয়ার্ক অবস্থা সংরক্ষণ করুন, কারণ যে মেশিনে আপনি পৌঁছাতে পারেন না সেখানে টানেল হারানো রোলব্যাক নয়, একটি সফর।
ব্যর্থতা পুনরুৎপাদন করুন, রুট পড়ুন, রিজলভার পড়ুন, একটি জিনিস বদলান, তারপর আবার একই দুটি আউটপুট পড়ুন। একসাথে কয়েকটি সার্ভিস ও প্রোফাইল এলোমেলো করা এমন একটি মেশিন রেখে যায় যা কেউ ব্যাখ্যা করতে পারে না, যে ঠিক করেছে সে-ও নয়। পরীক্ষা শেষ হয় যখন দুটি আউটপুট আপনার ইচ্ছাকৃত পরিবর্তনের সঙ্গে মেলে। যদি তারা এখনো না মেলে, প্রোফাইল আর মেশিন দুটি ভিন্ন নীতি বর্ণনা করছে, আর বদলাতে হবে প্রোফাইলটিকে।