VPN ক্যাপচারে ভেতরের ও বাইরের প্যাকেট: আকার কেন আলাদা
একটি ক্যাপচার টানেল ইন্টারফেসে প্লেইনটেক্সট দেখে, অন্যটি তারে এনক্রিপ্ট করা ফ্রেম দেখে। MTU-কে দোষ দেওয়ার আগে দুটোই পড়ুন।
আপনি টানেল ইন্টারফেসে 1400 বাইটের প্যাকেট ক্যাপচার করেন, আবার ফিজিক্যাল ইন্টারফেসে ক্যাপচার করেন, আর সংখ্যাগুলো মিলতে চায় না। ঠিকানাগুলো আলাদা, আকারগুলো আলাদা, এবং দ্বিতীয় ফাইলটি অন্য এক কথোপকথনের মতো দেখায়। কিছুই নষ্ট হয়নি। দুটি আলাদা প্যাকেট দুটি আলাদা স্তরে বসে আছে, আর তাদের মধ্যের ব্যবধানই হলো টানেল আপনার ট্র্যাফিকে যা করে। MTU-কে দোষ দেওয়ার আগে দুটি দৃশ্যই পড়ুন।
দুটি দৃষ্টিকোণ, আর প্রতিটি যে প্যাকেট দেখায়
টানেল ইন্টারফেসে নেওয়া ক্যাপচার ভেতরের প্যাকেট দেখায়: অ্যাপ্লিকেশনের পেলোড তার মূল উৎস ও গন্তব্য নিয়ে, কোনো সুরক্ষা প্রয়োগের আগে। ফিজিক্যাল ইন্টারফেসের ক্যাপচার বাইরের প্যাকেট দেখায়: একটি IP হেডার, একটি ট্রান্সপোর্ট হেডার, এনক্যাপসুলেশন, এবং তারপর পেলোড হিসেবে এনক্রিপ্ট করা ভেতরের প্যাকেট। একই কথোপকথন, আলাদা বস্তু। ফাইলটিতে কোনটি আছে তা নাম দিলেই অসঙ্গতিটি রহস্য থাকা বন্ধ করে।
আকারের পার্থক্য হলো ওভারহেড, আর ঠিকানার পার্থক্য হলো নকশা। এটিকে উল্টে দেখুন, বিভ্রান্তি অনুমেয় হয়ে যায়: মানুষ 1400 বাইটের ভেতরের প্যাকেটকে 1450 বাইটের বাইরের প্যাকেটের সঙ্গে তুলনা করে, কিছু একটা ভুল ভেবে নেয়, এবং এমন MTU সেটিংস বদলাতে শুরু করে যা কখনোই দোষী ছিল না। ফাইলটিতে ইন্টারফেস ও স্তরের নাম দিন, কারণ ওই লেবেলই পাঠকের প্রথম প্রয়োজন এবং মানুষ প্রথমেই যা বাদ দেয়।
ক্যাপচার শুরুর আগে স্তর ঠিক করুন
প্রথম প্যাকেট লেখার আগেই ঠিক করুন কোন স্তর আপনার প্রশ্নের উত্তর দেবে। MTU-র প্রশ্নে সাধারণত বাইরের দৃশ্য দরকার, কারণ সেখানেই হেডার জমে এবং পথের সীমা দেখা যায়। অ্যাপ্লিকেশনের প্রশ্নে সাধারণত ভেতরের দৃশ্য দরকার, কারণ আপনার আগ্রহের পেলোড সেখানেই থেকে যায়। পরিকল্পনা ছাড়া দুটোই ক্যাপচার করলে দুটি ফাইল হয় আর কোনো সিদ্ধান্ত হয় না।
একটি নিরীহ, অনুমোদিত পরীক্ষা ব্যবহার করুন এবং আপনার আগ্রহের উৎস, গন্তব্য ও সময়ে ফিল্টার করুন। সংগ্রহের আগে ক্যাপচার টুলের ইন্টারফেস ও ফিল্টার অপশন পড়ুন, কারণ মেটাডেটা সাধারণত যথেষ্ট এবং পেলোডের চেয়ে অনেক সহজে ভাগ করা যায়। ভেতরের ক্যাপচারকে ডিফল্টভাবে সংবেদনশীল ধরুন, কারণ এতে এনক্রিপ্ট না করা অ্যাপ্লিকেশন ডেটা থাকে যা পথের আরও সামনে গিয়েই সুরক্ষিত হয়।
আকারের পার্থক্যে আসলে কী থাকে
বাইরের প্যাকেট অতিরিক্ত হেডার ও সুরক্ষা উপাদান বহন করে, আর কতটা বহন করবে তা প্রোটোকল ও তার অপশনের উপর নির্ভর করে। পথ বরাবর ফ্র্যাগমেন্টেশন, একত্রীকরণ বা পুনর্বিন্যাস ভেতরের প্যাকেট ও তা বহনকারী বাইরের প্যাকেটগুলোর মধ্যকার আপাত এক-এক সম্পর্ক ভেঙে দিতে পারে, তাই আকারে-আকারে তুলনা সবসময় সম্ভব নয়। সন্দেহজনক MTU ত্রুটির জন্য আকারের প্রতিক্রিয়া ও ট্র্যাফিক যেখানে থামে সেই বিন্দু খুঁজুন, তারপর তা অ্যাপ্লিকেশন যা জানায় তার সঙ্গে মেলান। উত্তরহীন পুনঃপ্রেরণ নমুনা পরবর্তী হপের আকার বহনকারী ICMP ত্রুটির চেয়ে আলাদা সংকেত।
হোস্ট ছেড়ে যাওয়া একটি প্যাকেট দূরপ্রান্তে তা পৌঁছেছে কি না তা প্রমাণ করে না। আপনার ক্যাপচার যদি নিজের ইন্টারফেসেই শেষ হয়, তাহলে আপনি দেখিয়েছেন কার্নেল কিছু পাঠিয়েছে, যা পথ সম্পর্কে পাওয়া সবচেয়ে দুর্বল প্রমাণ। ক্যাপচারকে পুনরাবৃত্তিযোগ্য উপসর্গের সঙ্গে মেলান: একই গন্তব্য, একই কাজ, একই আকার, একটি চলক বদলে দুবার চালান।
সংখ্যায় অফলোড পড়া
হোস্ট-সাইড সেগমেন্টেশন ও অন্যান্য অফলোড দ্বিতীয় বিকৃতি যোগ করে, আর এটিই স্থানীয় ক্যাপচারকে তারের সঙ্গে অমিল করে তোলে। একটি স্থানীয় ক্যাপচার এমন বাফার দেখাতে পারে যা অ্যাডাপ্টার পরে ভাগ করে, তাই লিংকে ফ্রেমগুলো ফাইল যা বোঝায় তার চেয়ে ছোট ও বেশি। এই কারণেই ক্যাপচার ফাইলের বড় বাফার প্রমাণ করে না যে সীমার বাইরের আকারের ফ্রেম প্রতিটি লিংক পেরিয়েছে। আকারগুলো যদি আপনার সিদ্ধান্তে গুরুত্বপূর্ণ হয়, তবে ক্যাপচার কোথায় নেওয়া হয়েছে এবং ওই ইন্টারফেসে অফলোড সক্রিয় ছিল কি না তা লিখুন।
নইলে আপনি পথের আচরণের বদলে হোস্টের সুবিধা মাপছেন। ইন্টারফেস ও অফলোড অবস্থাসহ লেবেল করা দুটি ফাইল এই বিতর্কগুলোর বেশিরভাগ এক মিনিটে মিটিয়ে দেয়।
যেখানে ক্যাপচার আর প্রমাণ থাকে না
এনক্রিপ্ট করা বাইরের প্যাকেট দেখা দেখায় যে এই পরীক্ষার অবস্থায় একটি সুরক্ষা সীমানা আছে, আর এটি ডিভাইসের অন্য অ্যাপ্লিকেশন, অপারেটরের হাত বা এন্ডপয়েন্টের নিজের অবস্থা সম্পর্কে কিছুই বলে না। টানেলের ভেতরে প্লেইনটেক্সট দেখা মানেও টানেল নষ্ট নয়; এর মানে আপনি এনক্রিপশন বিন্দুর উপরে ক্যাপচার করেছেন, যা দেখার বৈধ জায়গা। ক্যাপচার একটি জায়গা সম্পর্কে প্রমাণ, কোনো সিস্টেম সম্পর্কে রায় নয়, আর টিকিটে সেভাবেই তা লিখতে হবে। প্রতিবেদনে পরিধির বাক্যটি রাখুন, কারণ এটিই একটি একক পর্যবেক্ষণকে অডিট দাবিতে পরিণত হওয়া থেকে আটকায়।
প্রতিটি ফাইলের নামে তার ইন্টারফেস, ফিল্টার ও টাইমস্ট্যাম্প রাখুন, এবং তদন্ত শেষ হলে তা মুছে ফেলুন। tcpdump ম্যানুয়াল এখানে ব্যবহৃত ইন্টারফেস ও ফিল্টার ফ্ল্যাগ নথিভুক্ত করে, যার মধ্যে যেগুলো ক্যাপচার ছোট রাখে সেগুলোও।
প্রমাণ ভাগ করতে হলে পেলোডের বদলে আকার, টাইমস্ট্যাম্প ও ফ্ল্যাগ ভাগ করুন। প্রশ্নটি ছিল প্যাকেটের আকার নিয়ে, আর উত্তরটির খুব কমই কারো ডেটা দরকার হয়।