În FreeBSD, au adăugat suport pentru protocolul Netlink folosit în Linux

FreeBSD

FreeBSD este bine stabilit ca sistem pentru construirea de servere de Internet și Intranet. Oferă servicii de rețea destul de fiabile și un management eficient al memoriei.

Acum câteva zile s-a dat vestea că codul de bază al FreeBSD a adoptat o nouă implementare a protocolului de comunicare netlink (RFC 3549) care este folosit în Linux pentru a comunica între nucleu și procesele din spațiul utilizatorului.

Familia de prize netlink este o interfață de nucleu Linux care utilizat pentru comunicarea între procese (IPC) între procesele kernel și spațiul utilizatorului și între diferite procese ale spațiului utilizator, similar socket-urilor de domeniu Unix.

Similar cu socket-urile de domeniu Unix și spre deosebire de socket-urile INET, comunicarea Netlink nu poate traversa granițele gazdei. Cu toate acestea, în timp ce socketurile de domeniu Unix utilizează spațiul de nume al sistemului de fișiere, procesele Netlink sunt, în general, adresate prin identificatori de proces (PID).

Netlink este conceput și utilizat pentru a transfera diverse informații de rețea între spațiul kernel și procesele spațiului utilizator. Utilitarele de rețea, cum ar fi familia iproute2 și utilitarele utilizate pentru a configura driverele wireless bazate pe mac80211, folosesc Netlink pentru a comunica cu nucleul Linux din spațiul utilizatorului. Netlink oferă o interfață standard bazată pe socket pentru procesele din spațiul utilizatorului și un API la nivelul nucleului pentru uz intern de către modulele nucleului. Netlink a folosit inițial familia de prize AF_NETLINK.

Până acum, în forma sa actuală, Stratul de suport Netlink permite FreeBSD să utilizeze utilitarul IP Linux pachetului iproute2 pentru a gestiona interfețele de rețea, a seta adrese IP, a configura rutarea și a manipula obiectele nexthop care stochează starea folosită pentru a redirecționa un pachet către destinația dorită. După modificarea ușoară a fișierelor de antet, este posibil să utilizați Netlink în pachetul de rutare al lui Bird.

Implementarea Netlink pentru FreeBSD este ambalat ca un modul kernel încărcat că, dacă se poate, nu afectează alte subsisteme ale nucleului și creează cozi separate de sarcini (tasqueue) pentru a procesa mesajele primite prin protocol și a efectua operațiuni în modul asincron. Motivul pentru portarea Netlink este lipsa unui mecanism standard să interacționeze cu subsistemele nucleului, ceea ce duce la diferite subsisteme și drivere care își inventează propriile protocoale.

netlink oferă un nivel de comunicare unificat și un format de mesaj extensibil care poate acționa ca un intermediar care combină automat date disparate din surse diferite într-o singură cerere. De exemplu, subsistemele FreeBSD precum devd, jail și pfilctl pot fi portate la Netlink, folosind acum propriile apeluri ioctl, ceea ce va simplifica foarte mult construirea de aplicații pentru a lucra cu aceste subsisteme. În plus, utilizarea Netlink pentru a modifica obiectele și grupurile nexthop din stiva de rutare va permite o interacțiune mai eficientă cu procesele de rutare a spațiului utilizatorului.

Interfețele, adresele, rutele, firewall-urile, fibs, vnets etc. sunt controlate prin netlink. Este un protocol asincron bazat pe TLV care oferă comunicații 1-1 și 1-multe. Implementarea actuală acceptă subsetul familiei NETLINK_ROUTE. Implementarea este, de asemenea, compatibilă cu cadrul familiei NETLINK_GENERIC.

Caracteristici implementate în prezent:

  • Obține informații despre rute, obiecte și grupuri nexthops, interfețe de rețea, adrese și gazde învecinate (arp/ndp).
  • Formarea notificărilor despre apariția și deconectarea interfețelor de rețea, configurarea și eliminarea adreselor, adăugarea și eliminarea rutelor.
  • Adăugați și eliminați rute, obiecte și grupuri, gateway-uri, interfețe de rețea.
  • Integrare cu interfața Rtsock pentru a gestiona tabelul de rutare.

Este de menționat faptul că până acum proiectul se limitează la susținerea familiei de operațiuni NETLINK_ROUTE pentru a gestiona starea subsistemului de rețea din kernel.

În cele din urmă, dacă sunteți interesat să puteți afla mai multe despre aceasta, puteți consulta detaliile în următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.