ডিজাইন রিভিউতে “IPv6 BGP-এর উপর IPv6 L3VPN চালান” বললেই সেই একটিমাত্র বাক্যের ভেতরে তিনটি আলাদা সিদ্ধান্ত লুকিয়ে থাকে। কোন প্রিফিক্সগুলো গ্রাহকের VPN-এর, কোন ঠিকানাগুলো প্রোভাইডার এজের মধ্যে রাউটিং সেশন বহন করে, আর কোন কোর লেবেলযুক্ত প্যাকেটটি সরায় — এগুলো স্বতন্ত্র পছন্দ। সবগুলোই IPv6 হতে পারে, মিশ্রও হতে পারে, আর মিশ্রণ ইচ্ছাকৃতভাবেই অনুমোদিত। এই তিনটিকে আলাদা করাই অস্পষ্ট চাহিদাকে এমন কিছুতে বদলে দেয় যা দিয়ে প্ল্যাটফর্ম পরীক্ষা করা যায়।

তিনটি কাজ আলাদা করুন

প্রথম কাজ গ্রাহক রুট: যে IPv6 প্রিফিক্সগুলো একটি VPN রাউটিং কনটেক্সটের অন্তর্গত এবং অন্য সব কনটেক্সটের বাইরে থাকতে হবে। দ্বিতীয়টি হলো প্রোভাইডার এজ রাউটারগুলোর মধ্যে রাউটিং সংযোগ, যারা ওই প্রিফিক্সগুলো বিনিময় করে। তৃতীয়টি হলো ট্রান্সপোর্ট, যা লেবেলযুক্ত গ্রাহক প্যাকেট কোর পেরিয়ে দূরবর্তী এজে নিয়ে যায়। এদের একটির নাম বলাই এখনো ডিজাইন নয়।

JobThe question it answersWhat confusion looks like
Customer VPN routesWhich IPv6 prefixes belong to each VPN context, and how are they kept apart?Prefixes leak into the global table and between customers
PE-to-PE BGP sessionWhich addresses carry the routing connection between the two edges?A session-family mismatch gets chased as a core transport fault
Transport to the remote PEHow does the chosen core move the labelled packet to the far edge?A route is present and unforwardable in the same moment

প্রতিটি কাজের নিজস্ব অ্যাড্রেস ফ্যামিলি, নিজস্ব ব্যর্থতার ধরন এবং প্রায়শই নিজস্ব দল থাকে। টেবিলটি ঠিক এজন্যই কাজে লাগে, কারণ ডিজাইন ডকুমেন্টের একটি বাক্য তিনটি সারিকেই একটিতে নামিয়ে আনার প্রবণতা রাখে।

রুট ফ্যামিলি VPN-IPv6, IPv6 unicast নয়

RFC 4659 BGP/MPLS IPv6 VPN ফ্যামিলি সংজ্ঞায়িত করে, আর এতে সদস্যতা IPv6 শব্দটি যতটা বোঝায় তার চেয়ে সুনির্দিষ্ট। সেখানে রুট মানে হলো IPv6 প্রিফিক্সের সঙ্গে যুক্ত একটি রুট ডিসটিংগুইশার, যা AFI 2 ও SAFI 128-এর অধীনে এনকোড করা। সাধারণ IPv6 unicast আলাদা ফ্যামিলি, তাই looking glass-এ প্রিফিক্সের মতো দেখানো কোনো ঘোষণা আদৌ একই বস্তু নাও হতে পারে। ফ্যামিলিটি ভুল পড়াই এই ডিজাইন ভুল হওয়ার প্রথম পথ।

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

সেশন VPN-এর চেয়ে ভিন্ন ফ্যামিলিতে চলতে পারে

দুই এজের মধ্যে BGP সংযোগকে VPN-এর নিজস্ব ফ্যামিলি ব্যবহার করতে বাধ্য করে এমন কিছু নেই। স্পেসিফিকেশন IPv4 বা IPv6 সেশন দুটোই অনুমোদন করে, আর IPv6 VPN ট্রান্সপোর্ট নিজেই উভয় কোর ধরনের উপর সংজ্ঞায়িত। তাই IPv6 সেশন তার বহন করা জিনিসের ফ্যামিলি সম্পর্কে কিছুই বলে না, ডেটা প্লেনও বেছে নেয় না। তিনটি স্বতন্ত্র বিট, আর ডিজাইনে তিনটিই আলাদাভাবে থাকা উচিত।

এটি মুক্তিদায়ক, আবার একই সঙ্গে সহজেই ভুল পড়া যায়। IPv6 গ্রাহক রুট একটি IPv4-ঠিকানার সেশনে চলতে পারে, আর IPv4 রুট একটি IPv6 সেশনে, যদি প্ল্যাটফর্ম এই সমন্বয় সমর্থন করে এবং নেক্সট হপ রিজলভ হয়। যা ঘটতে দেওয়া যাবে না তা হলো সেশনকে পেলোডের ইঙ্গিত হতে দেওয়া, ডিজাইন ডকুমেন্টে বা পরে সেবা প্রমাণ করার মনিটরিংয়ে।

IPv4 কোরে নেক্সট হপের নিজস্ব এনকোডিং আছে

VPN-এর নিচের কোর IPv4 হলে, রুটটি এমন নেক্সট হপ নিয়ে আসে না যা ইনগ্রেস এজ সরাসরি ব্যবহার করতে পারে। এটি IPv4-ম্যাপড IPv6 আকারে আসে, আর নিচের ট্রান্সপোর্ট IPv4 হলে স্পেসিফিকেশন এভাবেই ইগ্রেস এজ প্রকাশ করে। এরপর ইনগ্রেস রাউটারকে ওই ম্যাপড ঠিকানাকে এমন কিছুতে বদলাতে হয় যা দিয়ে সে সত্যিই কোর পেরিয়ে পৌঁছাতে পারে, আর রিজলিউশনই সেই ধাপ যা নিঃশব্দে ব্যর্থ হয়।

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

চাহিদাটি চার লাইনে লিখুন

পরীক্ষার যোগ্য চাহিদা চারটি জিনিসের নাম বলে: VPN ফ্যামিলি, সেশন ট্রান্সপোর্ট, নেক্সট-হপ এনকোডিং এবং কোর বিন্যাস। তারপর একটি গ্রাহক প্রিফিক্সের নাম বলে যা শুরু থেকে শেষ পর্যন্ত অনুসরণ করতে হবে: বিনিময়, ইনস্টলেশন, লেবেল রিজলিউশন ও ফেরার পথ ধরে। “IPv6 BGP সমর্থন করে” চারটির একটিও ঢাকে না এবং অসঙ্গতিটি আসলে কোথায় তা লুকায়।

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

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