FreeBSD pievieno atbalstu Netlink protokolam, ko izmanto Linux kodolā

FreeBSD kodu bāze izmanto Netlink sakaru protokola (RFC 3549) ieviešanu, ko izmanto Linux, lai organizētu mijiedarbību starp kodolu un procesiem lietotāja telpā. Projekts aprobežojas ar NETLINK_ROUTE operāciju saimes atbalstīšanu, lai pārvaldītu tīkla apakšsistēmas stāvokli kodolā.

Pašreizējā formā Netlink atbalsta slānis ļauj FreeBSD izmantot Linux ip utilītu no iproute2 pakotnes, lai pārvaldītu tīkla saskarnes, iestatītu IP adreses, konfigurētu maršrutēšanu un manipulētu ar nexthop objektiem, kas saglabā stāvokli, kas izmantots paketes pārsūtīšanai uz vēlamo galamērķi. . Nedaudz mainot galvenes failus, ir iespējams izmantot Netlink pakotnē Bird routing.

Netlink implementācija priekš FreeBSD ir iepakota kā ielādējams kodola modulis, kas, ja iespējams, neietekmē citas kodola apakšsistēmas un izveido atsevišķas uzdevumu rindas (tasqueue), lai apstrādātu ienākošos ziņojumus caur protokolu un veiktu darbības asinhronā režīmā. Netlink pārnešanas iemesls ir standarta mehānisma trūkums mijiedarbībai ar kodola apakšsistēmām, kā rezultātā dažādas apakšsistēmas un draiveri izgudro savus protokolus.

Netlink piedāvā vienotu saziņas slāni un paplašināmu ziņojumu formātu, kas var darboties kā starpnieks, kas vienā pieprasījumā automātiski apvieno atšķirīgus datus no dažādiem avotiem. Piemēram, FreeBSD apakšsistēmas, piemēram, devd, jail un pfilctl, var migrēt uz Netlink, tagad izmantojot savus ioctl izsaukumus, kas ievērojami vienkāršos lietojumprogrammu izveidi darbam ar šīm apakšsistēmām. Turklāt Netlink izmantošana, lai modificētu nexthop objektus un grupas maršrutēšanas kaudzē, ļaus efektīvāk mijiedarboties ar lietotāja telpas maršrutēšanas procesiem.

Pašlaik ieviestās funkcijas:

  • Informācijas iegūšana par maršrutiem, nexthops objektiem un grupām, tīkla saskarnēm, adresēm un blakus esošajiem saimniekiem (arp/ndp).
  • Paziņojumu veidošana par tīkla saskarņu parādīšanos un atvienošanu, adrešu iestatīšana un dzēšana, maršrutu pievienošana un dzēšana.
  • Maršrutu, nexthops objektu un grupu, vārtejas, tīkla saskarņu pievienošana un noņemšana.
  • Integrācija ar Rtsock interfeisu, lai pārvaldītu maršrutēšanas tabulu.

Avots: opennet.ru

Pievieno komentāru