FreeBSD dodaje podršku za Netlink protokol koji se koristi u Linux kernelu

FreeBSD kodna baza usvaja implementaciju komunikacijskog protokola Netlink (RFC 3549), koji se koristi u Linuxu za organiziranje interakcije između kernela i procesa u korisničkom prostoru. Projekt je ograničen na podršku NETLINK_ROUTE obitelji operacija za upravljanje stanjem mrežnog podsustava u kernelu.

U svom trenutnom obliku, sloj podrške za Netlink omogućuje FreeBSD-u korištenje uslužnog programa Linux ip iz paketa iproute2 za upravljanje mrežnim sučeljima, postavljanje IP adresa, konfiguriranje usmjeravanja i manipuliranje nexthop objektima koji pohranjuju stanje koje se koristi za prosljeđivanje paketa na željeno odredište. Nakon male izmjene datoteka zaglavlja, moguće je koristiti Netlink u paketu za usmjeravanje ptica.

Implementacija Netlink-a za FreeBSD pakirana je kao modul jezgre koji se može učitavati i koji, ako je moguće, ne utječe na druge podsustave jezgre i stvara zasebne redove zadataka (tasqueue) za obradu dolaznih poruka putem protokola i izvođenje operacija u asinkronom načinu. Razlog za prijenos Netlinka je nedostatak standardnog mehanizma za interakciju s podsustavima jezgre, što dovodi do toga da različiti podsustavi i upravljački programi izmišljaju vlastite protokole.

Netlink nudi objedinjeni komunikacijski sloj i proširivi format poruke koji može djelovati kao posrednik koji automatski kombinira različite podatke iz različitih izvora u jedan zahtjev. Na primjer, FreeBSD podsustavi kao što su devd, jail i pfilctl mogu se migrirati na Netlink, sada koristeći vlastite ioctl pozive, što će uvelike pojednostaviti kreiranje aplikacija za rad s tim podsustavima. Osim toga, korištenje Netlink-a za modificiranje nexthop objekata i grupa u hrpu usmjeravanja omogućit će učinkovitiju interakciju s procesima usmjeravanja u korisničkom prostoru.

Trenutno implementirane značajke:

  • Dobivanje informacija o rutama, nexthops objektima i grupama, mrežnim sučeljima, adresama i susjednim hostovima (arp/ndp).
  • Formiranje obavijesti o pojavi i odspajanju mrežnih sučelja, postavljanje i brisanje adresa, dodavanje i brisanje ruta.
  • Dodavanje i uklanjanje ruta, nexthops objekata i grupa, pristupnika, mrežnih sučelja.
  • Integracija s Rtsock sučeljem za upravljanje tablicom usmjeravanja.

Izvor: opennet.ru

Dodajte komentar