FreeBSD aldonas subtenon por la Netlink-protokolo uzata en la Linukso-kerno

La kodbazo de FreeBSD adoptas efektivigon de la Netlink-komunika protokolo (RFC 3549), uzita en Linukso por organizi la interagadon de la kerno kun procezoj en uzantspaco. La projekto estas limigita al subteno de la NETLINK_ROUTE-familio de operacioj por administri la staton de la reto-subsistemo en la kerno.

En ĝia nuna formo, Netlink-subteno permesas al FreeBSD uzi la Linuksan ip-servaĵon de la pakaĵo iproute2 por administri retajn interfacojn, agordi IP-adresojn, agordi vojigon kaj manipuli nexthop-objektojn, kiuj stokas ŝtatdatenojn uzatajn por plusendi pakaĵeton al la dezirata celloko. Post etaj ŝanĝoj al la kapdosieroj, eblas uzi Netlink en la Bird-vojigpakaĵo.

La Netlink-efektivigo por FreeBSD estas dizajnita kiel ŝarĝebla kernmodulo, kiu, se eble, ne influas aliajn kernsubsistemojn kaj kreas apartajn taskovicojn (tasqueues) por prilaborado de mesaĝoj alvenantaj per la protokolo kaj elfarado de operacioj en nesinkrona reĝimo. La kialo por porti Netlink estas la manko de norma mekanismo por interagado kun kernaj subsistemoj, kiu kondukas al malsamaj subsistemoj kaj ŝoforoj inventantaj siajn proprajn protokolojn.

Netlink ofertas unuigitan komunikan tavolon kaj etendeblan mesaĝan formaton, kiu povas funkcii kiel peranto, kiu aŭtomate kombinas malsimilajn datumojn de malsamaj fontoj en ununuran peton. Ekzemple, FreeBSD-subsistemoj kiel ekzemple devd, jail kaj pfilctl, kiuj nuntempe uzas siajn proprajn ioctl-vokojn, povas esti transdonitaj al Netlink, kiu multe simpligos la kreadon de aplikoj por labori kun ĉi tiuj subsistemoj. Aldone, uzi Netlink por modifi nexthop-objektojn kaj grupojn en la vojiga stako ebligos pli efikan interagadon kun uzantspacaj vojprocezoj.

Trajtoj nuntempe efektivigitaj:

  • Akiro de informoj pri itineroj, objektoj kaj nexthops-grupoj, retaj interfacoj, adresoj kaj najbaraj gastigantoj (arp/ndp).
  • Generado de sciigoj pri la apero kaj malkonekto de retaj interfacoj, agordo kaj forigo de adresoj, aldonado kaj forigo de itineroj.
  • Aldonante kaj forigante itinerojn, objektojn kaj nexthops-grupojn, enirejojn, retajn interfacojn.
  • Integriĝo kun Rtsock-interfaco por enruta tabeladministrado.

fonto: opennet.ru

Aldoni komenton