ESP ঠিকঠাক ডিক্রিপ্ট করে, তবু ভেতরের প্যাকেট কোথাও পৌঁছায় না
অ্যাপ কিছুই দেখে না, অথচ ESP কাউন্টার বাড়ছে। ট্রেইলারের পরবর্তী হেডারটি ভেতরের প্যাকেটের সঙ্গে মিলতে হবে, যা সিলেক্টর মিস হওয়া থেকে আলাদা ত্রুটি।
ESP রিসিভ কাউন্টার বাড়ে, টানেল চালু থাকে, আর অ্যাপ্লিকেশন প্যাকেটটি কখনোই দেখে না। ডিক্রিপশন হয়েছে, ইন্টিগ্রিটি যাচাই পাস করেছে, এরপর রিসিভারকে সিদ্ধান্ত নিতে হয়েছে সুরক্ষিত পেলোডটি আসলে কী। ওই শেষ ধাপেই ফরম্যাটের অমিল দেখা দেয়, আর বাইরে থেকে দেখে এটি ফায়ারওয়াল সমস্যার মতো একেবারেই লাগে না।
লেবেল মিথ্যা বললে যা দেখেন
ক্লায়েন্ট লগে এটিকে রাউটিং ব্ল্যাক হোল থেকে আলাদা করার মতো কিছু নেই। দুটোই সুস্থ টানেলের পাশে অ্যাপ্লিকেশন টাইমআউট তৈরি করে, তাই প্রথমে কাউন্টারকেই দোষ দেওয়া হয়।
ক্রমবর্ধমান রিসিভ কাউন্টার সত্যিই সুসংবাদ: প্যাকেট আসছে এবং প্রমাণীকরণ হচ্ছে। তবে এটি প্রমাণ নয় যে ভেতরের প্যাকেটটি ক্রিপ্টো স্তরের উপরের কোনো কিছুর কাছে অর্থবহ ছিল।
টাইপটি থাকে ট্রেইলারে
সাধারণ IPsec টানেল মোডে ESP-সুরক্ষিত পেলোডে একটি সম্পূর্ণ ভেতরের IP প্যাকেট থাকে। ট্রেইলারের পরবর্তী হেডার ফিল্ড নির্ধারণ করে ওই পেলোডটি কী, এবং এটি TCP পোর্ট নয়, বাইরের হেডারের প্রোটোকল নম্বর নয়, আর প্রাথমিক SPI ও সিকোয়েন্স-নম্বর ফিল্ডের অংশও নয়। RFC 4303 ধারা 2.6 এটিকে পেলোড-টাইপ ফিল্ড হিসেবে সংজ্ঞায়িত করে, যা একটি নির্দিষ্ট কাজের জন্য নির্দিষ্ট নাম।
যে মানগুলো দেখবেন সেগুলো ছোট এবং মনে রাখার মতো: IPv4 হলো 4 (0x04) আর IPv6 হলো 41 (0x29)।
এই সংখ্যাগুলো স্থানীয় রীতি থেকে নয়, IANA-র প্রোটোকল নম্বর বরাদ্দ থেকে আসে। যে প্রেরক IPv4 ঘোষণা করে অথচ একটি IPv6 প্যাকেট ঢোকায়, সে ফরম্যাটের অসঙ্গতি তৈরি করেছে, আর নিজের লেবেলের বিরুদ্ধে যাওয়া বাইট কোনো ফায়ারওয়াল নিয়ম ঠিক করতে পারে না।
সাধারণ সন্দেহভাজনদের থেকে এটিকে আলাদা করা
বেশিরভাগ হারানো প্যাকেট এনকোডিং ত্রুটি নয়। আগে সিলেক্টর দেখুন, কারণ যে ট্রাফিক সিলেক্টর IPv6 প্রিফিক্স বাদ দেয়, সে কিছু এনক্যাপসুলেট হওয়ার আগেই ট্রাফিক ফেলে দেয়। তারপর রাউটিং দেখুন, তারপর রিসিভিং হোস্টে স্থানীয় ফিল্টারিং। এগুলো বাদ দেওয়ার পরেই পেলোড-ফরম্যাটের অমিল বিশ্বাসযোগ্য ব্যাখ্যা হয়।
এনক্রিপ্ট করা ক্যাপচার এর মীমাংসা করবে না, কারণ সুরক্ষিত পরবর্তী হেডার এনক্রিপ্ট করা পেলোডের ভেতরেই থাকে। আপনার দরকার ইমপ্লিমেন্টেশন ডায়াগনস্টিকস বা সমর্থিত ডিক্রিপ্ট করা পর্যবেক্ষণ পয়েন্ট, আর দুটোরই ব্যবহারের আগে অনুমোদন লাগে।
যদি কেউ ওই প্রমাণ দিতে না পারে, তবে আপনার ফরম্যাট বাগ নেই। আপনার আছে একটি তত্ত্ব, আর সিলেক্টরই এখনো ভালো বাজি।
মেরামতটি যা নয়
ট্রাফিক পার করাতে ইন্টিগ্রিটি চেক বন্ধ করবেন না। মধ্যবর্তী রাউটারে এনক্রিপ্ট করা প্যাকেট পুনর্লিখন করবেন না, কারণ এটি কাজ করতে পারে না এবং ক্যাপচারে সহায়ক দেখালেও প্রবাহটি নষ্ট করবে। পোর্ট ব্লক হচ্ছে এমন তত্ত্বে অ্যাপ্লিকেশনের জন্য আরও প্রশস্ত ফায়ারওয়াল নিয়ম খুলবেন না। এর কোনোটিই লেবেলের অমিল স্পর্শ করে না।
যদি নিশ্চিত অমিল কোনো পিয়ার ইমপ্লিমেন্টেশন থেকে আসে, তাহলে একটি ন্যূনতম পরিশোধিত পুনরুৎপাদন রেখে দিন এবং তা ওই ইমপ্লিমেন্টেশনের সমর্থিত চ্যানেলে নিয়ে যান।
প্রবাহ যাচাই করুন, কাউন্টার নয়
সংশোধনের পর প্রকৃত IPv6 প্রবাহটি শুরু থেকে শেষ পর্যন্ত পরীক্ষা করুন: টানেলের মধ্য দিয়ে একটি অ্যাপ্লিকেশন অনুরোধ, তার উত্তর, এবং প্রতিটি পক্ষ যে ঠিকানা-জোড়া দেখে। বাড়তে থাকা ESP কাউন্টার শুধু প্রমাণ করে প্যাকেট গ্রহণ ও প্রমাণীকরণ হচ্ছে। ভেতরের প্যাকেট ব্যবহারযোগ্য ছিল কি না, সে বিষয়ে এটি কিছুই বলে না।
টিকিটে দুটি ফলাফলই লিখুন। কাউন্টারের নড়াচড়া প্লাস কাজ করা প্রবাহ মানে মেরামত; শুধু কাউন্টারের নড়াচড়া মানে ঠিক তাই যা আপনি শুরু করার আগে পেয়েছিলেন।