FreeBSD pridáva podporu pre protokol Netlink používaný v jadre Linuxu

Kódová základňa FreeBSD prijíma implementáciu komunikačného protokolu Netlink (RFC 3549), ktorý sa používa v Linuxe na organizáciu interakcie medzi jadrom a procesmi v užívateľskom priestore. Projekt je obmedzený na podporu rodiny operácií NETLINK_ROUTE na riadenie stavu sieťového subsystému v jadre.

Vo svojej súčasnej podobe umožňuje vrstva podpory Netlink FreeBSD používať linuxovú ip utilitu z balíka iproute2 na správu sieťových rozhraní, nastavenie IP adries, konfiguráciu smerovania a manipuláciu s objektmi nexthop, ktoré ukladajú stav použitý na preposielanie paketu do požadovaného cieľa. . Po miernej zmene hlavičkových súborov je možné použiť Netlink v balíku Bird routing.

Implementácia Netlink pre FreeBSD je zabalená ako načítateľný modul jadra, ktorý, ak je to možné, neovplyvňuje ostatné subsystémy jadra a vytvára samostatné fronty úloh (tasqueue) na spracovanie prichádzajúcich správ cez protokol a vykonávanie operácií v asynchrónnom režime. Dôvodom pre portovanie Netlinku je nedostatok štandardného mechanizmu na interakciu so subsystémami jadra, čo vedie k tomu, že rôzne subsystémy a ovládače vymýšľajú svoje vlastné protokoly.

Netlink ponúka zjednotenú komunikačnú vrstvu a rozšíriteľný formát správ, ktorý môže fungovať ako sprostredkovateľ, ktorý automaticky kombinuje rôznorodé údaje z rôznych zdrojov do jedinej požiadavky. Napríklad subsystémy FreeBSD ako devd, jail a pfilctl je možné migrovať na Netlink, teraz pomocou vlastných volaní ioctl, čo výrazne zjednoduší vytváranie aplikácií pre prácu s týmito subsystémami. Okrem toho, použitie Netlinku na úpravu objektov a skupín nexthop v zásobníku smerovania umožní efektívnejšiu interakciu s procesmi smerovania v užívateľskom priestore.

Aktuálne implementované funkcie:

  • Získavanie informácií o trasách, objektoch a skupinách nexthops, sieťových rozhraniach, adresách a susedných hostiteľoch (arp/ndp).
  • Vytváranie upozornení o výskyte a odpájaní sieťových rozhraní, nastavovanie a mazanie adries, pridávanie a odstraňovanie trás.
  • Pridávanie a odstraňovanie trás, objektov a skupín nexthops, brán, sieťových rozhraní.
  • Integrácia s rozhraním Rtsock na správu smerovacej tabuľky.

Zdroj: opennet.ru

Pridať komentár