FreeBSD:ssä he lisäsivät tuen Linuxissa käytettävälle Netlink-protokollalle

FreeBSD

FreeBSD on vakiintunut järjestelmä Internet- ja intranet-palvelimien rakentamiseen. Se tarjoaa melko luotettavat verkkopalvelut ja tehokkaan muistinhallinnan.

Useita päiviä sitten uutinen julkaistiin että peruskoodi FreeBSD on ottanut käyttöön viestintäprotokollan uusi toteutus netlinkki (RFC 3549), jota käytetään Linuxissa viestimään ytimen ja käyttäjätilassa olevien prosessien välillä.

Socketin perhe netlinkki on Linux-ytimen käyttöliittymä, joka käytetään prosessien väliseen viestintään (IPC) ytimen ja käyttäjätilan prosessien välillä ja eri käyttäjätilan prosessien välillä, kuten Unix-verkkotunnuksen pistokkeet.

Samoin kuin Unix-verkkoaluepistokkeet ja toisin kuin INET-pistokkeet, Netlink-viestintä ei voi ylittää isäntärajoja. Vaikka Unix-toimialueen socketit käyttävät tiedostojärjestelmän nimiavaruutta, Netlink-prosessit käsitellään yleensä prosessitunnisteilla (PID).

Netlink on suunniteltu ja sitä käytetään erilaisten verkkotietojen siirtämiseen ydintilan ja käyttäjätilan prosessien välillä. Verkkoapuohjelmat, kuten iproute2-perhe ja apuohjelmat, joita käytetään mac80211-pohjaisten langattomien ohjainten määrittämiseen, käyttävät Netlinkiä kommunikoidakseen Linux-ytimen kanssa käyttäjätilasta. Netlink tarjoaa tavallisen socket-pohjaisen käyttöliittymän käyttäjätilaprosesseille ja ytimen puoleisen API:n ydinmoduulien sisäiseen käyttöön. Netlink käytti alun perin AF_NETLINK-liitinperhettä.

Toistaiseksi nykyisessä muodossaan Netlink-tukikerroksen avulla FreeBSD voi käyttää Linux ip -apuohjelmaa iproute2-paketista verkkoliitäntöjen hallintaan, IP-osoitteiden määrittämiseen, reitityksen määrittämiseen ja nexthop-objektien käsittelemiseen, jotka tallentavat tilan, jota käytetään paketin välittämiseen aiottuun kohteeseen. Hieman otsikkotiedostojen muuttamisen jälkeen on mahdollista käyttää Netlinkiä Birdin reitityspaketissa.

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

netlinkki 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 näiden alijärjestelmien kanssa toimivien sovellusten rakentamista. Lisäksi Netlinkin käyttäminen nexthop-objektien ja -ryhmien muokkaamiseen reitityspinossa mahdollistaa tehokkaamman vuorovaikutuksen käyttäjätilan reititysprosessien kanssa.

Liitännät, osoitteet, reitit, palomuuri, fibs, vnet jne. ohjataan netlinkin kautta. Se on TLV-pohjainen asynkroninen protokolla, joka tarjoaa 1-1 ja 1-mone viestintää. Nykyinen toteutus tukee NETLINK_ROUTE-perheen osajoukkoa. Toteutus on myös yhteensopiva NETLINK_GENERIC-perhekehyksen kanssa.

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

  • Hanki tietoa reiteistä, nexthops-objekteista ja -ryhmistä, verkkoliitännöistä, osoitteista ja naapurikoneista (arp/ndp).
  • Ilmoitusten muodostus verkkoliitäntöjen ilmaantumisesta ja katkeamisesta, osoitteiden määrittäminen ja poistaminen, reittien lisääminen ja poistaminen.
  • Lisää ja poista reittejä, seuraavan hypyn objekteja ja ryhmiä, yhdyskäytäviä, verkkorajapintoja.
  • Integrointi Rtsock-liittymään reititystaulukon hallintaan.

On syytä mainita, että toistaiseksi projekti on rajoittunut tukemaan NETLINK_ROUTE-operaatioperhettä ytimen verkkoalijärjestelmän tilan hallitsemiseksi.

Lopuksi, jos olet kiinnostunut tietämään enemmän siitä, voit tutustua sen yksityiskohtiin seuraava linkki.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.