FreeBSD hat die Unterstützung des Netlink-Protokolls hinzugefügt, das im Linux-Kernel verwendet wird.

In den Code-Basis von FreeBSD wurde die Implementierung des Kommunikationsprotokolls Netlink (RFC 3549) übernommen, das in Linux verwendet wird, um die Interaktion zwischen dem Kernel und Prozessen im Benutzermodus zu organisieren. Das Projekt beschränkt sich auf die Unterstützung der NETLINK_ROUTE-Operationen zur Verwaltung des Zustands der Netzwerksubsysteme im Kernel.

In der aktuellen Form ermöglicht das Netlink-Übungsniveau die Verwendung des Linux-Tools ip aus dem Paket iproute2 in FreeBSD, um Netzwerkschnittstellen zu verwalten, IP-Adressen festzulegen, die Routing-Konfiguration durchzuführen und mit nexthop-Objekten zu interagieren, die Statusinformationen speichern, die für die Paketübertragung zu einem gewünschten Ziel genutzt werden. Nach geringfügigen Änderungen an den Header-Dateien kann Netlink auch im Routing-Paket Bird verwendet werden.

Die Implementierung von Netlink für FreeBSD erfolgt in Form eines ladebaren Kernel-Moduls, das nach Möglichkeit andere Subsysteme des Kernels nicht beeinflusst und separate Aufgabenwarteschlangen (tasqueue) für die Verarbeitung eingehender Nachrichten über das Protokoll und die Ausführung von Vorgängen im asynchronen Modus erstellt. Der Grund für die Portierung von Netlink ist das Fehlen eines Standardmechanismus für die Interaktion mit den Subsystemen des Kernels, was dazu führt, dass unterschiedliche Subsysteme und Treiber eigene Protokolle entwickeln.

Netlink bietet eine einheitliche Kommunikationsschicht und ein erweiterbares Nachrichtenformat, das als Vermittler fungieren kann und verschiedene Daten von unterschiedlichen Quellen in einer einzigen Anfrage automatisch aggregiert. Beispielsweise können Subsysteme von FreeBSD wie devd, jail und pfilctl, die derzeit eigene ioctl-Aufrufe verwenden, auf Netlink portiert werden, was die Erstellung von Anwendungen zur Verarbeitung dieser Subsysteme erheblich erleichtert. Darüber hinaus ermöglicht die Nutzung von Netlink zur Änderung von Objekten und Gruppen von nexthop im Routing-Stack eine effektivere Interaktion mit den Routing-Prozessen im Benutzerspeicher.

Aktuelle Funktionen:

  • Abruf von Informationen über Routen, Objekte und Gruppen von Nexthops, Netzwerk-Interfaces, Adressen und benachbarte Hosts (ARP/NDP).
  • Erstellung von Benachrichtigungen bei Aktivierung und Deaktivierung von Netzwerk-Interfaces, der Zuweisung und Entfernung von Adressen sowie dem Hinzufügen und Löschen von Routen.
  • Hinzufügen und Entfernen von Routen, Objekten und Gruppen von Nexthops, Gateways und Netzwerk-Interfaces.
  • Integration mit der Rtsock-Schnittstelle zur Verwaltung der Routing-Tabelle.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster