FreeBSD lisää tuen Linux-ytimessä käytettävälle Netlink-protokollalle

FreeBSD-koodikanta ottaa käyttöön Netlink-kommunikaatioprotokollan (RFC 3549) toteutuksen, jota käytetään Linuxissa organisoimaan ytimen ja prosessien välistä vuorovaikutusta käyttäjätilassa. Projekti rajoittuu NETLINK_ROUTE-operaatioperheen tukemiseen ytimen verkkoalijärjestelmän tilan hallinnassa.

Nykyisessä muodossaan Netlink-tukikerros sallii FreeBSD:n käyttää iproute2-paketin Linux ip -apuohjelmaa verkkoliitäntöjen hallintaan, IP-osoitteiden asettamiseen, reitityksen määrittämiseen ja nexthop-objektien manipulointiin, jotka tallentavat paketin edelleenlähettämisen tilan haluttuun kohteeseen. . Hieman otsikkotiedostojen muuttamisen jälkeen on mahdollista käyttää Netlinkiä Bird routing -paketissa.

FreeBSD:n Netlink-toteutus on pakattu ladattavaksi ydinmoduuliksi, joka ei mahdollisuuksien mukaan vaikuta muihin ytimen alijärjestelmiin ja luo erilliset tehtäväjonot (tasqueue) prosessoimaan protokollan kautta saapuvia viestejä ja suorittamaan toimintoja asynkronisessa tilassa. Syy Netlinkin siirtämiseen on vakiomekanismin puute vuorovaikutukseen ytimen alijärjestelmien kanssa, mikä johtaa siihen, että erilaiset osajärjestelmät ja ajurit keksivät omia protokolliaan.

Netlink tarjoaa yhtenäisen viestintäkerroksen ja laajennettavan viestimuodon, joka voi toimia välittäjänä, joka yhdistää automaattisesti eri lähteistä peräisin olevat erilaiset tiedot yhdeksi pyynnöksi. Esimerkiksi FreeBSD-alijärjestelmät, kuten devd, jail ja pfilctl, voidaan siirtää Netlinkiin käyttämällä nyt omia ioctl-kutsujaan, mikä yksinkertaistaa huomattavasti sovellusten luomista näiden alijärjestelmien kanssa työskentelemiseen. Lisäksi Netlinkin käyttäminen nexthop-objektien ja -ryhmien muokkaamiseen reitityspinossa mahdollistaa tehokkaamman vuorovaikutuksen käyttäjätilan reititysprosessien kanssa.

Tällä hetkellä käytössä olevat ominaisuudet:

  • Tietojen saaminen reiteistä, nexthops-objekteista ja -ryhmistä, verkkoliitännöistä, osoitteista ja naapurikoneista (arp/ndp).
  • Ilmoitusten muodostus verkkoliitäntöjen ilmestymisestä ja katkaisemisesta, osoitteiden asettaminen ja poistaminen, reittien lisääminen ja poistaminen.
  • Reittien, nexthops-objektien ja -ryhmien, yhdyskäytävien, verkkoliitäntöjen lisääminen ja poistaminen.
  • Integrointi Rtsock-liittymään reititystaulukon hallintaan.

Lähde: opennet.ru

Lisää kommentti