A FreeBSD támogatja a Linux kernelben használt Netlink protokollt

A FreeBSD kódbázis a Netlink kommunikációs protokoll (RFC 3549) megvalósítását alkalmazza, amelyet Linuxban használnak a kernel és a felhasználói térben lévő folyamatok interakciójának megszervezésére. A projekt a NETLINK_ROUTE műveletcsalád támogatására korlátozódik a kernelben lévő hálózati alrendszer állapotának kezelésére.

Jelenlegi formájában a Netlink támogatás lehetővé teszi a FreeBSD számára, hogy az iproute2 csomagból származó Linux ip segédprogramot használja a hálózati interfészek kezeléséhez, IP-címek beállításához, útválasztás konfigurálásához és a nexthop objektumok manipulálásához, amelyek állapotadatokat tárolnak a csomagok kívánt célhelyre történő továbbítására. A fejlécfájlok kisebb módosításai után lehetőség nyílik a Netlink használatára a Bird routing csomagban.

A FreeBSD-hez készült Netlink implementáció betölthető kernelmodulként készült, amely lehetőség szerint nem érinti a többi kernel-alrendszert, és külön feladatsorokat (tasqueues) hoz létre a protokollon keresztül érkező üzenetek feldolgozásához és aszinkron módban történő műveletek végrehajtásához. A Netlink portolásának oka a rendszermag-alrendszerekkel való interakcióhoz szükséges szabványos mechanizmus hiánya, ami ahhoz vezet, hogy különböző alrendszerek és illesztőprogramok saját protokollokat találnak ki.

A Netlink egységes kommunikációs réteget és bővíthető üzenetformátumot kínál, amely közvetítőként működik, amely automatikusan egyetlen kérésbe egyesíti a különböző forrásokból származó adatokat. Például az olyan FreeBSD alrendszerek, mint a devd, a jail és a pfilctl, amelyek jelenleg saját ioctl hívásokat használnak, átvihetők a Netlinkre, ami nagyban leegyszerűsíti az ezekkel az alrendszerekkel való munkavégzéshez szükséges alkalmazások létrehozását. Ezenkívül a Netlink használata a nexthop objektumok és csoportok módosítására az útválasztási veremben hatékonyabb interakciót tesz lehetővé a felhasználói tér-útválasztási folyamatokkal.

Jelenleg bevezetett funkciók:

  • Információk beszerzése útvonalakról, objektumokról és nexthops csoportokról, hálózati interfészekről, címekről és szomszédos gazdagépekről (arp/ndp).
  • Értesítések generálása hálózati interfészek megjelenéséről, lekapcsolásáról, címek beállítása és törlése, útvonalak hozzáadása és törlése.
  • Útvonalak, objektumok és nexthops csoportok, átjárók, hálózati interfészek hozzáadása és eltávolítása.
  • Integráció Rtsock interfésszel az útválasztási tábla kezeléséhez.

Forrás: opennet.ru

Hozzászólás