FreeBSD afegeix suport per al protocol Netlink utilitzat al nucli Linux

La base de codi FreeBSD adopta una implementació del protocol de comunicació Netlink (RFC 3549), utilitzat a Linux per organitzar la interacció del nucli amb els processos a l'espai d'usuari. El projecte es limita a donar suport a la família d'operacions NETLINK_ROUTE per gestionar l'estat del subsistema de xarxa al nucli.

En la seva forma actual, el suport de Netlink permet a FreeBSD utilitzar la utilitat IP de Linux del paquet iproute2 per gestionar interfícies de xarxa, establir adreces IP, configurar l'encaminament i manipular objectes nexthop que emmagatzemen dades d'estat utilitzades per reenviar un paquet a la destinació desitjada. Després de canvis menors als fitxers de capçalera, és possible utilitzar Netlink al paquet d'encaminament Bird.

La implementació de Netlink per a FreeBSD està dissenyada com un mòdul del nucli carregable, que, si és possible, no afecta altres subsistemes del nucli i crea cues de tasques separades (tasqueues) per processar missatges que arriben a través del protocol i realitzar operacions en mode asíncron. La raó de portar Netlink és la manca d'un mecanisme estàndard per interaccionar amb els subsistemes del nucli, la qual cosa fa que diferents subsistemes i controladors inventin els seus propis protocols.

Netlink ofereix una capa de comunicació unificada i un format de missatge extensible que pot actuar com a intermediari que combina automàticament dades dispars de diferents fonts en una sola sol·licitud. Per exemple, els subsistemes de FreeBSD com ara devd, jail i pfilctl, que actualment utilitzen les seves pròpies trucades ioctl, es poden transferir a Netlink, la qual cosa simplificarà molt la creació d'aplicacions per treballar amb aquests subsistemes. A més, utilitzar Netlink per modificar objectes i grups de nexthop a la pila d'encaminament permetrà una interacció més eficient amb els processos d'encaminament de l'espai d'usuari.

Funcions implementades actualment:

  • Obtenció d'informació sobre rutes, objectes i grups nexthops, interfícies de xarxa, adreces i hosts veïns (arp/ndp).
  • Generar notificacions sobre l'aparició i desconnexió d'interfícies de xarxa, establir i eliminar adreces, afegir i eliminar rutes.
  • Afegir i eliminar rutes, objectes i grups nexthops, passarel·les, interfícies de xarxa.
  • Integració amb la interfície Rtsock per a la gestió de la taula d'encaminament.

Font: opennet.ru

Afegeix comentari