Ang FreeBSD ay nagdaragdag ng suporta para sa Netlink protocol na ginagamit sa Linux kernel

Ang FreeBSD codebase ay gumagamit ng pagpapatupad ng Netlink communication protocol (RFC 3549), na ginagamit sa Linux upang ayusin ang interaksyon sa pagitan ng kernel at mga proseso sa espasyo ng gumagamit. Ang proyekto ay limitado sa pagsuporta sa NETLINK_ROUTE pamilya ng mga operasyon para sa pamamahala ng estado ng networking subsystem sa kernel.

Sa kasalukuyang anyo nito, pinapayagan ng Netlink support layer ang FreeBSD na gamitin ang Linux ip utility mula sa iproute2 package para pamahalaan ang mga interface ng network, magtakda ng mga IP address, i-configure ang pagruruta, at manipulahin ang mga nexthop na bagay na nag-iimbak ng estado na ginamit para ipasa ang isang packet sa nais na destinasyon. . Matapos bahagyang baguhin ang mga file ng header, posibleng gamitin ang Netlink sa Bird routing package.

Ang pagpapatupad ng Netlink para sa FreeBSD ay naka-package bilang isang loadable kernel module na, kung maaari, ay hindi makakaapekto 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 para sa pakikipag-ugnayan sa mga kernel subsystem, na humahantong sa iba't ibang mga subsystem at driver na nag-imbento ng kanilang sariling mga protocol.

Nag-aalok ang Netlink ng pinag-isang layer ng komunikasyon at isang extensible na format ng mensahe na maaaring kumilos bilang isang tagapamagitan na awtomatikong pinagsasama-sama ang magkakaibang data mula sa iba't ibang pinagmulan sa isang kahilingan. Halimbawa, ang mga subsystem ng FreeBSD gaya ng devd, jail, at pfilctl ay maaaring ilipat sa Netlink, ngayon ay gumagamit ng sarili nilang mga ioctl na tawag, na lubos na magpapasimple sa paglikha ng mga application para sa pagtatrabaho sa mga subsystem na ito. Bilang karagdagan, ang paggamit ng Netlink upang baguhin ang mga nexthop na bagay at grupo sa routing stack ay magbibigay-daan sa mas mahusay na pakikipag-ugnayan sa mga proseso ng pagruruta ng user-space.

Mga tampok na kasalukuyang ipinapatupad:

  • Pagkuha 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 paglitaw at pagdiskonekta ng mga interface ng network, pagtatakda at pagtanggal ng mga address, pagdaragdag at pagtanggal ng mga ruta.
  • Pagdaragdag at pag-alis ng mga ruta, nexthops na mga bagay at grupo, mga gateway, mga interface ng network.
  • Pagsasama sa interface ng Rtsock para pamahalaan ang routing table.

Pinagmulan: opennet.ru

Magdagdag ng komento