В FreeBSD е добавена поддръжка на протокола Netlink, използван в ядрото на Linux.

В кодовата на FreeBSD е приета реализация на комуникационния протокол Netlink (RFC 3549), използван в Linux за организиране на взаимодействието между ядрото и процесите в пространството на потребителя. Проектът е ограничен до поддръжка на семейството от операции NETLINK_ROUTE за управление на състоянието на мрежовата подсистема в ядрото.

В текущата си форма, нивото на поддръжка на Netlink позволява използването на Linux-утилитата ip от пакета iproute2 за управление на мрежовите интерфейси, задаване на IP адреси, настройване на маршрутизация и манипулиране на обекти nexthop, съхраняващи данни за състоянието, необходимо за предаване на пакета до желания пункт. След незначителни промени в заглавните файлове, е възможно да се използва Netlink в маршрутизиращия пакет Bird.

Реализацията на Netlink за FreeBSD е оформена като зареждаем модул на ядрото, който по възможност не засяга други подсистеми на ядрото и създава отделни опашки на задачи (taskqueue) за обработка на получените по протокола съобщения и извършване на операции в асинхронен режим. Причината за портирование на Netlink е липсата на стандартен механизъм за взаимодействие с подсистемите на ядрото, което води до това, че различни подсистеми и драйвери изобретяват свои собствени протоколи.

Netlink предлага унифициран комуникационен слой и разширяем формат на съобщения, който може да действа като посредник, автоматично комбиниращ в едно запитване разпръснати данни от различни източници. Например, на Netlink могат да бъдат преведени подсистеми на FreeBSD, като devd, jail и pfilctl, които в момента използват собствени повиквания ioctl, което значително ще улесни създаването на приложения за работа с данните на тези подсистеми. Освен това, използването на Netlink за изменение на обекти и групи nexthop във маршрутизиращия стек ще позволи по-ефективно взаимодействие с процесите на маршрутизация в пространството на потребителя.

В момента реализираните възможности:

  • Получаване на информация за маршрути, обекти и групи nexthops, мрежови интерфейси, адреси и съседни хостове (arp/ndp).
  • Формиране на уведомления за появата и изключването на мрежови интерфейси, задаване и премахване на адреси, добавяне и премахване на маршрути.
  • Добавяне и премахване на маршрути, обекти и групи nexthops, шлюзове, мрежови интерфейси.
  • Интеграция с интерфейса Rtsock за управление на таблицата за маршрутизиране.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster