কেউ আপনাকে একটি প্রথম ও একটি শেষ ঠিকানা দিয়ে VPN রুট চায়। প্রলুব্ধকর পদক্ষেপটি হলো দুই প্রান্ত ধারণ করে এমন সবচেয়ে ছোট প্রিফিক্স বেছে নেওয়া, আর সেই পদক্ষেপটি নিঃশব্দে এমন গন্তব্য যোগ করে যা কেউ চায়নি। একটি CIDR ব্লকের আকার সর্বদা দুইয়ের ঘাত এবং শুরুর ঠিকানা তার সাথে সারিবদ্ধ, তাই একটি ইচ্ছামতো ব্যবধানের সাধারণত একটির বেশি প্রয়োজন হয়। ব্যবধানটি ধাপে ধাপে দেখুন, এটিকে নিখুঁতভাবে ভাগ করুন, তারপর ঠিক তার বাইরের ঠিকানাগুলো যাচাই করুন।

প্রিফিক্স নয়, ব্যবধান দিয়ে শুরু করুন

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

সারিবদ্ধ ব্যবধান একটি ব্লকে গুটিয়ে যায়। অসারিবদ্ধ ব্যবধান কয়েকটিতে ভেঙে যায়, এবং সেই বিভাজন আনুমানিক নয়, নিখুঁত। যা করা যাবে না তা হলো বাইরের দিকে গোল করে এটিকে যথেষ্ট কাছাকাছি বলা, কারণ অতিরিক্ত ঠিকানাগুলো রুট যে নীতি বহন করে তা-ই পায়।

ভুলের দুই দিকই গুরুত্বপূর্ণ। টানেলে যাওয়া রুটের ক্ষেত্রে অতিরিক্ত ঠিকানাগুলো VPN-এ টেনে নেওয়া হয়। বাইপাস ব্যতিক্রমের ক্ষেত্রে অতিরিক্ত ঠিকানাগুলো এটি এড়িয়ে যায়। যে রুট টেবিল কেবল আপনার বসানো প্রিফিক্স দেখায়, তাতে কোনো ফলাফলই দৃশ্যমান নয়।

প্রথম ঘটনা: ব্যবধানটি সুযোগক্রমে সারিবদ্ধ

198.51.100.64 থেকে 198.51.100.127 নিন। প্রথম ঠিকানাটি 64 ঠিকানার সীমায় সারিবদ্ধ এবং ব্যবধানটি ঠিক 64 ঠিকানা, তাই একটি একক /26 কোনো উদ্বৃত্ত ছাড়াই এটিকে বর্ণনা করে।

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

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

দ্বিতীয় ঘটনা: সারিবদ্ধ নয়, তাই ভাগ করুন

এখন 198.51.100.100 থেকে 198.51.100.107 নিন। এটি আটটি ঠিকানা, যা দুইয়ের ঘাত, কিন্তু 100 আটের গুণিতক নয়। সেই আকারের একটি একক ব্লক সেখানে শুরু হতে পারে না, তাই ব্যবধানটি একটির বেশি দিয়ে ঢাকতে হবে।

নিখুঁত আচ্ছাদন হলো দুটি /30 ব্লক: 198.51.100.100/30 100 থেকে 103 ঢাকে, এবং 198.51.100.104/30 104 থেকে 107 ঢাকে। মোট আটটি ঠিকানা, ব্যবধানের বাইরে কিছুই নেই, এবং প্রদত্ত ব্যবধানের জন্য বিভাজনটি অনন্য।

python3 -c "from ipaddress import ip_address, summarize_address_range as s; print(*s(ip_address('198.51.100.100'), ip_address('198.51.100.107')), sep='\n')"

স্ট্যান্ডার্ড লাইব্রেরির ফাংশনটি আপনার হয়ে গণনাটি করে, আর ipaddress ডকুমেন্টেশন ঠিক করে এটি কী ফেরত দেয়। যা এটি করে না তা হলো গেটওয়ে বাছাই করা, ঠিকানাগুলোর মালিক কে তা নির্ধারণ করা, বা তাদের পেছনের কোনো সেবায় প্রবেশাধিকার দেওয়া।

বিস্তৃত প্রিফিক্স কী ধরত তা মাপুন

একটি শর্টকাট মেনে নেওয়ার আগে এর খরচ গণনা করুন। 198.51.100.96 থেকে শুরু হওয়া একটি /28 96 থেকে 111 ঢাকে, যা আটটির বদলে ষোলোটি ঠিকানা। অতিরিক্ত আটটি হলো 96 থেকে 99 এবং 108 থেকে 111, আর তাদের প্রত্যেকেই রুটটি উত্তরাধিকার পেত।

python3 -c "from ipaddress import ip_network as n; w=set(n('198.51.100.96/28')); t=set(n('198.51.100.100/30'))|set(n('198.51.100.104/30')); print(len(w), len(t), sorted(w-t))"

আটটি অতিরিক্ত গন্তব্য হলো একটি নির্দিষ্ট সংখ্যা যা আপনি পরিবর্তনের অনুরোধে লিখতে পারেন। এটি সেই সংখ্যাও যা ঠিক করে শর্টকাটটি গ্রহণযোগ্য কি না, আর সেটি গণনার নয়, নীতির প্রশ্ন।

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

নিখুঁত সেটটি বসান এবং প্রান্ত যাচাই করুন

প্রতিটি ফলিত প্রিফিক্স VPN কনফিগারেশনের মালিককে দিন এবং সমর্থিত পদ্ধতিতে সেটি বসাতে দিন। প্রয়োজনীয়তায় দুটি এন্ট্রি দরকার হলে দুটি এন্ট্রি রাখুন, ফর্ম ছোট করতে একটি প্রশস্ত করবেন না।

sudo ip route add 198.51.100.100/30 via 10.90.0.1 dev tun0
sudo ip route add 198.51.100.104/30 via 10.90.0.1 dev tun0
ip route get 198.51.100.101
ip route get 198.51.100.97

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

প্রথম ঠিকানা, শেষ ঠিকানা এবং সেগুলো প্রকাশকারী প্রিফিক্সগুলো লিপিবদ্ধ করুন। নিয়মটি পর্যালোচনা করা পরবর্তী ব্যক্তি তখন গণনা আবার না করেই প্রয়োজনীয়তার সাথে কনফিগারেশন মিলিয়ে দেখতে পারবেন, এবং নিখুঁত রুট ও সুবিধাজনক রুটের পার্থক্য দৃশ্যমান থাকে।

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