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

FreeBSD

FreeBSD е добре установена като система за изграждане на интернет и интранет сървъри. Той предоставя доста надеждни мрежови услуги и ефективно управление на паметта.

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

Семейството на гнездата мрежова връзка е интерфейс на ядрото на Linux, който използва се за междупроцесна комуникация (IPC) между процесите на ядрото и потребителското пространство и между различни процеси в потребителското пространство, подобно на сокетите на домейни на Unix.

Подобно на Unix сокетите на домейни и за разлика от INET сокетите, комуникацията на Netlink не може да преминава през границите на хоста. Въпреки това, докато сокетите на Unix домейн използват пространството от имена на файловата система, процесите на Netlink обикновено се адресират чрез идентификатори на процеси (PID).

Netlink е проектиран и използван за прехвърляне на различна мрежова информация между пространството на ядрото и процесите в потребителското пространство. Мрежовите помощни програми, като семейството iproute2 и помощните програми, използвани за конфигуриране на базирани на mac80211 безжични драйвери, използват Netlink за комуникация с ядрото на Linux от потребителското пространство. Netlink предоставя стандартен базиран на сокет интерфейс за процеси в потребителското пространство и API от страна на ядрото за вътрешна употреба от модулите на ядрото. Netlink първоначално използва фамилията сокети AF_NETLINK.

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

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

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

Интерфейсите, адресите, маршрутите, защитната стена, fibs, vnets и др. се управляват чрез netlink. Това е базиран на TLV асинхронен протокол, който осигурява 1-1 и 1-много комуникации. Текущата реализация поддържа подмножеството на семейството NETLINK_ROUTE. Внедряването също е съвместимо със семейната рамка NETLINK_GENERIC.

Текущо внедрени функции:

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

Струва си да се спомене, че досега проектът е ограничен до поддръжка на фамилията операции NETLINK_ROUTE за управление на състоянието на мрежовата подсистема в ядрото.

И накрая, ако имате интерес да научите повече за него, можете да се консултирате с подробностите в следната връзка.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.