A FreeBSD-ben hozzáadták a Linuxban használt Netlink protokoll támogatását

FreeBSD

A FreeBSD jól bevált rendszer internetes és intranet szerverek építésére. Meglehetősen megbízható hálózati szolgáltatásokat és hatékony memóriakezelést biztosít.

Néhány nappal ezelőtt megjelent a hír hogy az alapkódja A FreeBSD elfogadta a kommunikációs protokoll új megvalósítása netlink (RFC 3549), amelyet Linuxban használnak a kernel és a felhasználói térben lévő folyamatok közötti kommunikációra.

A socket család netlink egy Linux kernel interfész, amely folyamatok közötti kommunikációra (IPC) használják a kernel és a felhasználói tér folyamatai között és a különböző felhasználói térfolyamatok között, hasonlóan a Unix tartományi socketekhez.

A Unix tartományi socketekhez hasonlóan és az INET socketekkel ellentétben a Netlink kommunikáció nem lépheti át a gazdagép határait. Míg azonban a Unix tartományi socketek a fájlrendszer névterét használják, a Netlink folyamatokat általában folyamatazonosítók (PID) címzik.

A Netlinket különféle hálózati információk átvitelére tervezték és használják a kerneltér és a felhasználói térfolyamatok között. A hálózati segédprogramok, például az iproute2 család és a mac80211 alapú vezeték nélküli illesztőprogramok konfigurálására használt segédprogramok a Netlink segítségével kommunikálnak a Linux kernellel a felhasználói térből. A Netlink szabványos socket alapú interfészt biztosít a felhasználói területi folyamatokhoz, és egy kerneloldali API-t a kernelmodulok belső használatra. A Netlink eredetileg az AF_NETLINK aljzatcsaládot használta.

Eddig a jelenlegi formájában A Netlink támogatási réteg lehetővé teszi a FreeBSD számára a Linux ip segédprogram használatát Az iproute2 csomag része a hálózati interfészek kezeléséhez, az IP-címek beállításához, az útválasztás konfigurálásához és a nexthop objektumok kezeléséhez, amelyek tárolják a csomagok rendeltetési helyre való továbbításához használt állapotot. A fejlécfájlok kismértékű módosítása után lehetőség van a Netlink használatára a Bird útválasztó csomagjában.

A FreeBSD Netlink implementációja betölthető kernelmodulként van csomagolva hogy ha lehet, nincs hatással más kernel-alrendszerekre, és külön feladatsorokat hoz létre (tasqueue) a bejövő üzenetek feldolgozása a protokollon keresztül, és műveletek végrehajtása aszinkron módban. A Netlink áthelyezésének oka a szabványos mechanizmus hiánya kölcsönhatásba lépnek a kernel alrendszereivel, ami ahhoz vezet, hogy a különböző alrendszerek és illesztőprogramok kitalálják saját protokolljaikat.

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ödhet, amely automatikusan egyesíti a különböző forrásokból származó eltérő adatokat egyetlen kérelemben. Például a FreeBSD alrendszerek, például a devd, a jail és a pfilctl portolhatók a Netlinkre, immár saját ioctl hívásaik használatával, ami nagyban leegyszerűsíti az ezekkel az alrendszerekkel együttműködő 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.

Az interfészek, címek, útvonalak, tűzfal, fibs, vnet stb. netlinken keresztül vezérelhetők. Ez egy TLV-alapú aszinkron protokoll, amely 1-1 és 1-sok kommunikációt biztosít. A jelenlegi megvalósítás támogatja a NETLINK_ROUTE család részhalmazát. A megvalósítás a NETLINK_GENERIC család keretrendszerével is kompatibilis.

Jelenleg megvalósított funkciók:

  • Információkat szerezhet az útvonalakról, a nexthops objektumokról és csoportokról, a hálózati interfészekről, címekről és a szomszédos gazdagépekről (arp/ndp).
  • Értesítések formálása hálózati interfészek megjelenéséről, leválasztásáról, címek konfigurálásáról és eltávolításáról, útvonalak hozzáadása és eltávolítása.
  • Útvonalak, következő ugrás objektumok és csoportok, átjárók, hálózati interfészek hozzáadása és eltávolítása.
  • Integráció az Rtsock felülettel az útválasztási tábla kezeléséhez.

Érdemes megemlíteni, hogy a projekt eddig a NETLINK_ROUTE műveletcsalád támogatására korlátozódott a kernelben lévő hálózati alrendszer állapotának kezelésére.

Végül, ha érdekli, hogy többet tudjon meg róla, olvassa el a részleteket a következő link.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.