দুটি প্রোফাইলই সংযুক্ত বলে জানায়, আর তাদের একটি চুপচাপ অন্যটির জন্য নির্দিষ্ট ট্র্যাফিক বহন করছে। এক হোস্টে দুটি ক্লায়েন্ট সমর্থিত ব্যবস্থা; কিন্তু প্রতিটি প্রিফিক্সের জন্য মালিকহীন দুটি ক্লায়েন্ট নয়। কাজটি দ্বিতীয় টানেল তোলার চেয়ে কোন প্রক্রিয়া কোন রুট দাবি করতে পারবে তা ঠিক করার বিষয় বেশি। নিচের ক্রমে এগোন, উত্তর থেকেই কনফিগারেশন আসবে।

দ্বিতীয় টানেলটি কী কাজে, তা জিজ্ঞাসা করে শুরু করো

তিনটি পরিস্থিতি স্টেটাস লাইনে একই রকম দেখায় এবং ভিন্ন নকশা দাবি করে। গন্তব্য-ভাগ একটি প্রিফিক্স অফিস প্রোফাইলের মধ্য দিয়ে এবং আরেকটি ল্যাব প্রোফাইলের মধ্য দিয়ে পাঠায়, কোনোটিই ডিফল্ট রুট দাবি করে না। প্রতি-অ্যাপ্লিকেশন ভাগ সাধারণত একটি পূর্ণ টানেল রাখে এবং নীতি-নিয়মে নির্দিষ্ট ট্র্যাফিক চালায়। ফেইলওভার একসঙ্গে ঠিক একটি টানেল চালু রাখে, অর্থাৎ দ্বিতীয়টি স্বয়ংক্রিয়ভাবে শুরু হওয়া উচিত নয়।

কোনো কনফিগারেশন ফাইল খোলার আগে কেসটি লিখে রাখো, কারণ সেই উত্তরই পরের সবকিছু নির্ধারণ করে।

সবচেয়ে সাধারণ ভাঙা ব্যবস্থাটি হলো দুটি পূর্ণ টানেল, যাদের দুটিই ডিফল্ট রুট পাঠিয়েছে; সেখানে শেষে সংযুক্তটি জেতে আর প্রথমটি ভান করে চলে। এই অবস্থাটি স্টেটাস লাইন থেকে ইচ্ছাকৃত মনে হয় এবং রাউটিং টেবিল থেকে একটি দিন নষ্ট করে। কেসটির নাম আগে দিলে এটি কেবল অসম্ভাব্য নয়, অসম্ভব হয়ে ওঠে।

রুটের আগে পুলগুলো দেখো

দুটি সার্ভার সহজেই একটি প্রাইভেট রেঞ্জ থেকে ঠিকানা বিলি করতে পারে, আর তা করলে ক্লায়েন্ট একটি প্রিফিক্সের ভেতরেই দুটি ইন্টারফেস নিয়ে শেষ করে। তখন ঠিকানা অনুযায়ী কোনো গন্তব্যকে ইন্টারফেসে আরোপ করা যায় না, কারণ দুটিই সমানভাবে সঠিক দেখায়। সমতা ভাঙার নিয়ম উদ্ভাবনের বদলে একটি পুল পুনরায় নম্বর দাও।

স্থানীয় নেটওয়ার্কও দেখো, কারণ টানেল রেঞ্জের সঙ্গে ওভারল্যাপ করা বাড়ি বা অফিসের LAN অন্যদিক থেকেও একই অস্পষ্টতা তৈরি করে। ক্লায়েন্টকে দোষারোপের আগে হোস্টের ঠিকানাগুলো দুই সার্ভার কনফিগারেশনের সঙ্গে মিলাও। ল্যাব সার্ভারে পুল বদল পাঁচ মিনিটের মেরামত, কিন্তু ওভারল্যাপিং প্রিফিক্সের জন্য নীতি-রাউটিংয়ের ঘুরপথ পরবর্তীতে কনফিগারেশন পড়া প্রত্যেকের জন্য স্থায়ী কর। কোথায় হস্তক্ষেপ করবে তা বাছার আগে এ দুটির কোনটি চাও তা ঠিক করো।

দুটি ঠিকানা পরিবার মানে এই পরীক্ষার দুই রাউন্ড। IPv6 পুল IPv4 পুলের মতোই চুপচাপ সংঘর্ষ করে।

প্রতিটি প্রোফাইলকে একটি মালিক দাও

প্রতি প্রোফাইলে একটি ইনস্ট্যান্স, প্রতি ইনস্ট্যান্সে একটি কনফিগারেশন ফাইল, আর জোড়াটিকে চিহ্নিত করা একটি নাম। Debian-ধাঁচের প্যাকেজিংয়ে @ চিহ্নের পরের নামই ফাইল বেছে নেয়, তাই একই ইনস্ট্যান্স নাম ভাগ করা দুটি প্রোফাইল কখনোই একসঙ্গে কাজ করতে পারে না। টিউটোরিয়াল থেকে নয়, ইনস্টল করা ইউনিট থেকেই ম্যাপিংটি নিশ্চিত করো।

systemctl cat [email protected]
ip -4 addr show

তারপর ঠিক করো কে রুট ইনস্টল করবে — এটি সিনট্যাক্সের প্রশ্ন নয়, নীতির প্রশ্ন।

দুটি সার্ভার যখন বেমানান সেট পাঠায়, তখন হয় যোগ করোroute-nopull এবং প্রতিটি প্রোফাইলের প্রয়োজনীয় প্রিফিক্সগুলোই তালিকাভুক্ত করো, নয়তো একটিকে তার ডিফল্ট রুট রাখতে দাও এবংবাকিটা নীতি-নিয়মে চালাও। দুটি প্রক্রিয়া যখন দুটিই ডিফল্ট রুট ইনস্টল করে, শেষে একজনই বিজয়ী হয় আর কেউ বলতে পারে না কেন। দুটি টানেল ভিন্ন উৎসের ট্র্যাফিক বহন করা শুরু করলে উত্তর ভুল টানেল দিয়ে বেরোতে পারে, আর যে প্যাটার্ন টেকে তা হলো উত্তরগুলোতে পুনরুদ্ধার করা এবং নিজের টেবিলে চালানো একটি সংযোগ-চিহ্ন। চিহ্নগুলোর পরিসর এমনভাবে সীমিত করো যেন টানেলগুলোর নিজস্ব এনক্রিপ্টেড প্যাকেট কখনো তাদের সঙ্গে মেলে না।

প্রতি টানেলে যাচাই করো, তারপর একটি থামাও

দুটিই চালু হলে তিনটি পাঠ নাও: প্রতিটি টানেল ডিভাইসের ঠিকানা, প্রতিটির পেছনে থাকা হোস্টের রুট, এবং দুটির বাইরের কোনো গন্তব্য যে পথ নিত। নিয়ম চালু হওয়ামাত্রই সাধারণ রুট তালিকা চূড়ান্ত লুকআপ বর্ণনা করা বন্ধ করে, তাই কার্নেলকে জিজ্ঞাসা করো সে আসলে কী বেছে নিত। তারপর একটি ইনস্ট্যান্স থামিয়ে দেখো কী হারিয়ে যায়। প্রথমটি থামালে দ্বিতীয়টি ব্যাহত হলে, তাদের মধ্যে কিছু এখনো ভাগ করা আছে: একটি রুট, একটি ডিভাইসের নাম, বা এমন একটি ফায়ারওয়াল নিয়ম যা কেউ আলাদা করেনি।

ip rule show
ip route get 203.0.113.9

থামানো প্রোফাইলটি ফিরিয়ে আনো এবং একই পরীক্ষাগুলো আবার করো, কারণ রিবুটের পর একবার কাজ করে আর কখনোই না — এমন টানেল রাউটিংয়ের পোশাক পরা জীবনচক্রের বাগ।

ডিপ্লয়মেন্ট নোটে লিখে রাখো কোন প্রোফাইল কোন প্রিফিক্সের মালিক, পুল রেঞ্জের পাশে। দুটি টানেল একটি সচেতন ব্যবস্থা, আর পরের পাঠককে যেকোনো প্রোফাইল স্পর্শ করার আগে সীমাটি দৃশ্যমান দেখা দরকার। সেই নোট ছাড়া, ভাগ করা প্রিফিক্স শেষে ভাঙলে যে ডিউটিতে থাকে সে-ই সীমাটি আবার আবিষ্কার করে।

সম্পর্কিত নিবন্ধ