Το FreeBSD προσθέτει υποστήριξη για το πρωτόκολλο Netlink που χρησιμοποιείται στον πυρήνα του Linux

Η βάση κώδικα του FreeBSD υιοθετεί μια υλοποίηση του πρωτοκόλλου επικοινωνίας Netlink (RFC 3549), το οποίο χρησιμοποιείται στο Linux για την οργάνωση της αλληλεπίδρασης μεταξύ του πυρήνα και των διεργασιών στο χώρο του χρήστη. Το έργο περιορίζεται στην υποστήριξη της οικογένειας λειτουργιών NETLINK_ROUTE για τη διαχείριση της κατάστασης του υποσυστήματος δικτύωσης στον πυρήνα.

Στην τρέχουσα μορφή του, το επίπεδο υποστήριξης Netlink επιτρέπει στο FreeBSD να χρησιμοποιεί το βοηθητικό πρόγραμμα Linux ip από το πακέτο iproute2 για να διαχειρίζεται διεπαφές δικτύου, να ορίζει διευθύνσεις IP, να διαμορφώνει δρομολόγηση και να χειρίζεται αντικείμενα nexthop που αποθηκεύουν την κατάσταση που χρησιμοποιείται για την προώθηση ενός πακέτου στον επιθυμητό προορισμό. . Αφού αλλάξετε ελαφρά τα αρχεία κεφαλίδας, μπορείτε να χρησιμοποιήσετε το Netlink στο πακέτο δρομολόγησης Bird.

Η υλοποίηση του Netlink για το FreeBSD συσκευάζεται ως μια μονάδα πυρήνα με δυνατότητα φόρτωσης που, εάν είναι δυνατόν, δεν επηρεάζει άλλα υποσυστήματα του πυρήνα και δημιουργεί ξεχωριστές ουρές εργασιών (tasqueue) για την επεξεργασία των εισερχόμενων μηνυμάτων μέσω του πρωτοκόλλου και την εκτέλεση λειτουργιών σε ασύγχρονη λειτουργία. Ο λόγος για τη μεταφορά του Netlink είναι η έλλειψη ενός τυπικού μηχανισμού αλληλεπίδρασης με υποσυστήματα πυρήνα, που οδηγεί σε διαφορετικά υποσυστήματα και προγράμματα οδήγησης να εφευρίσκουν τα δικά τους πρωτόκολλα.

Το Netlink προσφέρει ένα ενοποιημένο επίπεδο επικοινωνίας και μια επεκτάσιμη μορφή μηνύματος που μπορεί να λειτουργήσει ως ενδιάμεσος που συνδυάζει αυτόματα διαφορετικά δεδομένα από διαφορετικές πηγές σε ένα μόνο αίτημα. Για παράδειγμα, τα υποσυστήματα του FreeBSD όπως τα devd, jail και pfilctl μπορούν να μετεγκατασταθούν στο Netlink, χρησιμοποιώντας τώρα τις δικές τους κλήσεις ioctl, κάτι που θα απλοποιήσει σημαντικά τη δημιουργία εφαρμογών για εργασία με αυτά τα υποσυστήματα. Επιπλέον, η χρήση του Netlink για την τροποποίηση των αντικειμένων και ομάδων nexthop στη στοίβα δρομολόγησης θα επιτρέψει πιο αποτελεσματική αλληλεπίδραση με τις διαδικασίες δρομολόγησης χώρου χρήστη.

Λειτουργίες που εφαρμόζονται αυτήν τη στιγμή:

  • Λήψη πληροφοριών σχετικά με διαδρομές, αντικείμενα και ομάδες nexthops, διεπαφές δικτύου, διευθύνσεις και γειτονικούς κεντρικούς υπολογιστές (arp/ndp).
  • Σχηματισμός ειδοποιήσεων για εμφάνιση και αποσύνδεση διεπαφών δικτύου, ρύθμιση και διαγραφή διευθύνσεων, προσθήκη και διαγραφή διαδρομών.
  • Προσθήκη και αφαίρεση διαδρομών, αντικειμένων και ομάδων nexthops, πυλών, διεπαφών δικτύου.
  • Ενσωμάτωση με τη διεπαφή Rtsock για τη διαχείριση του πίνακα δρομολόγησης.

Πηγή: opennet.ru

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