IPv4 VPN সার্ভার দিয়ে IPv6 চালালেও আলাদা IPv6 এক্সিট লাগে
IPv4 টানেলের ভিতরে IPv6 বহন করা সহজ অর্ধেক। এক্সিটের এখনও দরকার সত্যিকারের IPv6 আপস্ট্রিম, ব্যবহারযোগ্য সোর্স প্রিফিক্স আর পুলের জন্য ফেরত রুট।
টানেল উঠে আসে, ক্লায়েন্ট পুল থেকে একটি IPv6 ঠিকানা পায়, তবুও প্রতিটি IPv6 গন্তব্যে সময় শেষ হয়ে যায়। টানেলে কিছুই ভাঙা নেই: IPv6 পুরোপুরি ভালোভাবেই IPv4 পরিবহনের ভিতরে চলে, আর সেটি কখনওই কঠিন অংশ ছিল না। যে ঠিকানাটি তুমি দিয়েছ, সেটি এমন এক প্রতিশ্রুতি যা সার্ভার রাখতে পারে না, কারণ এক্সিটের কাছে পাঠানোর মতো কোনো IPv6 আপস্ট্রিম নেই। মেরামতের জায়গা এক্সিটে, ক্লায়েন্ট প্রোফাইলে নয়।
উপসর্গ: ঠিকানা আছে, পথ নেই
ক্লায়েন্টের দিকে একটি পরীক্ষা টানেল ডিভাইসে বৈশ্বিক দেখতে একটি IPv6 ঠিকানা আর তার দিকে নির্দেশ করা একটি রুট দেখায়, তাই এটিকে ভুলভাবে ক্লায়েন্টের ত্রুটি হিসেবে পড়া হয়। ট্রাফিক টানেলে ঢোকে, সার্ভার তার এনক্যাপসুলেশন খোলে, তারপর প্যাকেটটি এমন এক হোস্টে পৌঁছায় যার রাউটিং টেবিলে বাস্তব কোনো জায়গার দিকে IPv6 ডিফল্ট রুট নেই। স্ট্যাকের ওপর নির্ভর করে তুমি তাৎক্ষণিক অপ্রাপ্যতা বা নীরব বাদ পড়া পাবে, আর দুই ক্ষেত্রেই ক্লায়েন্ট এমন একটি টাইমআউট দেখে যা ফায়ারওয়ালের মতোই দেখায়।
ক্লায়েন্টে হাত দেওয়ার আগে সার্ভারের নিজের রাউটিং টেবিল পড়ো, কারণ পথের যে অর্ধেকটি অনুপস্থিত তা ওখানেই থাকে। একটি IPv4 ডিফল্ট রুট থাকা সার্ভার তোমাকে উত্তর আগেই দিয়ে দিয়েছে।
ডিক্যাপসুলেশনের পরে প্যাকেটটি অনুসরণ করো
টানেলের ভিতরে প্যাকেটটি সাধারণ IPv6, আর উৎস হলো ক্লায়েন্টের ঠিকানা। সার্ভার পরিবহন এনক্যাপসুলেশনটি খুলে ফেলে এবং তখন একটি নেটিভ IPv6 প্যাকেট ধরে থাকে যা IPv6 পরবর্তী হপে পাঠাতে হবে। একটি IPv4 ডিফল্ট রুট এটি বহন করতে পারে না, আর এটিকে IPv4-এ অনুবাদ করা ভিন্ন একটি কাজ যা কেউ স্থাপন করেনি। এটাই পুরো ব্যর্থতা, আর VPN লিসেনার IPv4-এর ওপর উত্তর দিয়েছিল কি না তার সঙ্গে এর কোনো সম্পর্ক নেই।
IPv4-এর ওপর IPv6 এনক্যাপসুলেশনের কার্যপ্রণালী RFC 4213-এ বর্ণিত, আর সেখানকার গুরুত্বপূর্ণ বিষয় হলো প্রান্তবিন্দুগুলোর এখনও টানেলের ওপারে সত্যিকারের IPv6 সংযোগ দরকার। হেডার মুড়ে দিলে আপস্ট্রিম জাদুতে তৈরি হয় না।
দুটি টানেল স্তর, দুটি স্বাধীন পরীক্ষা
প্রতিটি স্তর আলাদাভাবে যাচাই করো, কারণ কাজ করা বাইরের টানেল ভাঙা ভিতরের টানেলকে ঢেকে রাখে। ক্লায়েন্ট থেকে সার্ভারে IPv4 পিং দিয়ে বাইরের পথ পরীক্ষা করো এবং যে পোর্ট ব্যবহার করো তা নিশ্চিত করো। তারপর সার্ভারে ভিতরের পথ পরীক্ষা করো, যেখানে ip -6 route ডিফল্ট বা প্রকৃত আপস্ট্রিম থেকে শেখা নির্দিষ্ট কোনো রুট দেখাতে হবে, আর ip -6 addr আপস্ট্রিম যে সোর্স প্রিফিক্স গ্রহণ করে তা দেখাতে হবে। এর চেয়ে কম কিছু ইন্টারফেসের ওপর সাজসজ্জা মাত্র।
একটি ইউনিক-লোকাল ঠিকানা, বা বৈশ্বিক দেখতে এমন প্রিফিক্স যার দিকে কিছুই ফেরত রুট করে না, আনন্দের সঙ্গেই ইন্টারফেসে দেখা দেবে আর কোথাও যাবে না। পাবলিক পৌঁছানোর ক্ষমতা আপস্ট্রিম দেয়, ঠিকানার আকৃতি নয়।
একই কথা ক্লায়েন্টের ক্ষেত্রেও প্রযোজ্য: ip -6 route get 2001:4860:4860::8888 টানেল ডিভাইসের নাম বলা উচিত, আর যদি ভৌত ডিভাইসের নাম বলে, তাহলে ক্লায়েন্ট IPv6-এর জন্য VPN একেবারেই ব্যবহার করছে না।
সোর্স প্রিফিক্স, আকার এবং ICMPv6
আপস্ট্রিমকে জিজ্ঞাসা করো এটি ফরওয়ার্ডিংয়ের জন্য কোন সোর্স প্রিফিক্স গ্রহণ করবে, আর তার একটি ক্লায়েন্ট পুলের জন্য ব্যবহার করো। যে প্রদানকারী সার্ভারের নিজের ইন্টারফেসের জন্য তোমাকে একটি /64 দেয়, সে অগত্যা তোমার কাছে দ্বিতীয় একটি /64 বা বড় ব্লক রুট করে না, আর এই পার্থক্য হলো এক দুপুরের ডিবাগিং যা একটি সাপোর্ট টিকিট এক প্রশ্নেই মিটিয়ে দেয়। লিখিতভাবে জিজ্ঞাসা করো এবং উত্তরটি কনফিগারেশনের সঙ্গে রাখো।
তোমার স্ট্যাক আসলে যে অতিরিক্ত এনক্যাপসুলেশন ব্যবহার করে তার জন্য বরাদ্দ রাখো, আর ICMPv6 চালু রাখো, Packet Too Big সহ। দ্বিতীয় হেডার ব্যবহারযোগ্য পেলোড ছোট করে, তাই ছোট পিংয়ের উত্তর দেওয়া একটি পথ ফাইল স্থানান্তরে তবুও ব্যর্থ হতে পারে, আর সব ICMPv6 ফেলে দেওয়া ফায়ারওয়াল একটি সমাধানযোগ্য আকারের সমস্যাকে কালো গর্তে পরিণত করে। সেবাটি ঘোষণা করার আগে একটি বড় স্থানান্তর পরীক্ষা করো।
কোনটি সম্পূর্ণ ভিন্ন সমস্যা
শুধু IPv4 চলে এমন অ্যাপ্লিকেশনে শুধু IPv6 চলে এমন ক্লায়েন্ট থেকে পৌঁছানো হলো অনুবাদ, টানেলিং নয়, আর এতে সচেতনভাবে স্থাপিত NAT64 ব্যবস্থার মতো কিছু দরকার। গন্তব্যটি কেবল তুমি একটি বাড়তি টানেল হেডার যোগ করেছ বলে সেটি বুঝবে না। ঐতিহাসিক রূপান্তর সেবাও একই যত্ন পাওয়ার যোগ্য: RFC 7526 6to4 অ্যানিকাস্ট রিলে মডেলটি বাতিল করেছে, তাই এটি নিয়ে লেখা কোনো নির্দেশিকা এমন কিছু বর্ণনা করে যার আর রক্ষণাবেক্ষণ করা পাবলিক রিলে নেই।
সার্ভারের ব্যবহারযোগ্য IPv6 আপস্ট্রিম না থাকলে পছন্দগুলো হলো একটি সমর্থিত আপস্ট্রিম, একটি ভিন্ন এক্সিট, অথবা IPv6 টানেলের বাইরে থাকবে বলে নথিভুক্ত সিদ্ধান্ত। আর যা গ্রহণযোগ্য নয় তা হলো ক্লায়েন্টদের বলা যে IPv6 সেবা আছে, যখন তাদের সাধারণ IPv6 সংযোগ চুপচাপ VPN এড়িয়ে যায়।