Η Yandex δημοσίευσε το skbtrace, ένα βοηθητικό πρόγραμμα για τον εντοπισμό λειτουργιών δικτύου στο Linux

Η Yandex δημοσίευσε τον πηγαίο κώδικα του βοηθητικού προγράμματος skbtrace, το οποίο παρέχει εργαλεία για την παρακολούθηση της λειτουργίας της στοίβας δικτύου και την παρακολούθηση της εκτέλεσης λειτουργιών δικτύου στο Linux. Το βοηθητικό πρόγραμμα υλοποιείται ως πρόσθετο στο δυναμικό σύστημα εντοπισμού σφαλμάτων BPFtrace. Ο κωδικός είναι γραμμένος στο Go και διανέμεται με την άδεια MIT. Υποστηρίζει εργασία με πυρήνες Linux 4.14+ και με το κιτ εργαλείων BPFTrace 0.9.2+.

Κατά την εκτέλεση, το βοηθητικό πρόγραμμα skbtrace δημιουργεί σενάρια στη γλώσσα BPFtrace υψηλού επιπέδου που εντοπίζουν και αναλύουν δυναμικά το χρόνο εκτέλεσης των λειτουργιών που σχετίζονται με τη στοίβα δικτύου Linux και τις υποδοχές δικτύου. Στη συνέχεια, τα σενάρια μεταφράζονται σε φόρμα αίτησης eBPF και εκτελούνται σε επίπεδο πυρήνα.

Μεταξύ των ειδικών δυνατοτήτων του skbtrace, η μέτρηση του χρόνου αποστολής πακέτων μεταξύ της εισερχόμενης και εξερχόμενης διεπαφής δικτύου, η διάρκεια ζωής μιας σύνδεσης TCP από τη λήψη SYN έως την άφιξη του FIN/RST, οι καθυστερήσεις μεταξύ των διαφορετικών συμβάντων επεξεργασίας πακέτων και ο χρόνος για τη διαπραγμάτευση μιας σύνδεσης TCP σημειώνονται. Το Skbtrace μπορεί επίσης να χρησιμοποιηθεί για την ανίχνευση της αναμετάδοσης πακέτων TCP, ακόμα κι αν είναι ενθυλακωμένα σε άλλα πακέτα, και να λειτουργήσει ως απλό ανάλογο του βοηθητικού προγράμματος tcpdump, ικανό να αναλύει την εκτέλεση ορισμένων ρουτινών του πυρήνα, όπως η κλήση του kfree_skb σε ελεύθερη μνήμη όταν απορρίπτετε πακέτα.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο