FreeBSD shton mbështetje për protokollin Netlink të përdorur në kernelin Linux

Baza e kodeve FreeBSD miraton një implementim të protokollit të komunikimit Netlink (RFC 3549), i cili përdoret në Linux për të organizuar ndërveprimin midis kernelit dhe proceseve në hapësirën e përdoruesit. Projekti është i kufizuar në mbështetjen e familjes NETLINK_ROUTE të operacioneve për menaxhimin e gjendjes së nënsistemit të rrjetit në kernel.

Në formën e tij aktuale, shtresa e mbështetjes Netlink lejon FreeBSD të përdorë programin Linux ip nga paketa iproute2 për të menaxhuar ndërfaqet e rrjetit, për të vendosur adresat IP, për të konfiguruar rrugëtimin dhe për të manipuluar objektet e nexthop që ruajnë gjendjen e përdorur për të përcjellë një paketë në destinacionin e dëshiruar. . Pas ndryshimit të lehtë të skedarëve të kokës, është e mundur të përdoret Netlink në paketën e rrugëzimit të Bird.

Implementimi i Netlink për FreeBSD paketohet si një modul kernel i ngarkueshëm që, nëse është e mundur, nuk ndikon në nënsistemet e tjera të kernelit dhe krijon radhë të veçanta detyrash (tasqueue) për të përpunuar mesazhet hyrëse përmes protokollit dhe për të kryer operacione në modalitetin asinkron. Arsyeja e transferimit të Netlink është mungesa e një mekanizmi standard për ndërveprim me nënsistemet e kernelit, gjë që çon në nënsisteme dhe drejtues të ndryshëm që shpikin protokollet e tyre.

Netlink ofron një shtresë të unifikuar komunikimi dhe një format mesazhi të zgjerueshëm që mund të veprojë si një ndërmjetës që kombinon automatikisht të dhëna të ndryshme nga burime të ndryshme në një kërkesë të vetme. Për shembull, nënsistemet FreeBSD si devd, jail dhe pfilctl mund të migrohen në Netlink, duke përdorur tani thirrjet e tyre ioctl, të cilat do të thjeshtojnë shumë krijimin e aplikacioneve për të punuar me këto nënsisteme. Për më tepër, përdorimi i Netlink për të modifikuar objektet dhe grupet nexthop në pirgun e rrugëzimit do të lejojë ndërveprim më efikas me proceset e rrugëzimit të hapësirës së përdoruesit.

Karakteristikat e implementuara aktualisht:

  • Marrja e informacionit në lidhje me rrugët, objektet dhe grupet nexthops, ndërfaqet e rrjetit, adresat dhe hostet fqinjë (arp/ndp).
  • Formimi i njoftimeve për shfaqjen dhe shkëputjen e ndërfaqeve të rrjetit, vendosjen dhe fshirjen e adresave, shtimin dhe fshirjen e rrugëve.
  • Shtimi dhe heqja e rrugëve, objekteve dhe grupeve nexthops, portave, ndërfaqeve të rrjetit.
  • Integrimi me ndërfaqen Rtsock për të menaxhuar tabelën e rrugëtimit.

Burimi: opennet.ru

Shto një koment