FreeBSD añade soporte para el protocolo Netlink utilizado en el núcleo. Linux

El código base de FreeBSD ha adoptado una implementación del protocolo de comunicación Netlink (RFC 3549), utilizado en Linux Para organizar las interacciones entre el núcleo y los procesos del espacio de usuario. El proyecto se limita a dar soporte a la familia de operaciones NETLINK_ROUTE para gestionar el estado del subsistema de red del núcleo.

En su forma actual, el nivel de soporte de Netlink permite su uso en FreeBSD. Linux- La utilidad ip del paquete iproute2 permite administrar interfaces de red, configurar direcciones IP, configurar el enrutamiento y manipular objetos nexthop, que almacenan datos de estado utilizados para reenviar paquetes al destino deseado. Con pequeñas modificaciones en los archivos de cabecera, Netlink puede utilizarse en el paquete de enrutamiento Bird.

La implementación de Netlink para FreeBSD está empaquetada como un módulo de kernel cargable que, si es posible, no afecta a otros subsistemas del kernel y crea colas de tareas separadas (tasqueue) para procesar los mensajes entrantes a través del protocolo y realizar operaciones en modo asíncrono. La razón para portar Netlink es la falta de un mecanismo estándar para interactuar con los subsistemas del kernel, lo que lleva a que diferentes subsistemas y controladores inventen sus propios protocolos.

Netlink ofrece una capa de comunicación unificada y un formato de mensaje extensible que puede actuar como un intermediario que combina automáticamente datos dispares de diferentes fuentes en una sola solicitud. Por ejemplo, los subsistemas de FreeBSD como devd, jail y pfilctl se pueden migrar a Netlink, ahora usando sus propias llamadas ioctl, lo que simplificará enormemente la creación de aplicaciones para trabajar con estos subsistemas. Además, el uso de Netlink para modificar los objetos y grupos nexthop en la pila de enrutamiento permitirá una interacción más eficiente con los procesos de enrutamiento del espacio del usuario.

Funciones actualmente implementadas:

  • Obtener información sobre rutas, objetos y grupos nexthops, interfaces de red, direcciones y hosts vecinos (arp/ndp).
  • Formación de notificaciones sobre la aparición y desconexión de interfaces de red, configuración y eliminación de direcciones, adición y eliminación de rutas.
  • Agregar y eliminar rutas, objetos y grupos de próximos saltos, puertas de enlace, interfaces de red.
  • Integración con la interfaz Rtsock para gestionar la tabla de enrutamiento.

Fuente: opennet.ru

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster