FreeBSD 13.2-utgivelse med Netlink og WireGuard-støtte

Etter 11 måneder med utvikling har FreeBSD 13.2 blitt utgitt. Installasjonsbilder genereres for arkitekturene amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 og riscv64. I tillegg er det utarbeidet sammenstillinger for virtualiseringssystemer (QCOW2, VHD, VMDK, raw) og skymiljøene Amazon EC2, Google Compute Engine og Vagrant.

Viktige endringer:

  • Muligheten til å lage øyeblikksbilder av UFS- og FFS-filsystemer med logging aktivert (myke oppdateringer) er implementert. Lagt også til støtte for bakgrunnslagring av dumper (kjører dump med "-L"-flagget) med innholdet i monterte UFS-filsystemer når journalføring er aktivert. En av funksjonene som ikke er tilgjengelige når du bruker logging, er bakgrunnsutførelsen av integritetssjekker ved å bruke fsck-verktøyet.
  • Den grunnleggende sammensetningen inkluderer en wg-driver som opererer på kjernenivå med implementering av et nettverksgrensesnitt for VPN WireGuard. For å bruke de kryptografiske algoritmene som kreves av driveren, ble APIen til FreeBSD-kjernens krypto-undersystem utvidet, som en sele ble lagt til som tillater bruk av algoritmer fra libsodium-biblioteket som ikke støttes i FreeBSD gjennom standard krypto-API . Under utviklingsprosessen ble det også utført optimalisering for jevnt å balansere bindingen av pakkekryptering og dekrypteringsoppgaver til CPU-kjerner, noe som reduserte overheaden ved behandling av WireGuard-pakker.

    Det siste forsøket på å inkludere WireGuard i FreeBSD ble gjort i 2020, men endte i en skandale, som et resultat av at den allerede lagte koden ble fjernet på grunn av lav kvalitet, uforsiktig arbeid med buffere, bruk av stubber i stedet for sjekker, ufullstendig implementering av protokollen og brudd på GPL-lisensen. Den nye implementeringen ble utarbeidet i fellesskap av kjernene FreeBSD- og WireGuard-utviklingsteamene, med bidrag fra Jason A. Donenfeld, forfatter av VPN WireGuard, og John H. Baldwin, en kjent FreeBSD-utvikler. En fullstendig gjennomgang av endringene ble utført med støtte fra FreeBSD Foundation før den nye koden ble akseptert.

  • Støtte for Netlink-kommunikasjonsprotokollen (RFC 3549), brukt i Linux for å organisere interaksjonen mellom kjernen og prosesser i brukerområdet, er implementert. Prosjektet er begrenset til å støtte NETLINK_ROUTE-familien av operasjoner for å administrere tilstanden til nettverksundersystemet i kjernen, som lar FreeBSD bruke Linux ip-verktøyet fra iproute2-pakken for å administrere nettverksgrensesnitt, angi IP-adresser, konfigurere ruting og manipulere nexthop objekter som lagrer tilstandsdata som brukes for å sende pakken til ønsket destinasjon.
  • Alle kjørbare basesystem på 64-biters plattformer har Address Space Layout Randomization (ASLR) aktivert som standard. For å selektivt deaktivere ASLR, kan du bruke kommandoene "proccontrol -m aslr -s disable" eller "elfctl -e +noaslr".
  • I ipfw brukes radix-tabeller for å slå opp MAC-adresser, som lar deg lage tabeller med MAC-adresser og bruke dem til å filtrere trafikk. For eksempel: ipfw tabell 1 opprette type mac ipfw tabell 1 legg til 11:22:33:44:55:66/48 ipfw legg til skipto tablearg src-mac 'tabell(1)' ipfw legg nekte src-mac 'tabell(1, 100 )' ipfw add deny lookup dst-mac 1
  • Kjernemodulene dpdk_lpm4 og dpdk_lpm6 er lagt til og er tilgjengelige for lasting via loader.conf med implementeringen av DIR-24-8 rutesøkealgoritmen for IPv4/IPv6, som lar deg optimere rutingfunksjoner for verter med svært store rutingtabeller ( i tester observeres en hastighetsøkning på 25 %). For å konfigurere moduler kan standard ruteverktøy brukes (alternativet FIB_ALGO er lagt til).
  • ZFS-filsystemimplementeringen har blitt oppdatert for å utgi OpenZFS 2.1.9. Zfskeys oppstartsskript gir automatisk lasting av nøkler som er lagret i ZFS-filsystemet. Lagt til nytt RC-skript zpoolreguid for å tilordne en GUID til en eller flere zpools (f.eks. nyttig for delte datavirtualiseringsmiljøer).
  • Bhyve-hypervisoren og vmm-modulen støtter tilkobling av mer enn 15 virtuelle CPUer til gjestesystemet (regulert via sysctl hw.vmm.maxcpu). Bhyve-verktøyet implementerer emulering av virtio-inndataenheten, som du kan erstatte tastatur- og musinndatahendelser i gjestesystemet.
  • I KTLS, en implementering av TLS-protokollen som kjører på FreeBSD-kjernenivå, har støtte for maskinvareakselerasjon av TLS 1.3 blitt lagt til ved å avlaste noen operasjoner relatert til behandling av krypterte innkommende pakker til nettverkskortet. Tidligere var en lignende funksjon tilgjengelig for TLS 1.1 og TLS 1.2.
  • I oppstartsskriptet for growfs, når du utvider rotfilsystemet, er det mulig å legge til en swap-partisjon hvis en slik partisjon først manglet (for eksempel nyttig når du installerer et ferdig systembilde på et SD-kort). For å kontrollere byttestørrelsen har en ny parameter growfs_swap_size blitt lagt til rc.conf.
  • Hostid-oppstartsskriptet sørger for at en tilfeldig UUID genereres hvis /etc/hostid-filen mangler og UUID ikke kan hentes fra maskinvaren. La også til en /etc/machine-id-fil med en kompakt representasjon av verts-IDen (ingen bindestreker).
  • Variablene defaultrouter_fibN og ipv6_defaultrouter_fibN er lagt til rc.conf, der du kan legge til standardruter til andre FIB-tabeller enn den primære.
  • Støtte for SHA-512/224-hasher er lagt til libmd-biblioteket.
  • pthread-biblioteket gir støtte for semantikken til funksjoner som brukes i Linux.
  • Lagt til støtte for dekoding av Linux-systemanrop til kdump. Lagt til støtte for systemanropssporing i Linux-stil til kdump og sysdecode.
  • Killall-verktøyet har nå muligheten til å sende et signal til prosesser bundet til en spesifikk terminal (for eksempel "killall -t pts/1").
  • Lagt til nproc-verktøy for å vise antall beregningsblokker tilgjengelig for gjeldende prosess.
  • Støtte for dekoding av ACS-parametere (Access Control Services) er lagt til pciconf-verktøyet.
  • SPLIT_KERNEL_DEBUG-innstillingen er lagt til kjernen, som lar deg lagre feilsøkingsinformasjon for kjernen og kjernemodulene i separate filer.
  • Linux ABI er nesten komplett med støtte for vDSO-mekanismen (virtual dynamic shared objects), som gir et begrenset sett med systemanrop tilgjengelig i brukerområdet uten kontekstbytte. Linux ABI på ARM64-systemer har blitt brakt til paritet med implementeringen for AMD64-arkitekturen.
  • Forbedret maskinvarestøtte. Lagt til støtte for ytelsesovervåking (hwpmc) for Intel Alder Lake CPUer. Iwlwifi-driveren for Intel trådløse kort har blitt oppdatert med støtte for nye brikker og 802.11ac-standarden. Lagt til rtw88-driver for Realtek trådløse kort med PCI-grensesnitt. Mulighetene til linuxkpi-laget er utvidet for bruk med Linux-drivere i FreeBSD.
  • OpenSSL-biblioteket har blitt oppdatert til versjon 1.1.1t, LLVM/Сlang til versjon 14.0.5, og SSH-serveren og klienten er oppdatert til OpenSSH 9.2p1 (den forrige versjonen brukte OpenSSH 8.8p1). Også oppdatert er versjoner bc 6.2.4, expat 2.5.0, fil 5.43, mindre 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, ubundet 1.17.1, zlib 1.2.13.

I tillegg har det blitt annonsert at fra og med FreeBSD 14.0-grenen, engangspassord OPIE-, ce- og cp-drivere, drivere for ISA-kort, mergemaster- og minigzip-verktøy, ATM-komponenter i netgraph (NgATM), telnetd-bakgrunnsprosessen og VINUM klasse i geom.

Kilde: opennet.ru

Legg til en kommentar