Sa FreeBSD nagdagdag sila ng suporta para sa Netlink protocol na ginagamit sa Linux

FreeBSD

Ang FreeBSD ay mahusay na itinatag bilang isang sistema para sa pagbuo ng mga server ng Internet at Intranet. Nagbibigay ito ng medyo maaasahang mga serbisyo sa network at mahusay na pamamahala ng memorya.

Ilang araw na ang nakakalipas inilabas ang balita na ang batayang code ng Pinagtibay ng FreeBSD isang bagong pagpapatupad ng protocol ng komunikasyon netlink (RFC 3549) na ginagamit sa Linux upang makipag-ugnayan sa pagitan ng kernel at mga proseso sa espasyo ng gumagamit.

Ang pamilya ng socket netlink ay isang Linux kernel interface na ginagamit para sa interprocess communication (IPC) sa pagitan ng mga proseso ng kernel at userspace at sa pagitan ng iba't ibang proseso ng espasyo ng user, katulad ng mga socket ng Unix domain.

Katulad ng mga Unix domain socket at hindi katulad ng mga INET socket, ang komunikasyon ng Netlink ay hindi maaaring tumawid sa mga hangganan ng host. Gayunpaman, habang ginagamit ng mga Unix domain socket ang file system namespace, ang mga proseso ng Netlink ay karaniwang tinutugunan ng mga process identifier (PID).

Ang Netlink ay idinisenyo at ginagamit upang maglipat ng iba't ibang impormasyon sa network sa pagitan ng kernel space at mga proseso ng user space. Ang mga utility sa network, gaya ng pamilya ng iproute2 at ang mga utility na ginamit upang i-configure ang mga wireless driver na nakabatay sa mac80211, ay gumagamit ng Netlink upang makipag-ugnayan sa Linux kernel mula sa espasyo ng user. Nagbibigay ang Netlink ng karaniwang socket-based na interface para sa mga proseso ng user space at isang kernel-side API para sa panloob na paggamit ng mga kernel module. Orihinal na ginamit ng Netlink ang AF_NETLINK na pamilya ng mga socket.

Sa ngayon sa kasalukuyan nitong anyo, Binibigyang-daan ng Netlink support layer ang FreeBSD na gamitin ang Linux ip utility ng iproute2 packet upang pamahalaan ang mga interface ng network, itakda ang mga IP address, i-configure ang pagruruta, at manipulahin ang mga nexthop na bagay na nag-iimbak ng estado na ginamit upang ipasa ang isang packet sa nais na patutunguhan. Matapos bahagyang baguhin ang mga file ng header, posibleng gamitin ang Netlink sa packet ng pagruruta ng Bird.

Ang pagpapatupad ng Netlink para sa FreeBSD ay nakabalot bilang isang mai-load na kernel module na, kung maaari, hindi nakakaapekto sa iba pang mga kernel subsystem at lumilikha ng hiwalay na mga pila ng gawain (tasqueue) upang iproseso ang mga papasok na mensahe sa pamamagitan ng protocol at magsagawa ng mga operasyon sa asynchronous mode. Ang dahilan ng pag-port ng Netlink ay ang kakulangan ng isang karaniwang mekanismo upang makipag-ugnayan sa mga kernel subsystem, na humahantong sa iba't ibang mga subsystem at driver na nag-imbento ng kanilang sariling mga protocol.

netlink nag-aalok ng pinag-isang layer ng komunikasyon at isang extensible na format ng mensahe na maaaring kumilos bilang isang middleman na awtomatikong pinagsasama-sama ang magkakaibang data mula sa iba't ibang pinagmulan sa isang kahilingan. Halimbawa, ang mga subsystem ng FreeBSD tulad ng devd, jail, at pfilctl ay maaaring i-port sa Netlink, na ngayon ay gumagamit ng sarili nilang mga ioctl call, na lubos na magpapasimple sa pagbuo ng mga application upang gumana sa mga subsystem na ito. Bukod pa rito, ang paggamit ng Netlink upang baguhin ang mga nexthop na bagay at grupo sa routing stack ay magbibigay-daan para sa mas mahusay na pakikipag-ugnayan sa mga proseso ng pagruruta ng espasyo ng user.

Ang mga interface, address, ruta, firewall, fibs, vnets, atbp. ay kinokontrol sa pamamagitan ng netlink. Ito ay isang TLV-based na asynchronous na protocol na nagbibigay ng 1-1 at 1-many na komunikasyon. Sinusuportahan ng kasalukuyang pagpapatupad ang subset ng pamilyang NETLINK_ROUTE. Ang pagpapatupad ay katugma din sa NETLINK_GENERIC na balangkas ng pamilya.

Mga tampok na kasalukuyang ipinapatupad:

  • Kumuha ng impormasyon tungkol sa mga ruta, nexthops na mga bagay at grupo, mga interface ng network, mga address at mga kalapit na host (arp/ndp).
  • Pagbubuo ng mga abiso tungkol sa hitsura at pagdiskonekta ng mga interface ng network, pagsasaayos at pag-alis ng mga address, pagdaragdag at pag-alis ng mga ruta.
  • Magdagdag at mag-alis ng mga ruta, susunod na hop object at grupo, gateway, network interface.
  • Pagsasama sa interface ng Rtsock para pamahalaan ang routing table.

Ito ay nagkakahalaga ng pagbanggit na sa ngayon ang proyekto ay limitado sa pagsuporta sa NETLINK_ROUTE pamilya ng mga operasyon upang pamahalaan ang estado ng network subsystem sa kernel.

Panghuli, kung interesado kang malaman ang tungkol dito, maaari kang kumunsulta sa mga detalye sa ang sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.