ওই টানেল ঠিকানাটি একটি পিয়ার, ব্রাউজ করার মতো সাবনেট নয়
পয়েন্ট-টু-পয়েন্ট লিঙ্কে মাস্কটি প্রতিবেশীর পরিসর নয়, দূরবর্তী প্রান্তকে বর্ণনা করে। সাবনেট ভুল মনে হওয়ার আগে পিয়ার ঠিকানাটি পড়ুন।
আপনার ক্লায়েন্ট সংযোগ করে একটি ঠিকানা জোড়া দেখায়, বা একটি ঠিকানা 255.255.255.255 মাস্ক পরে দেখায়, আর প্রথম প্রতিক্রিয়া হয় যে সার্ভার কিছু ভাঙা দিয়েছে। কিছুই ভাঙা নয়: একটি টানেল ইন্টারফেস পয়েন্ট-টু-পয়েন্ট লিঙ্ক, এবং মাস্কটি প্রতিবেশীর পরিসর নয়, ওই একটি লিঙ্কের দূরবর্তী প্রান্ত বর্ণনা করে। জোড়াটিকে লোকাল ও পিয়ার হিসেবে পড়লে অদ্ভুত মাস্ক, তার পাশের একক-হোস্ট রুট এবং অনুপস্থিত প্রতিবেশী টেবিল ব্যাখ্যা হয়। একই পাঠ যা মাফ করে না তা হলো অফিস নেটওয়ার্কের সঙ্গে ওভারল্যাপ করা ঠিকানা পরিকল্পনা।
টানেল লিঙ্কে মাস্ক কেন ভুল দেখায়
Ethernet ইন্টারফেসে একটি ঠিকানা ও একটি মাস্ক দুটি কথা বলে: এই হোস্ট ঠিকানাটির মালিক, এবং প্রিফিক্সের ভেতরের সবকিছু সরাসরি প্রতিবেশী। কার্নেল এই দুটি তথ্য থেকে একটি অন-লিঙ্ক রুট বের করে, তারপর যে প্রতিবেশীরা উপস্থিত বলে সে মনে করে তাদের জন্য লিঙ্ক ঠিকানা সমাধান করে। পয়েন্ট-টু-পয়েন্ট ইন্টারফেস মালিকানা রাখে এবং প্রতিবেশীদের বাদ দেয়, তাই ক্লায়েন্ট লাইনের দ্বিতীয় ঠিকানাটি শেয়ার্ড সেগমেন্টের অন্য হোস্ট নয়, দূরবর্তী প্রান্ত। কোনো হার্ডওয়্যার অ্যাড্রেসিং নেই, কোনো রেজোলিউশন ট্রাফিক নেই এবং যোগ দেওয়ার মতো কোনো ব্রডকাস্ট ডোমেইন নেই, তাই ইন্টারফেসটি ঠিক একটি গন্তব্যস্থলযুক্ত পাইপের মতো আচরণ করে।
এই কারণেই প্রশস্ত মাস্কের পাশে হোস্ট রুট এখানে উপসর্গ নয়, স্বাভাবিক। এই লিঙ্কে পৌঁছানো মানে একটি ঠিকানা, এবং কার্নেল ঠিক সেটাই লিখে রাখে। দুই ঠিকানা একসঙ্গে পড়ুন কনফিগারেশনটি ভুল বলে সিদ্ধান্ত নেওয়ার আগে, কারণ প্রতিটি আলাদাভাবে ভুলের মতো দেখায়।
দুই টপোলজি, দুই ধরনের ঠিকানা
পুরোনো পয়েন্ট-টু-পয়েন্ট টপোলজি প্রতিটি ক্লায়েন্টকে একটি ছোট ব্লক দেয় এবং দুই মাঝের ঠিকানা ব্যবহার করে, তাই মাস্কটি পুল নয়, নেটওয়ার্কের একটি অংশের মতো দেখায়। সাবনেট টপোলজি পুল থেকে পুল-মাস্কসহ একটি ঠিকানা দেয় এবং সার্ভারের টানেল ঠিকানাকে পিয়ার বলে। দুটিই বৈধ লিঙ্ক তৈরি করে, এবং তারা কেবল প্রোফাইলে কোন ঠিকানাগুলো দেখায় এবং ব্যবহারকারী যে মাস্কটি নিয়ে প্রশ্ন তুলতে পারে তা দিয়েই আলাদা।
| Topology | Client address shape | Peer | Route to expect |
|---|---|---|---|
| Point-to-point block per client | Two neighbouring addresses inside a small block | The far address of that block | A single host route on the tunnel device |
| Shared pool | One address carrying the pool mask | The server's tunnel address | A single host route on the tunnel device |
যে সারিই আপনার ক্লায়েন্টের সঙ্গে মিলুক, আগে পিয়ারটি পড়ুন, কারণ এটি দূরবর্তী প্রান্তের নাম দেয় এবং তাই মাস্ক ব্যাখ্যা করে। ভিন্ন টপোলজি ব্যবহারকারী সার্ভারের মধ্যে কপি করা প্রোফাইল তার নতুন ঠিকানার জন্য ভুল আকৃতি দেখাবে, এবং ওই অমিলকে সহজেই সার্ভারের ত্রুটি ভাবা হয়।
যখন পুল ও অফিস নেটওয়ার্ক একই বিট দাবি করে
যেহেতু লিঙ্কটি রাউটেড, পুলের এমন একটি প্রিফিক্স দরকার যা সার্ভার যে নেটওয়ার্কগুলোতে পৌঁছাতে পারে তার কোথাও নেই। একটি শেয়ার করুন আর ক্লায়েন্ট এমন পরিসরের জন্য একটিমাত্র রুট ধরে রাখে যা দুই জায়গা বোঝায়, এবং কোন জায়গা জিতবে তা ঠিক করে সর্বশেষে ইনস্টল করা রুট। ত্রুটিটি ক্লায়েন্টে দেখা যায়, যদিও তার পেছনের সিদ্ধান্তটি ঠিকানা পরিকল্পনার। ব্যবহারকারীরা জানান, টানেল উঠলে লোকাল রাউটারটি অদৃশ্য হয়ে যায়, অথবা কেবল কিছু অফিস হোস্ট উত্তর দেয়।
শুধু দেখতে একই রকম প্রিফিক্স আরেকটি ঘটনা, এবং চোখে অক্টেট মেলানো প্রিফিক্স তুলনা নয়। দুটিই লিখে মাস্ক করা বিট গণনা করুন: 192.168.4.0/24 বনাম 192.168.6.0/24 বিট 22 পর্যন্ত মেলে এবং বিট 23-এ আলাদা হয়, কারণ তৃতীয় অক্টেটটি পড়া হয় 00000100 বনাম 00000110, তাই ওই দুই নেটওয়ার্ক সত্যিই আলাদা। 10.8.0.0/24-এর পাশে আরেকটি 10.8.0.0/24 রেখে দিন এবং 24টি মাস্ক করা বিটই মেলে, অর্থাৎ একটি রুট দুই জায়গাই প্রকাশ করতে পারে না। মাস্কের দৈর্ঘ্য ঠিক করে তুলনা কোথায় থামে, এবং যেটি পরে ইনস্টল হয়েছে সেই নেটওয়ার্কই হারে।
রাউটেড লিঙ্ক কী দিতে পারে না
ব্রডকাস্ট ও মাল্টিকাস্ট রাউটেড লিঙ্ক পেরোয় না, এবং বেশ কিছু পরিচিত বৈশিষ্ট্য তাদের ওপর গড়া। ব্রাউজ তালিকা, নাম ঘোষণা ও সার্ভিস ডিসকভারি সবই শেয়ার্ড সেগমেন্ট ধরে নেয়, তাই একটি ফাইল সার্ভার ঠিকানা দিয়ে প্রতিটি অনুরোধের উত্তর দিতে পারে এবং তবুও কোনো তালিকায় কখনো দেখা যায় না। লিঙ্ক-লোকাল ব্রডকাস্টের ওপর নির্ভর করা নাম সমাধান একই কারণে ব্যর্থ হয়, এবং কোনো প্রোফাইল সম্পাদনা টানেল কী বহন করতে পারে তা বদলায় না। এটি গুরুত্বপূর্ণ কি না তা রাউটিং নয়, চাহিদার প্রশ্ন।
যে ক্লায়েন্টের সত্যিই ওই ডেলিভারিগুলো দরকার তার ব্রিজড ইন্টারফেস লাগে, যা Ethernet ফ্রেম বহন করে এবং তাই ব্রডকাস্ট ডোমেইন রাখে। খরচ হলো আরও কোলাহলপূর্ণ লিঙ্ক, ওপরে বর্ণিত পরিষ্কার অ্যাড্রেসিংয়ের ক্ষতি, এবং লুপ দেখা দেওয়ার পর অনেক বড় ব্যর্থতার ক্ষেত্র। বদলানোর আগে চাহিদাটি যুক্তিযুক্ত করুন, এবং চাহিদা কেবল নাম নিয়ে হলে রাউটেড লিঙ্কে কাজ করে এমন নাম সেবাকে প্রাধান্য দিন।
প্রোফাইল সম্পাদনার আগে ইন্টারফেস পড়া
কার্নেল কী ইনস্টল করেছে তা জিজ্ঞাসা করুন, প্রোফাইল কী বলে মনে হয় তা নয়। ঠিকানা আউটপুট মাস্ক ব্যাখ্যা করা পিয়ারটি দেখায়, এবং রুট আউটপুট সেখানে পথ আছে কি না দেখায়। দুটিই টানেল ডিভাইসের বিরুদ্ধে চালাতে এক মুহূর্ত লাগে এবং প্রশ্নটির নিষ্পত্তি করে।
ip -4 addr show dev tun0
ip route show dev tun0
ip route get 10.8.0.1
যদি ওই তিনটি মিলে যায়, প্রোফাইল যা করার জন্য কনফিগার করা হয়েছিল তা-ই করছে, আর বাকি সমস্যা অন্যত্র। টপোলজি কেবল এমন কারণে বদলান যা একটি অনুপস্থিত সামর্থ্যের নাম দেয়, কারণ অপরিচিত মাস্ক তেমন কিছু নয়।