În FreeBSD a fost adăugată suportul pentru protocolul Netlink, utilizat în nucleul Linux

În baza de cod FreeBSD a fost acceptată implementarea protocolului de comunicație Netlink (RFC 3549), utilizat în Linux pentru a organiza interacțiunea dintre nucleu și procese în spațiul utilizatorului. Proiectul se limitează la suportul familiei de operații NETLINK_ROUTE pentru gestionarea stării subsistemului de rețea din nucleu.

În forma actuală, nivelul de suport Netlink permite utilizarea utilitarului ip din FreeBSD Linux din pachetul iproute2 pentru gestionarea interfețelor de rețea, setarea adreselor IP, configurarea rutelor și manipularea obiectelor nexthop, care conțin informații despre starea utilizată pentru a transmite pachetul către destinația dorită. După o modificare minoră a fișierelor de antet, Netlink poate fi utilizat în pachetul de rutare Bird.

Implementarea Netlink pentru FreeBSD este realizată sub forma unui modul kernel încărcabil, care, atunci când este posibil, nu afectează alte subsisteme ale nucleului și creează cozi separate de sarcini (tasqueue) pentru a procesa mesajele primite prin protocol și pentru a efectua operațiuni în mod asincron. Motivul portării Netlink este lipsa unui mecanism standard de interacțiune cu subsistemele nucleului, ceea ce duce la reinventarea protocolului propriu de către diferitele subsisteme și drivere.

Netlink oferă un strat de comunicație unificat și un format extensibil de mesaje, care poate acționa ca un intermediar, combinând automat într-o singură solicitare date disparate din diferite surse. De exemplu, subsistemele FreeBSD precum devd, jail și pfilctl, care utilizează în prezent propriile apeluri ioctl, pot fi traduse în Netlink, ceea ce va simplifica semnificativ crearea aplicațiilor pentru a interacționa cu aceste subsisteme. În plus, utilizarea Netlink pentru a modifica obiectele și grupurile nexthop în pila de rutare va permite interacțiunea mai eficientă cu procesele de rutare din spațiul utilizatorului.

Funcționalitățile implementate în prezent sunt:

  • Obținerea informațiilor despre rute, obiecte și grupuri nexthop, interfețe de rețea, adrese și gazde vecine (arp/ndp).
  • Generarea de notificări privind apariția și deconectarea interfețelor de rețea, setarea și ștergerea adreselor, adăugarea și ștergerea rutelor.
  • Adăugarea și ștergerea rutelor, obiectelor și grupurilor nexthop, gateway-urilor, interfețelor de rețea.
  • Integrarea cu interfața Rtsock pentru gestionarea tabelului de rutare.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster