FreeBSD dodaja podporo za protokol Netlink, ki se uporablja v jedru Linuxa

Kodna baza FreeBSD sprejme implementacijo komunikacijskega protokola Netlink (RFC 3549), ki se uporablja v Linuxu za organiziranje interakcije med jedrom in procesi v uporabniškem prostoru. Projekt je omejen na podporo družini operacij NETLINK_ROUTE za upravljanje stanja omrežnega podsistema v jedru.

V svoji trenutni obliki podporna plast Netlink omogoča FreeBSD uporabo pripomočka Linux ip iz paketa iproute2 za upravljanje omrežnih vmesnikov, nastavitev naslovov IP, konfiguracijo usmerjanja in manipulacijo objektov nexthop, ki shranjujejo stanje, uporabljeno za posredovanje paketa na želeni cilj . Po rahli spremembi datotek glave je možno uporabljati Netlink v paketu usmerjanja Bird.

Implementacija Netlink za FreeBSD je zapakirana kot naložljiv modul jedra, ki, če je mogoče, ne vpliva na druge podsisteme jedra in ustvarja ločene čakalne vrste opravil (tasqueue) za obdelavo dohodnih sporočil prek protokola in izvajanje operacij v asinhronem načinu. Razlog za prenos Netlinka je pomanjkanje standardnega mehanizma za interakcijo s podsistemi jedra, zaradi česar si različni podsistemi in gonilniki izumljajo lastne protokole.

Netlink ponuja enotno komunikacijsko plast in razširljivo obliko sporočila, ki lahko deluje kot posrednik, ki samodejno združuje različne podatke iz različnih virov v eno samo zahtevo. Na primer, podsisteme FreeBSD, kot so devd, jail in pfilctl, je mogoče preseliti v Netlink, zdaj z uporabo lastnih klicev ioctl, kar bo močno poenostavilo ustvarjanje aplikacij za delo s temi podsistemi. Poleg tega bo uporaba Netlinka za spreminjanje objektov in skupin nexthop v usmerjevalnem skladu omogočila učinkovitejšo interakcijo s procesi usmerjanja v uporabniškem prostoru.

Funkcije, ki so trenutno implementirane:

  • Pridobivanje informacij o poteh, objektih in skupinah nexthops, omrežnih vmesnikih, naslovih in sosednjih gostiteljih (arp/ndp).
  • Oblikovanje obvestil o pojavu in prekinitvi povezave omrežnih vmesnikov, nastavitev in brisanje naslovov, dodajanje in brisanje poti.
  • Dodajanje in odstranjevanje poti, objektov in skupin nexthops, prehodov, omrežnih vmesnikov.
  • Integracija z vmesnikom Rtsock za upravljanje usmerjevalne tabele.

Vir: opennet.ru

Dodaj komentar