FreeBSD lisab toe Linuxi tuumas kasutatavale Netlinki protokollile

FreeBSD koodibaas võtab kasutusele Netlinki suhtlusprotokolli (RFC 3549) teostuse, mida Linuxis kasutatakse tuuma ja kasutajaruumi protsesside koostoime korraldamiseks. Projekt piirdub NETLINK_ROUTE operatsioonide perekonna toetamisega, et hallata tuumas oleva võrgu alamsüsteemi olekut.

Praegusel kujul võimaldab Netlinki tugi FreeBSD-l kasutada iproute2 paketist pärit Linuxi ip-i utiliiti võrguliideste haldamiseks, IP-aadresside seadistamiseks, marsruutimise konfigureerimiseks ja nexthopi objektide manipuleerimiseks, mis salvestavad olekuandmeid, mida kasutatakse paketi edastamiseks soovitud sihtkohta. Pärast väiksemaid muudatusi päisefailides on võimalik kasutada Netlinki paketis Bird routing.

Netlinki teostus FreeBSD jaoks on loodud laaditava kerneli moodulina, mis võimalusel ei mõjuta teisi kerneli alamsüsteeme ning loob protokolli kaudu saabuvate sõnumite töötlemiseks ja asünkroonses režiimis toimingute tegemiseks eraldi tegumijärjekorrad (tasqueued). Netlinki teisaldamise põhjuseks on standardse mehhanismi puudumine tuuma alamsüsteemidega suhtlemiseks, mis viib selleni, et erinevad alamsüsteemid ja draiverid leiutavad oma protokolle.

Netlink pakub ühtset suhtluskihti ja laiendatavat sõnumivormingut, mis võib toimida vahendajana, mis ühendab automaatselt erinevatest allikatest pärinevad erinevad andmed üheks päringuks. Näiteks FreeBSD alamsüsteeme, nagu devd, jail ja pfilctl, mis praegu kasutavad oma ioctl-kõnesid, saab üle kanda Netlinki, mis lihtsustab oluliselt nende alamsüsteemidega töötamiseks mõeldud rakenduste loomist. Lisaks võimaldab Netlinki kasutamine järgmise etapi objektide ja rühmade muutmiseks marsruutimispinus tõhusamalt suhelda kasutajaruumi marsruutimise protsessidega.

Praegu rakendatud funktsioonid:

  • Teabe hankimine marsruutide, objektide ja nexthopsi rühmade, võrguliideste, aadresside ja naaberhostide (arp/ndp) kohta.
  • Teavituste genereerimine võrguliideste ilmumise ja lahtiühendamise kohta, aadresside seadmine ja kustutamine, marsruutide lisamine ja kustutamine.
  • Marsruutide, objektide ja nexthopsi rühmade, lüüside, võrguliideste lisamine ja eemaldamine.
  • Integratsioon Rtsocki liidesega marsruutimistabeli haldamiseks.

Allikas: opennet.ru

Lisa kommentaar