Ve FreeBSD přidali podporu pro protokol Netlink používaný v Linuxu

FreeBSD

FreeBSD je dobře zaveden jako systém pro budování internetových a intranetových serverů. Poskytuje poměrně spolehlivé síťové služby a efektivní správu paměti.

Před několika dny zpráva byla zveřejněna že základní kód FreeBSD přijalo nová implementace komunikačního protokolu netlink (RFC 3549), který se v Linuxu používá ke komunikaci mezi jádrem a procesy v uživatelském prostoru.

Rodina zásuvek netlink je rozhraní linuxového jádra, které používá se pro meziprocesovou komunikaci (IPC) mezi procesy jádra a uživatelského prostoru a mezi různými procesy uživatelského prostoru, podobně jako sokety domény Unix.

Podobně jako u soketů domény Unix a na rozdíl od soketů INET nemůže komunikace Netlink překročit hranice hostitele. Zatímco však sokety domén Unix používají jmenný prostor souborového systému, procesy Netlink jsou obecně adresovány identifikátory procesů (PID).

Netlink je navržen a používán k přenosu různých síťových informací mezi procesy jádra a uživatelského prostoru. Síťové nástroje, jako je rodina iproute2 a nástroje používané ke konfiguraci bezdrátových ovladačů založených na mac80211, používají Netlink ke komunikaci s linuxovým jádrem z uživatelského prostoru. Netlink poskytuje standardní rozhraní založené na soketu pro procesy v uživatelském prostoru a rozhraní API na straně jádra pro interní použití moduly jádra. Netlink původně používal řadu socketů AF_NETLINK.

Zatím ve své současné podobě, Vrstva podpory Netlink umožňuje FreeBSD používat linuxový IP nástroj iproute2 paketu pro správu síťových rozhraní, nastavení IP adres, konfiguraci směrování a manipulaci s objekty nexthop, které ukládají stav použitý k předání paketu do požadovaného cíle. Po mírné změně hlavičkových souborů je možné použít Netlink ve směrovacím paketu Bird.

Implementace Netlink pro FreeBSD je zabalen jako zaváděcí modul jádra že pokud možno, neovlivňuje ostatní subsystémy jádra a vytváří samostatné fronty úloh (tasqueue) pro zpracování příchozích zpráv prostřednictvím protokolu a provádění operací v asynchronním režimu. Důvodem pro portování Netlinku je absence standardního mechanismu interagovat se subsystémy jádra, což vede k tomu, že různé subsystémy a ovladače vymýšlejí své vlastní protokoly.

netlink nabízí jednotnou komunikační vrstvu a rozšiřitelný formát zpráv který může fungovat jako prostředník, který automaticky spojuje nesourodá data z různých zdrojů do jediného požadavku. Například subsystémy FreeBSD jako devd, jail a pfilctl lze portovat na Netlink, nyní pomocí jejich vlastních volání ioctl, což značně zjednoduší vytváření aplikací pro práci s těmito subsystémy. Použití Netlinku k úpravě objektů a skupin nexthop ve směrovacím zásobníku navíc umožní efektivnější interakci s procesy směrování v uživatelském prostoru.

Rozhraní, adresy, trasy, firewall, fibs, vnet atd. jsou ovládány přes netlink. Jedná se o asynchronní protokol založený na TLV, který poskytuje komunikaci 1-1 a 1-many. Aktuální implementace podporuje podmnožinu rodiny NETLINK_ROUTE. Implementace je také kompatibilní s rámcem rodiny NETLINK_GENERIC.

Aktuálně implementované funkce:

  • Získejte informace o trasách, objektech a skupinách nexthops, síťových rozhraních, adresách a sousedních hostitelích (arp/ndp).
  • Tvorba upozornění na výskyt a odpojení síťových rozhraní, konfiguraci a odebírání adres, přidávání a odebírání tras.
  • Přidat a odebrat trasy, objekty a skupiny dalšího skoku, brány, síťová rozhraní.
  • Integrace s rozhraním Rtsock pro správu směrovací tabulky.

Za zmínku stojí, že projekt je zatím omezen na podporu rodiny operací NETLINK_ROUTE pro správu stavu síťového subsystému v jádře.

Nakonec, pokud vás zajímá, že se o tom můžete dozvědět více, můžete se podívat na podrobnosti v následující odkaz.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.