ডিবাগিংয়ের উদ্দেশ্যে আমি লিনাক্স ভার্চুয়াল ইন্টারফেসগুলিতে ট্র্যাফিক ক্যাপচার করতে চাই। আমি নিয়ে পরীক্ষা-নিরীক্ষা করা হয়েছে veth, tunএবং dummyধরনের ইন্টারফেস; তিনটিই, আমার tcpdumpকিছু দেখাতে সমস্যা হচ্ছে ।
আমি কীভাবে ডামি ইন্টারফেস সেট আপ করব এখানে:
ip link add dummy10 type dummy
ip addr add 99.99.99.1 dev dummy10
ip link set dummy10 up
একটি টার্মিনালে, এটি দিয়ে দেখুন tcpdump:
tcpdump -i dummy10
এক সেকেন্ডে এটির সাথে শুনুন nc:
nc -l 99.99.99.1 2048
তৃতীয়তে, এইচটিটিপি অনুরোধ করুন যার সাথে curl:
curl http://99.99.99.1:2048/
যদিও টার্মিনাল 2 এ আমরা curlঅনুরোধটি থেকে ডেটা দেখতে পাচ্ছি , কিছুই থেকে পাওয়া যায় না tcpdump।
একটি টুন / ট্যাপ টিউটোরিয়াল কিছু পরিস্থিতি স্পষ্ট করে যেখানে কোনও স্থানীয় ইন্টারফেসে কাজ করার সময় কার্নেল আসলে কোনও প্যাকেট প্রেরণ করতে পারে না:
Tshark এর আউটপুট দেখে, আমরা দেখতে পাই ... কিছুই না। ইন্টারফেস দিয়ে কোনও ট্র্যাফিক যাচ্ছে না। এটি সঠিক: যেহেতু আমরা ইন্টারফেসের আইপি ঠিকানাটি পিন করছি, অপারেটিং সিস্টেম সঠিকভাবে সিদ্ধান্ত নিয়েছে যে কোনও প্যাকেট "তারের উপরে" প্রেরণের দরকার নেই, এবং কার্নেল নিজেই এই পিংগুলিকে জবাব দিচ্ছে। আপনি যদি এটির বিষয়ে চিন্তা করেন তবে ঠিক কী হবে যদি আপনি অন্য ইন্টারফেসের আইপি ঠিকানাটি পিন করেন (উদাহরণস্বরূপ eth0): কোনও প্যাকেট পাঠানো হবে না। এটি সম্ভবত সুস্পষ্ট মনে হলেও এটি প্রথমে বিভ্রান্তির উত্স হতে পারে (এটি আমার পক্ষে ছিল)।
তবে, এটি টিসিপি ডেটা প্যাকেটের ক্ষেত্রে কীভাবে প্রয়োগ হতে পারে তা দেখা শক্ত hard
হয়তো tcpdumpঅন্যভাবে ইন্টারফেসের সাথে আবদ্ধ থাকা উচিত?