FreeBSD přidává podporu pro protokol Netlink používaný v jádře Linuxu

Kódová základna FreeBSD přijímá implementaci komunikačního protokolu Netlink (RFC 3549), který se v Linuxu používá k organizaci interakce mezi jádrem a procesy v uživatelském prostoru. Projekt je omezen na podporu rodiny operací NETLINK_ROUTE pro správu stavu síťového subsystému v jádře.

Ve své současné podobě umožňuje vrstva podpory Netlink FreeBSD používat linuxovou ip utilitu z balíčku iproute2 ke správě síťových rozhraní, nastavení IP adres, konfiguraci směrování a manipulaci s objekty nexthop, které ukládají stav použitý k předání paketu do požadovaného cíle. . Po mírné změně hlavičkových souborů je možné použít Netlink v balíčku Bird routing.

Implementace Netlink pro FreeBSD je zabalena jako zaváděcí modul jádra, který pokud možno neovlivňuje ostatní subsystémy jádra a vytváří samostatné fronty úloh (tasqueue) pro zpracování příchozích zpráv přes protokol a provádění operací v asynchronním režimu. Důvodem portování Netlinku je nedostatek standardního mechanismu pro interakci se subsystémy jádra, což vede k tomu, že různé subsystémy a ovladače vymýšlejí své vlastní protokoly.

Netlink nabízí jednotnou komunikační vrstvu a rozšiřitelný formát zpráv, který může fungovat jako prostředník, který automaticky spojuje nesourodá data z různých zdrojů do jediného požadavku. Například subsystémy FreeBSD jako devd, jail a pfilctl lze migrovat na Netlink, nyní pomocí vlastních volání ioctl, což značně zjednoduší tvorbu aplikací pro práci s těmito subsystémy. Použití Netlinku k úpravě objektů a skupin nexthop ve směrovacím zásobníku navíc umožní efektivnější interakci s procesy směrování v uživatelském prostoru.

Aktuálně implementované funkce:

  • Získání informací o trasách, objektech a skupinách nexthops, síťových rozhraních, adresách a sousedních hostitelích (arp/ndp).
  • Tvorba upozornění na výskyt a odpojení síťových rozhraní, nastavení a mazání adres, přidávání a mazání tras.
  • Přidávání a odebírání tras, objektů a skupin nexthops, bran, síťových rozhraní.
  • Integrace s rozhraním Rtsock pro správu směrovací tabulky.

Zdroj: opennet.ru

Přidat komentář