প্রকল্প সম্পর্কে

dsnitch একটি লাইটওয়েট, একক-বাইনারি নেটওয়ার্ক এবং DNS ইগ্রেস পরিদর্শক, যা বিশেষভাবে Docker কন্টেইনারের জন্য ডিজাইন করা হয়েছে। এটি আধুনিক Linux eBPF প্রযুক্তি ব্যবহার করে কন্টেইনার থেকে সমস্ত আউটবাউন্ড নেটওয়ার্ক কার্যকলাপের রিয়েল-টাইম দৃশ্যমানতা প্রদান করে — TCP/UDP সংযোগ, ICMP পিং এবং DNS কোয়েরি সহ — কন্টেইনারের নেটওয়ার্ক স্ট্যাক, সাইডকার কন্টেইনার বা ভারী টেলিমেট্রি ডেমন পরিবর্তন করার প্রয়োজন ছাড়াই। সরঞ্জামটি হোস্টের ইউনিফাইড cgroup v2 হায়ারার্কি এবং কার্নেলের TCP সকেট স্টেট ট্রেসপয়েন্টে সরাসরি প্যাসিভ ইন-কার্নেল eBPF প্রোব সংযুক্ত করে। এটি আউটবাউন্ড সংযোগ অনুরোধ, লেয়ার-3 ICMP পিং এবং পোর্ট 53-এ কাঁচা DNS ওয়্যার পেলোড আটকায়, তারপর লকলেস BPF রিং বাফারের মাধ্যমে ইউজারস্পেসে সকেটগুলিকে Docker কন্টেইনার মেটাডেটা এবং সমাধানকৃত হোস্টনেমের সাথে সংযুক্ত করে — প্রায় শূন্য CPU ওভারহেডে (1% এর নিচে)। প্রধান বৈশিষ্ট্যগুলির মধ্যে রয়েছে সরাসরি cgroup v2 অ্যাটাচমেন্টের মাধ্যমে জিরো-টাচ কন্টেইনার অ্যাট্রিবিউশন, ইন-কার্নেল DNS স্নুপিং যার সাথে ইউজারস্পেস Hickory DNS ডিকোডিং সম্পূর্ণ CNAME চেইন রেজোলিউশনের জন্য, কার্নেল মেমরি পয়েন্টার (skaddr) ব্যবহার করে ডিটারমিনিস্টিক স্টেটফুল সকেট ট্র্যাকিং যা সমসাময়িক সংযোগ এবং নেটওয়ার্ক নেমস্পেস জুড়ে সংঘর্ষ-মুক্ত, নেটিভ ICMP প্রোটোকল সমর্থন, দ্বৈত গন্তব্য ও ফিজিক্যাল IP কলাম যা DNS-সমাধানকৃত হোস্টনেম এবং অন্তর্নিহিত এজ IP এন্ডপয়েন্ট উভয়ই দেখায়, এবং বুদ্ধিমান glibc নয়েজ ফিল্টারিং যা ডামি POSIX getaddrinfo() UDP পোর্ট 0 রুট-লুকআপ প্রোব বাদ দেয়। Ratatui দিয়ে নির্মিত ইন্টারেক্টিভ স্প্লিট-পেন TUI বাম দিকে লাইভ সংযোগ কাউন্টার সহ একটি কন্টেইনার হায়ারার্কি ট্রি এবং ডানদিকে রিয়েল-টাইম কালার-কোডেড ইগ্রেস স্ট্রিম দেখায়, সাথে তাৎক্ষণিক সার্চ ফিল্টারিং, কন্টেইনার লকিং এবং হোস্ট ট্রাফিক টগল করার সুবিধা রয়েছে। একটি হেডলেস স্ট্রিমিং মোড (-s) নন-ইন্টারেক্টিভ প্লেইন-টেক্সট আউটপুট সমর্থন করে, যা লগিং, CI/CD পাইপলাইন বা অন্যান্য CLI টুলের সাথে পাইপ করার জন্য উপযুক্ত। ইনস্টলেশন সহজ: x86_64 এবং ARM64 Linux আর্কিটেকচারের জন্য প্রি-বিল্ট বাইনারি উপলব্ধ, অথবা Rust নাইটলি টুলচেইন এবং rust-src কম্পোনেন্ট ব্যবহার করে সোর্স থেকে বিল্ড করা যেতে পারে। টুলটির জন্য Linux কার্নেল 5.8+ প্রয়োজন, সাথে ইউনিফাইড cgroups v2 এবং BTF সক্রিয় থাকতে হবে, এবং Docker ডেমন অ্যাক্সেস প্রয়োজন। অ-সুবিধাপ্রাপ্ত ব্যবহারকারীদের জন্য, dsnitch সুপারিশ করে setcap ব্যবহার করে ন্যূনতম Linux ক্ষমতা (cap_sys_admin, cap_net_admin, cap_dac_read_search) প্রদান করতে, যাতে docker গ্রুপের যেকোনো ব্যবহারকারী sudo ছাড়াই এটি চালাতে পারে। বিকল্পভাবে, এটি স্ট্যান্ডার্ড sudo এসকেলেশন দিয়ে চালানো যেতে পারে। টুলটিতে মেমোরি-ইউনিট টেস্ট এবং একটি স্বয়ংক্রিয় এন্ড-টু-এন্ড ইন্টিগ্রেশন টেস্ট স্যুট অন্তর্ভুক্ত রয়েছে যা লাইভ Docker কন্টেইনারের বিরুদ্ধে চলে। প্রকল্পটি GNU জেনারেল পাবলিক লাইসেন্স v3.0-এর অধীনে লাইসেন্সকৃত এবং Infomaniac দ্বারা রক্ষণাবেক্ষণ করা হয়।