কেন route -interface লিংকের বাইরের হোস্টে পৌঁছাতে পারে না
ইন্টারফেস ফ্ল্যাগ macOS-কে বলে যে গন্তব্যটি তারের উপর রয়েছে। স্থানীয় লিংকের বাইরের সবকিছুর জন্য পৌঁছানো যায় এমন গেটওয়ে দরকার, এবং টানেল তবুও তা নাকচ করতে পারে।
route Wi-Fi ইন্টারফেসের নাম গ্রহণ করে, কোনো অভিযোগ ছাড়াই বেরিয়ে যায়, আর হোস্টটি অপ্রাপ্য থাকে। কিছুই নষ্ট হয়নি; রুটের সম্পর্কটি কেবল ভুল: একটি ইন্টারফেস ফ্ল্যাগ বলে গন্তব্য কোন লিংকে আছে, অন্য কোথাও থাকা গন্তব্যের জন্য কোন রাউটার ট্রাফিক পাবে তা নয়। কমান্ডটি সফল হয় কারণ এটি সিনট্যাক্সগতভাবে বৈধ, কারণ এটি কাজ করা পথ বর্ণনা করে নয়।
এই পার্থক্যই ঠিক করে VPN-এর পাশে একটি রুট ব্যতিক্রম কাজ করবে, নাকি কেবল বিশ্বাসযোগ্য দেখাবে।
ইন্টারফেস হলো প্রস্থান, নেক্সট হপ হলো হস্তান্তর
ঠিকানা 192.168.50.20 সহ একটি Mac এবং 192.168.50.1-এ একটি রাউটার থাকলে একই লিংকের অন্য মেশিন সরাসরি পৌঁছানো যায়। ফ্রেমটি সেই মেশিনের ঠিকানায় পাঠানো হয় এবং তারের উপর রাখা হয়। কোনো রাউটার জড়িত নয়, এবং ইন্টারফেস-সীমিত রুট ঠিক সেটাই প্রকাশ করে। দূরের প্রান্তটি অন্য ভবনের হোস্টে বদলালে একই কমান্ড অর্থহীন হয়ে যায়। Mac-এর তারের উপর রাখার মতো দ্বিতীয় স্তরের ঠিকানা নেই, তাই ইন্টারফেস ফ্ল্যাগের বর্ণনা করার কিছু থাকে না।
লিংকের বাইরের গন্তব্য ভিন্ন। Mac এমন হোস্টের ঠিকানায় ফ্রেম তারের উপর রাখতে পারে না যেখানে দ্বিতীয় স্তরে পৌঁছায় না; এটি প্যাকেটটি এমন রাউটারের কাছে দেয় যে পৌঁছাতে পারে। তাই রুটের একটি গেটওয়ে দরকার, এবং গেটওয়েটিকেই সংযুক্ত লিংকে পৌঁছানো যেতে হবে।
লিংকের বাইরের গন্তব্যের জন্য ইন্টারফেস ফ্ল্যাগ ব্যবহার করা macOS-কে বলে সেই গন্তব্যকে তারের উপর আছে বলে গণ্য করতে। তখন কার্নেল তার জন্য দ্বিতীয় স্তরের ঠিকানা সমাধান করতে ব্যর্থ হয়, এবং ত্রুটিতে কাজের মতো কিছু না রেখেই প্যাকেটটি ফেলে দেওয়া হয়।
ইন্টারফেস ফ্ল্যাগ আসলে কী দাবি করে
Apple-এর রুট রেফারেন্স এমন গন্তব্যের জন্য ইন্টারফেস রূপ সংজ্ঞায়িত করে যা মধ্যস্থতাকারী ছাড়াই সরাসরি পৌঁছানো যায়। এটি লিংক মডেল সম্পর্কে একটি বিবৃতি, কোন অ্যাডাপ্টার ব্যবহার করবেন সেই পছন্দ নয়। Wi-Fi দিয়ে ইন্টারনেট হোস্টে পৌঁছাতে এখনও সেই Wi-Fi লিংকে একটি রাউটার দরকার, এবং রুটকে তা নাম দিতে হবে।
ইন্টারফেস স্কোপ একটি পৃথক বৈশিষ্ট্য। এটি স্কোপিং সিদ্ধান্তের জন্য, যেমন কোন সোর্স ঠিকানা প্রযোজ্য, একটি রুটকে নির্দিষ্ট ইন্টারফেসের সঙ্গে যুক্ত করে, কিন্তু ইন্টারফেস নিজে যে গন্তব্যে পৌঁছাতে পারে না তার জন্য প্রাপ্যতা তৈরি করে না। দুটি বৈশিষ্ট্য ভিন্ন প্রশ্নের উত্তর দেয়।
এজন্যই একটি কমান্ড গ্রহণ করা যেতে পারে, টেবিলে দেখা যেতে পারে, তবুও ব্যর্থ হতে পারে। কার্নেল আপনার উদ্দেশ্য যাচাই করছে না; এটি আপনি যা দাবি করেছেন তা রেকর্ড করছে, আর দাবিটি ছিল গন্তব্যটি লিংকে আছে। নীরব সাফল্যের পরে নীরব বর্জনই প্রত্যাশিত ফল, বাগ নয়। নেটওয়ার্ককে দোষ দেওয়ার আগে দাবিটি নিজেকে আবার পড়ে শোনান।
লিংকের বাইরের গন্তব্যের যে রুট দরকার
LAN রাউটার হয়ে 198.51.100.25-এর মতো ডকুমেন্টেশন ঠিকানায় অনুমোদিত পথের জন্য অভিপ্রেত সম্পর্ক হলো একটি গন্তব্য, 192.168.50.1-এর নেক্সট হপ, এবং সেই নেক্সট হপে পৌঁছানো LAN ইন্টারফেস। ইন্টারফেস রুট কমান্ড দ্বারা চাপিয়ে দেওয়া হয় না, নেক্সট-হপ অনুসন্ধান থেকে অনুমিত হয়।
macOS-এ কেবল-পঠনযোগ্য পরিদর্শন হলো route -n get 198.51.100.25। গেটওয়ে ও ইন্টারফেস লাইন একসঙ্গে পড়ুন এবং যাচাই করুন গেটওয়ে এমন ঠিকানা যা Mac সত্যিই পৌঁছাতে পারে। ভিন্ন সাবনেটের গেটওয়ে, বা শেষ নেটওয়ার্ক পরিবর্তনের পর থেকে চলে যাওয়া গেটওয়ে, এমন রুট তৈরি করে যা সঠিক দেখায় আর কিছুই ফরওয়ার্ড করে না।
টেকসই নির্দেশে en0 হার্ডকোড করবেন না। অ্যাডাপ্টার, ডক এবং VPN ক্লায়েন্টের সঙ্গে ইন্টারফেসের নাম বদলায়, আর ভুলটির নাম দেওয়া রুট এমনভাবে ব্যর্থ হয় যা সহজে বৃহত্তর নেটওয়ার্ক ত্রুটি হিসেবে পড়া যায়।
প্রতিস্থাপনের আগে বর্তমান পছন্দ পড়ুন
কিছু যোগ করার আগে সিস্টেম ইতিমধ্যে কী বেছে নিয়েছে এবং কেন তা দেখুন। সেই আউটপুট বলে ট্রাফিক টানেল দিয়ে, LAN রাউটার দিয়ে, নাকি কোথাও না গিয়ে যাচ্ছে, এবং পরিবর্তনের পরে তুলনার জন্য একটি ভিত্তি দেয়। এটি ছাড়া নতুন রুট কার্যকর হয়েছে কি না বুঝতে পারবেন না।
তারপর ঠিকানা পরিবার দেখুন। IPv4-এর জন্য যোগ করা রুট IPv6 গন্তব্যের জন্য কিছুই করে না, এবং উভয় পরিবারে সমাধান হওয়া সেবা মাঝে মাঝে প্রাপ্য মনে হতে পারে। রুট টেবিল ও রিজলভার ভিন্ন প্রশ্নের উত্তর দেয়, এবং দুটিকেই অভিপ্রেত পথের সঙ্গে মিলতে হবে।
শেষে মনে রাখুন, রুট একটি নির্বাচন, অনুমতি নয়। ম্যানেজড VPN প্রোফাইল বা ক্লায়েন্ট ফিল্টার টেবিল সেদিকে ইশারা করলেও সরাসরি পথ নিষিদ্ধ করতে পারে, তাই সফল টেবিল এন্ট্রি তদন্ত শেষ করে ধরে নেওয়ার বদলে আসল অ্যাপ্লিকেশন দিয়ে পরীক্ষা করুন।
টানেল ও নীতি আকৃতি বদলায়
পয়েন্ট-টু-পয়েন্ট ইন্টারফেস তাদের নিজস্ব ঘটনা। একটি টানেল Ethernet-ধাঁচের গেটওয়ে ঠিকানা ছাড়াই রুট বহন করতে পারে, এবং তা স্বয়ংক্রিয়ভাবে ভুল নয়। যে কোনো টেবিল এন্ট্রিতে Wi-Fi উদাহরণ বাড়ানোর বদলে ইন্টারফেসের প্রকৃত লিংক মডেল প্রয়োগ করুন।
পরিবর্তনের অনুরোধের জন্য গন্তব্য, অনুমোদিত নেটওয়ার্ক পথ, বর্তমান গেটওয়ে ও ইন্টারফেস, এবং ব্যতিক্রমটি কে রক্ষণাবেক্ষণ করবে তা লিখুন। মালিক গুরুত্বপূর্ণ, কারণ প্রম্পটে টাইপ করা এককালীন রুট নীতি নয়, আর পরের পুনঃসংযোগ তা মুছে দেবে।
যদি প্রয়োজন হয় VPN চালু থাকা অবস্থায় এই হোস্টে পৌঁছানো, সৎ উত্তর সাধারণত লোকাল রাউটার দিয়ে নির্দিষ্ট হোস্ট রুট, যা ইন্টারফেসের মালিক নেটওয়ার্ক ম্যানেজার ইনস্টল করে। যদি প্রয়োজন হয় সরাসরি যেকোনো কিছুতে পৌঁছানো, তবে প্রয়োজনটিরই রুট কমান্ডের আগে নীতি পর্যালোচনা দরকার।