I FreeBSD tilføjede de understøttelse af Netlink-protokollen brugt i Linux

FreeBSD

FreeBSD er veletableret som et system til opbygning af internet- og intranetservere. Det giver ret pålidelige netværkstjenester og effektiv hukommelsesstyring.

For flere dage siden nyheden blev frigivet at basiskoden for FreeBSD har vedtaget en ny implementering af kommunikationsprotokollen Netlink (RFC 3549) som bruges i Linux til at kommunikere mellem kernen og processer i brugerrummet.

Sokkelfamilien Netlink er en Linux-kernegrænseflade, der bruges til interproceskommunikation (IPC) mellem kerne- og brugerrumsprocesser og mellem forskellige brugerrumsprocesser, svarende til Unix-domæne-sockets.

I lighed med Unix-domæne-sockets og i modsætning til INET-sockets, kan Netlink-kommunikation ikke krydse værtsgrænser. Men mens Unix-domæne-sockets bruger filsystemets navneområde, adresseres Netlink-processer generelt af procesidentifikatorer (PID'er).

Netlink er designet og brugt til at overføre diverse netværksoplysninger mellem kernerum og brugerrumsprocesser. Netværksværktøjer, såsom iproute2-familien og hjælpeprogrammerne, der bruges til at konfigurere mac80211-baserede trådløse drivere, bruger Netlink til at kommunikere med Linux-kernen fra brugerpladsen. Netlink leverer en standard socket-baseret grænseflade til brugerrumsprocesser og en kerne-side API til intern brug af kernemoduler. Netlink brugte oprindeligt AF_NETLINK-familien af ​​sockets.

Indtil videre i sin nuværende form, Netlink-støttelag tillader FreeBSD at bruge Linux ip-værktøjet af iproute2-pakken til at administrere netværksgrænseflader, indstille IP-adresser, konfigurere routing og manipulere nexthop-objekter, der gemmer den tilstand, der bruges til at videresende en pakke til den ønskede destination. Efter lidt ændring af header-filerne er det muligt at bruge Netlink i Birds routing-pakke.

Netlink-implementeringen til FreeBSD er pakket som et indlæst kernemodul at hvis muligt påvirker ikke andre kerneundersystemer og opretter separate opgavekøer (tasqueue) til at behandle indgående meddelelser gennem protokollen og udføre operationer i asynkron tilstand. Årsagen til portering af Netlink er manglen på en standardmekanisme at interagere med kerneundersystemer, hvilket fører til, at forskellige undersystemer og drivere opfinder deres egne protokoller.

Netlink tilbyder et samlet kommunikationslag og et udvidbart beskedformat som kan fungere som en mellemmand, der automatisk kombinerer forskellige data fra forskellige kilder til en enkelt anmodning. For eksempel kan FreeBSD-undersystemer som devd, jail og pfilctl porteres til Netlink, nu ved at bruge deres egne ioctl-kald, hvilket i høj grad vil forenkle bygning af applikationer til at arbejde med disse undersystemer. Derudover vil brug af Netlink til at ændre nexthop-objekter og -grupper i routingstakken give mulighed for mere effektiv interaktion med brugerrum-routingprocesser.

Grænseflader, adresser, ruter, firewall, fibs, vnets osv. styres via netlink. Det er en TLV-baseret asynkron protokol, der giver 1-1 og 1-mange kommunikationer. Den aktuelle implementering understøtter undergruppen af ​​NETLINK_ROUTE-familien. Implementeringen er også kompatibel med NETLINK_GENERIC-familierammerne.

Funktioner implementeret i øjeblikket:

  • Få information om ruter, nexthops-objekter og -grupper, netværksgrænseflader, adresser og naboværter (arp/ndp).
  • Dannelse af meddelelser om udseende og afbrydelse af netværksgrænseflader, konfiguration og fjernelse af adresser, tilføjelse og fjernelse af ruter.
  • Tilføj og fjern ruter, næste hop-objekter og grupper, gateways, netværksgrænseflader.
  • Integration med Rtsock-grænsefladen til at styre routingtabellen.

Det er værd at nævne, at indtil videre er projektet begrænset til at understøtte NETLINK_ROUTE-familien af ​​operationer til at styre tilstanden af ​​netværksundersystemet i kernen.

Endelig, hvis du er interesseret i at kunne vide mere om det, kan du se detaljerne i følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.