Εταιρεία Cloudflare
Το βοηθητικό πρόγραμμα xdpcap είναι συμβατό με εκφράσεις φιλτραρίσματος tcpdump/libpcap και σας επιτρέπει να επεξεργάζεστε σημαντικά μεγαλύτερους όγκους κίνησης στο ίδιο υλικό. Το Xdpcap μπορεί επίσης να χρησιμοποιηθεί για εντοπισμό σφαλμάτων σε περιβάλλοντα όπου το κανονικό tcpdump δεν εφαρμόζεται, όπως συστήματα φιλτραρίσματος, προστασίας DoS και εξισορρόπησης φορτίου που χρησιμοποιούν το υποσύστημα XDP του πυρήνα Linux, το οποίο επεξεργάζεται πακέτα πριν από την επεξεργασία τους από τη στοίβα δικτύωσης πυρήνα Linux (tcpdump δεν βλέπει πακέτα που απορρίπτονται από τον χειριστή XDP).
Η υψηλή απόδοση επιτυγχάνεται με τη χρήση των υποσυστημάτων eBPF και XDP. Το eBPF είναι ένας διερμηνέας bytecode ενσωματωμένος στον πυρήνα του Linux που σας επιτρέπει να δημιουργείτε χειριστές υψηλής απόδοσης εισερχόμενων/εξερχόμενων πακέτων με αποφάσεις σχετικά με την προώθηση ή την απόρριψή τους. Χρησιμοποιώντας έναν μεταγλωττιστή JIT, ο bytecode eBPF μεταφράζεται αμέσως σε οδηγίες μηχανής και εκτελείται με την απόδοση του εγγενούς κώδικα. Το υποσύστημα XDP (eXpress Data Path) συμπληρώνει το eBPF με τη δυνατότητα εκτέλεσης προγραμμάτων BPF σε επίπεδο προγράμματος οδήγησης δικτύου, με υποστήριξη για άμεση πρόσβαση στο buffer πακέτων DMA και εργασία στο στάδιο πριν από την εκχώρηση του buffer skbuff από τη στοίβα δικτύου.
Όπως το tcpdump, το βοηθητικό πρόγραμμα xdpcap μεταφράζει πρώτα τους κανόνες φιλτραρίσματος κυκλοφορίας υψηλού επιπέδου στην κλασική αναπαράσταση BPF (cBPF) χρησιμοποιώντας την τυπική βιβλιοθήκη libpcap και στη συνέχεια τους μετατρέπει σε ρουτίνες eBPF χρησιμοποιώντας έναν μεταγλωττιστή
Πηγή: opennet.ru