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

FreeBSD

Το FreeBSD έχει καθιερωθεί ως ένα σύστημα δημιουργίας διακομιστών Διαδικτύου και Intranet. Παρέχει αρκετά αξιόπιστες υπηρεσίες δικτύου και αποτελεσματική διαχείριση μνήμης.

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

Η οικογένεια των πριζών netlink είναι μια διεπαφή πυρήνα Linux που χρησιμοποιείται για επικοινωνία μεταξύ διεργασιών (IPC) μεταξύ πυρήνα και διεργασιών χώρου χρήστη και μεταξύ διαφορετικών διαδικασιών χώρου χρήστη, παρόμοια με τις υποδοχές τομέα Unix.

Παρόμοια με τις υποδοχές τομέα Unix και σε αντίθεση με τις υποδοχές INET, η επικοινωνία Netlink δεν μπορεί να διασχίσει τα όρια του κεντρικού υπολογιστή. Ωστόσο, ενώ οι υποδοχές τομέα Unix χρησιμοποιούν τον χώρο ονομάτων του συστήματος αρχείων, οι διεργασίες Netlink αντιμετωπίζονται γενικά από αναγνωριστικά διεργασίας (PID).

Το Netlink έχει σχεδιαστεί και χρησιμοποιείται για τη μεταφορά διαφόρων πληροφοριών δικτύου μεταξύ του χώρου του πυρήνα και των διεργασιών του χώρου χρήστη. Τα βοηθητικά προγράμματα δικτύου, όπως η οικογένεια iproute2 και τα βοηθητικά προγράμματα που χρησιμοποιούνται για τη διαμόρφωση προγραμμάτων οδήγησης ασύρματης σύνδεσης που βασίζονται σε mac80211, χρησιμοποιούν το Netlink για να επικοινωνούν με τον πυρήνα του Linux από το χώρο χρήστη. Το Netlink παρέχει μια τυπική διεπαφή βασισμένη σε socket για διεργασίες χώρου χρήστη και ένα API στην πλευρά του πυρήνα για εσωτερική χρήση από λειτουργικές μονάδες πυρήνα. Το Netlink αρχικά χρησιμοποιούσε την οικογένεια υποδοχών AF_NETLINK.

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

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

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

Οι διεπαφές, οι διευθύνσεις, οι διαδρομές, το τείχος προστασίας, οι ίνες, τα vnet, κ.λπ. ελέγχονται μέσω netlink. Είναι ένα ασύγχρονο πρωτόκολλο που βασίζεται σε TLV που παρέχει 1-1 και 1-πολλές επικοινωνίες. Η τρέχουσα υλοποίηση υποστηρίζει το υποσύνολο της οικογένειας NETLINK_ROUTE. Η υλοποίηση είναι επίσης συμβατή με το οικογενειακό πλαίσιο NETLINK_GENERIC.

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

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

Αξίζει να αναφέρουμε ότι μέχρι στιγμής το έργο περιορίζεται στην υποστήριξη της οικογένειας λειτουργιών NETLINK_ROUTE για τη διαχείριση της κατάστασης του υποσυστήματος δικτύου στον πυρήνα.

Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα σχετικά, μπορείτε να συμβουλευτείτε τις λεπτομέρειες στο τον ακόλουθο σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.