TCP পুনঃপ্রেরণ বনাম IPsec রিপ্লে ড্রপ: প্রতিটি স্তর পড়ুন
একটি পুনঃপ্রেরণ পতাকা, একটি ডুপ্লিকেট ACK এবং একটি ESP রিপ্লে ড্রপ ভিন্ন ভিন্ন স্তরে ভিন্ন ভিন্ন ঘটনা মাপে। প্রতিটি কাউন্টার যেখানে তৈরি হয় সেখানেই পড়ুন।
তিনটি ভিন্ন টুল তিনটি ভিন্ন ডুপ্লিকেট রিপোর্ট করে, এবং তার মধ্যে কেবল একটি এমন নেটওয়ার্ক ঘটনা যার উপর আপনি ব্যবস্থা নিতে পারেন। TCP পুনঃপ্রেরণ হলো প্রেরকের একটি পরিসর আবার পাঠানো, ডুপ্লিকেট ACK হলো প্রাপকের একটি স্বীকৃতি পুনরাবৃত্তি করা, আর ESP রিপ্লে ড্রপ হলো একটি নিরাপত্তা সংযুক্তি যে ক্রম নম্বর ইতিমধ্যে গ্রহণ করেছে তা প্রত্যাখ্যান করা। তিনটির কোনোটিই অন্যগুলোকে বোঝায় না। তাদের এক গল্পে জোড়া দেওয়ার আগে প্রতিটি কাউন্টার তার উৎপাদক স্তরে পড়ুন।
তিনটি কাউন্টার যা কখনো একই ঘটনা মাপে না
TCP পুনঃপ্রেরণ টীকা বোঝায় প্রেরক আবার একটি ক্রম পরিসর তারে রেখেছে। ক্ষতি এর একটি কারণ, এবং আপনার হাতে থাকা ক্যাপচারটি হয়তো মূল প্যাকেট বা সময় ব্যাখ্যা করবে এমন স্বীকৃতিটি মিস করছে। ডুপ্লিকেট ACK হলো প্রাপক TCP পুনরুদ্ধার নিয়মে একটি সঞ্চিত স্বীকৃতি পুনরাবৃত্তি করছে, যা অ্যাপ্লিকেশন লেখার ডুপ্লিকেটও নয়, ডেটার দ্বিতীয় কপিও নয়।
ESP নিজস্ব ক্রম স্থানে কাজ করে। প্রতিটি নিরাপত্তা সংযুক্তি যে প্যাকেট পাঠায় তা নম্বর দেয়, আর প্রাপক ইতিমধ্যে গৃহীত নম্বরগুলোর একটি উইন্ডো রাখে, তাই দুইবার আসা ESP প্যাকেট কেবল সেই নিয়মেই বাতিল হয়। তাই পুনঃপ্রেরিত TCP সেগমেন্ট একটি নতুন ক্রম নম্বরসহ নতুন ESP প্যাকেটে যায়, যা উভয় স্তরে সঠিক আচরণ। একই বাইট একটি কাউন্টারে নতুন আর অন্যটিতে পুরোনো দেখাতে পারে, এবং কোন স্তরই মিথ্যা বলছে না।
বিশ্লেষক কী দেখতে পারে আর কী পারে না
বিশ্লেষকের শব্দভাণ্ডার দিয়ে শুরু করুন, কারণ ফিল্টারের নাম প্রান্তবিন্দুর অভ্যন্তর নয়, পর্যবেক্ষণ বর্ণনা করে। টুল যে নাম ব্যবহার করে সেই নামেই গণনা করলে আপনি সৎ থাকেন আসলে কী মাপা হয়েছে তা নিয়ে। অসম্পূর্ণ ক্যাপচার থেকে গণনা হলো যা টিকে গেছে তার গণনা, তারে কী ঘটেছে তার নয়।
tshark -r trace.pcap -Y "tcp.analysis.retransmission" | wc -l
tshark -r trace.pcap -Y "tcp.analysis.duplicate_ack" | wc -l
ঐ সংখ্যাগুলোর পাশের বিশেষজ্ঞ তথ্য পড়ুন, কারণ চেকসাম ও ক্রম সংক্রান্ত সতর্কতা তারা কতটা গুরুত্ব পাওয়ার যোগ্য তা বদলে দেয়। দুই সেন্সরের মিলিত ট্রেস একটি ফ্রেম দুইবার দেখাতে পারে, আর দুই কপিই গণনা করলে এমন একটি পুনরুদ্ধার ঘটনা বানিয়ে ফেলা হয় যা কখনো ঘটেনি।
ESP কাউন্টার কার্নেল অবস্থায় থাকে
ESP ক্রম নম্বর TCP প্রবাহের নয়, নিরাপত্তা সংযুক্তির, তাই গেটওয়েই জিজ্ঞাসার জায়গা। অবস্থা তালিকা প্রতি সংযুক্তির প্যাকেট ও ত্রুটি কাউন্টার জানায়, যা কোনো ক্যাপচার পুনর্গঠন করতে পারে না।
ip -s xfrm state
tshark -r trace.pcap -Y "esp" -T fields -e esp.seq | head
RFC 4303 ক্রম নম্বর এবং তা গ্রাসকারী অ্যান্টি-রিপ্লে উইন্ডো সংজ্ঞায়িত করে, এজন্যই কিছু ভুল না থাকলেও কাউন্টার বাড়ে। সংশ্লিষ্ট TCP অস্বাভাবিকতা ছাড়া একনিষ্ঠ বহিরাগত ক্রম নম্বর পুনঃপ্রেরণের ঝড়ের দিকে নয়, ভিন্ন প্রেরক বা নকল পথের দিকে ইঙ্গিত করে। এনক্রিপ্টেড টানেলের বহিরাগত ক্যাপচার সাধারণত ভেতরের TCP ক্রম নম্বর লুকায়, তাই ভেতরের স্ট্যাক কী করেছে তা প্রমাণ করতে পারে না। নীতি যেখানে অনুমতি দেয় কেবল সেখানেই টানেলের ভেতরে ক্যাপচার করুন, আর অসম্পর্কিত সতর্কতা চুপ করাতে কখনো অ্যান্টি-রিপ্লে বন্ধ করবেন না।
দৃষ্টিকোণ যেখানে উত্তর বদলে দেয়
এস্কেলেট করার আগে লিখে রাখুন ক্যাপচার কীভাবে নেওয়া হয়েছে: ইন্টারফেস, ক্যাপচার প্রক্রিয়া ড্রপ রিপোর্ট করেছে কি না, এবং সময়চিহ্নগুলো সেন্সরগুলোর মধ্যে তুলনাযোগ্য কি না। একটি দৃষ্টিকোণ পথের দুই প্রান্ত দেখতে পারে না, তাই প্রাপকের আচরণ নিয়ে যেকোনো বক্তব্য পরিমাপ নয়, অনুমান। গেটওয়েতে নেওয়া ট্রেস ও হোস্টে নেওয়া ট্রেস চাপে ক্রম নিয়ে একমত হবে না, আর সেই অমিল সাধারণত টানেলের নয়, ক্যাপচারের। দুই দৃষ্টিকোণ মিলিয়ে দেখাই গণনাকে প্রমাণে বদলায়।
একটি অনুমোদিত অ্যাপ্লিকেশন প্রবাহ ব্যবহার করুন এবং একই মুহূর্তে ক্যাপচার গণনার পাশে প্রান্তবিন্দুর কাউন্টার লিখুন। সংখ্যাগুলো না মিললে যে স্তর ঘটনার মালিক তাকে বিশ্বাস করুন এবং অন্যটিকে পর্যবেক্ষণজনিত ত্রুটি ধরুন, যতক্ষণ না উল্টোটা প্রমাণ হয়। এই নিয়ম টানেল কনফিগারেশন না ছুঁয়েই এসব টিকিটের বেশিরভাগ সমাধান করে।
সঠিক ক্রমে সংখ্যাগুলো পড়া
যে স্তরে প্রশ্নটা করা হয়েছে সেখান থেকে শুরু করুন: TCP সতর্কতার উত্তর আসে TCP ক্যাপচার থেকে, আর ESP ড্রপের উত্তর আসে গেটওয়ের নিরাপত্তা সংযুক্তি কাউন্টার থেকে। তারপরই জিজ্ঞাসা করুন দুই দৃষ্টিকোণ একই প্যাকেট বর্ণনা করে কি না। যে সিদ্ধান্তে দুই স্তরই দরকার তা দুইটির নামই বলবে, কারণ কেবল TCP টীকায় ভর করে টানেল নিয়ে দাবি করা অনুমান।
প্রতিটি প্রাপ্তির জন্য স্তর, কাউন্টার ও দৃষ্টিকোণ লিখে রাখুন, পরের পাঠক তিনটি ঘটনাকে এক কাল্পনিক ত্রুটিতে মিলিয়ে ফেলবে না। এই তিন ক্ষেত্র নিয়ে এস্কেলেট করুন, আর সমাধান সাধারণত প্রথমটি থেকেই আসে।