บริษัทคลาวด์แฟลร์
ยูทิลิตี xdpcap เข้ากันได้กับนิพจน์การกรอง tcpdump/libpcap และช่วยให้คุณสามารถประมวลผลการรับส่งข้อมูลจำนวนมากขึ้นอย่างมากบนฮาร์ดแวร์เดียวกัน Xdpcap ยังสามารถใช้สำหรับการดีบักในสภาพแวดล้อมที่ไม่สามารถใช้ tcpdump ปกติได้ เช่น การกรอง การป้องกัน DoS และระบบปรับสมดุลโหลดที่ใช้ระบบย่อย XDP เคอร์เนล Linux ซึ่งประมวลผลแพ็กเก็ตก่อนที่จะประมวลผลโดยสแต็กเครือข่ายเคอร์เนล Linux (tcpdump ไม่เห็นแพ็กเก็ตที่ถูกทิ้งโดยตัวจัดการ XDP)
ประสิทธิภาพสูงเกิดขึ้นได้จากการใช้ระบบย่อย eBPF และ XDP eBPF เป็นล่ามโค้ดไบต์ที่สร้างไว้ในเคอร์เนล Linux ซึ่งช่วยให้คุณสามารถสร้างตัวจัดการแพ็กเก็ตขาเข้า/ขาออกที่มีประสิทธิภาพสูง พร้อมการตัดสินใจเกี่ยวกับการส่งต่อหรือทิ้งแพ็กเก็ตเหล่านั้น การใช้คอมไพลเลอร์ JIT รหัสไบต์ eBPF จะถูกแปลทันทีเป็นคำสั่งเครื่องและดำเนินการด้วยประสิทธิภาพของโค้ดเนทีฟ ระบบย่อย XDP (eXpress Data Path) เสริม eBPF ด้วยความสามารถในการรันโปรแกรม BPF ที่ระดับไดรเวอร์เครือข่าย พร้อมรองรับการเข้าถึงโดยตรงไปยังบัฟเฟอร์แพ็กเก็ต DMA และทำงานในขั้นตอนก่อนที่บัฟเฟอร์ skbuff จะถูกจัดสรรโดยสแตกเครือข่าย
เช่นเดียวกับ tcpdump ยูทิลิตี้ xdpcap จะแปลกฎการกรองการรับส่งข้อมูลระดับสูงเป็นการแสดง BPF แบบคลาสสิก (cBPF) ก่อนโดยใช้ไลบรารี libpcap มาตรฐาน จากนั้นแปลงกฎเหล่านั้นเป็นรูปแบบของรูทีน eBPF โดยใช้คอมไพเลอร์
ที่มา: opennet.ru