Izdaja FreeBSD 13.2 s podporo za Netlink in WireGuard

Po 11 mesecih razvoja je bil izdan FreeBSD 13.2. Namestitvene slike so ustvarjene za arhitekture amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 in riscv64. Poleg tega so bile pripravljene gradnje za virtualizacijske sisteme (QCOW2, VHD, VMDK, raw) ter oblačna okolja Amazon EC2, Google Compute Engine in Vagrant.

Ključne spremembe:

  • Implementirana možnost ustvarjanja posnetkov datotečnih sistemov UFS in FFS z omogočenim beleženjem (mehke posodobitve). Dodana je tudi podpora za shranjevanje izpisov v ozadju (zagon izpisa z zastavico "-L") z vsebino nameščenih datotečnih sistemov UFS z omogočenim beleženjem. Od funkcij, ki niso na voljo pri uporabi beleženja, obstaja preverjanje celovitosti ozadja s pripomočkom fsck.
  • Gonilnik wg, ki deluje na ravni jedra z implementacijo omrežnega vmesnika za VPN WireGuard, je bil sprejet kot glavni del. Za uporabo kriptografskih algoritmov, ki jih zahteva gonilnik, je bil razširjen API kripto podsistema jedra FreeBSD, ki mu je bila dodana vezava, ki omogoča uporabo algoritmov iz knjižnice libsodium, ki niso podprti v FreeBSD prek standardnega kripto API-ja. Med razvojnim procesom so bile izvedene tudi optimizacije za enakomerno uravnoteženje dodeljevanja nalog šifriranja in dešifriranja jedrom CPU, kar je zmanjšalo stroške obdelave paketov WireGuard.

    Zadnji poskus vključitve WireGuarda v FreeBSD je bil izveden leta 2020, vendar se je končal s škandalom, zaradi katerega je bila že dodana koda odstranjena zaradi nizke kakovosti, neprevidnega ravnanja z medpomnilnikom, uporabe škrbin namesto preverjanj, nepopolne implementacije protokola in kršitev licence GPL. Novo izvedbo, ki sta jo skupaj pripravili glavni razvojni ekipi FreeBSD in WireGuard s prispevki Jasona A. Donenfelda, avtorja VPN WireGuard, in Johna H. Baldwina, priznanega razvijalca FreeBSD. Popoln pregled sprememb je bil opravljen s podporo FreeBSD Foundation, preden je bila nova koda sprejeta.

  • Implementirana podpora za komunikacijski protokol Netlink (RFC 3549), ki se v Linuxu uporablja za organizacijo interakcije med jedrom in procesi v uporabniškem prostoru. Projekt je omejen na podporo družini operacij NETLINK_ROUTE za upravljanje stanja omrežnega podsistema v jedru, ki FreeBSD omogoča uporabo pripomočka ip Linux iz paketa iproute2 za upravljanje omrežnih vmesnikov, nastavitev naslovov IP, konfiguracijo usmerjanja in manipulacijo objekti nexthop, ki shranjujejo podatke o stanju, ki se uporabljajo za posredovanje paketa na želeni cilj.
  • Vse izvršljive datoteke osnovnega sistema na 64-bitnih platformah imajo privzeto omogočeno randomizacijo postavitve naslovnega prostora (ASLR). Če želite selektivno onemogočiti ASLR, lahko uporabite ukaze "proccontrol -ma aslr -s onemogoči" ali "elfctl -e +noaslr".
  • ipfw uporablja tabele Radix za iskanje naslovov MAC, kar vam omogoča ustvarjanje tabel z naslovi MAC in njihovo uporabo za filtriranje prometa. Na primer: ipfw table 1 create type mac ipfw table 1 add 11:22:33:44:55:66/48 ipfw add skipto tablearg src-mac 'table(1)' ipfw add deny src-mac 'table(1, 100 )' ipfw add deny lookup dst-mac 1
  • Dodana in na voljo za nalaganje prek loader.conf sta modula jedra dpdk_lpm4 in dpdk_lpm6 z implementacijo algoritma iskanja poti DIR-24-8 za IPv4/IPv6, ki omogoča optimizacijo funkcij usmerjanja za gostitelje z zelo velikimi usmerjevalnimi tabelami (testi kažejo povečanje hitrosti za 25 %). Za konfiguracijo modulov je mogoče uporabiti standardni pripomoček za usmerjanje (dodana je bila možnost FIB_ALGO).
  • Izvedba datotečnega sistema ZFS je bila posodobljena na izdajo OpenZFS 2.1.9. Zagonski skript zfskeys omogoča samodejno nalaganje ključev, shranjenih v datotečnem sistemu ZFS. Dodan nov skript RC zpoolreguid za dodelitev GUID-ja enemu ali več zpoolom (uporabno na primer za okolja virtualizacije podatkov v skupni rabi).
  • Hipervizor Bhyve in modul vmm podpirata priključitev več kot 15 navideznih procesorjev v sistem za goste (nastavljivo prek sysctl hw.vmm.maxcpu). Pripomoček bhyve implementira emulacijo vhodne naprave virtio, s katero lahko zamenjate dogodke vnosa tipkovnice in miške v sistem za goste.
  • KTLS, implementacija protokola TLS, ki se izvaja na ravni jedra FreeBSD, dodaja podporo za pospeševanje strojne opreme TLS 1.3 tako, da nekatere operacije, povezane z obdelavo šifriranih dohodnih paketov, razbremeni na ramenih omrežne kartice. Prej je bila ta funkcija na voljo za TLS 1.1 in TLS 1.2.
  • V začetnem skriptu growfs je pri razširitvi korenskega FS zagotovljeno, da se doda izmenjalna particija, če taka particija prvotno ni bila prisotna (uporabno je na primer pri namestitvi že pripravljene sistemske slike na kartico SD). V rc.conf je bila dodana nova možnost growfs_swap_size za nadzor velikosti zamenjave.
  • Zagonski skript hostid zagotavlja, da se ustvari naključni UUID, če datoteka /etc/hostid manjka in UUID-ja ni mogoče pridobiti iz strojne opreme. Dodana je tudi datoteka /etc/machine-id s strnjeno predstavitvijo ID-ja gostitelja (brez pomišljajev).
  • V rc.conf sta bili dodani spremenljivki defaultrouter_fibN in ipv6_defaultrouter_fibN, prek katerih lahko dodate privzete poti v tabele FIB, ki niso primarne.
  • V knjižnico libmd je bila dodana podpora za zgoščene vrednosti SHA-512/224.
  • Knjižnica pthread izvaja podporo za semantiko funkcij, ki se uporabljajo v Linuxu.
  • V kdump je bila dodana podpora za dekodiranje sistemskih klicev Linux. Podpora za sledenje sistemskih klicev v slogu Linuxa je bila dodana v kdump in sysdecode.
  • Pripomoček killall ima zdaj možnost pošiljanja signala procesom, vezanim na določen terminal (na primer "killall -t pts/1").
  • Dodan pripomoček nproc za prikaz števila računskih enot, ki so na voljo trenutnemu procesu.
  • Pripomočku pciconf je bila dodana podpora za dekodiranje parametrov ACS (Access Control Services).
  • V jedro je bila dodana nastavitev SPLIT_KERNEL_DEBUG, ki omogoča shranjevanje informacij o odpravljanju napak za jedro in module jedra v ločene datoteke.
  • ABI za linux je skoraj dokončan s podporo za mehanizem vDSO (navidezni dinamični objekti v skupni rabi), ki zagotavlja omejen nabor sistemskih klicev, ki so na voljo v uporabniškem prostoru brez preklapljanja konteksta. ABI za linux v sistemih ARM64 je bil usklajen z izvedbo za arhitekturo AMD64.
  • Izboljšana strojna podpora. Dodana podpora za spremljanje zmogljivosti (hwpmc) za procesorje Intel Alder Lake. Posodobljen gonilnik iwlwifi za brezžične kartice Intel s podporo za nove čipe in standard 802.11ac. Dodan gonilnik rtw88 za brezžične kartice Realtek PCI. Razširjen sloj linuxkpi za uporabo z gonilniki FreeBSD Linux.
  • Knjižnica OpenSSL je posodobljena na različico 1.1.1t, LLVM/Сlang na različico 14.0.5, strežnik in odjemalec SSH pa posodobljena na OpenSSH 9.2p1 (prejšnja različica je uporabljala OpenSSH 8.8p1). Posodobljeni so tudi bc 6.2.4, expat 2.5.0, datoteka 5.43, manj 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, nevezano 1.17.1, zlib 1.2.13.

Poleg tega je bil opuščen in odstranjen od veje FreeBSD 14.0 za enkratna gesla OPIE, gonilnike ce in cp, gonilnike kartic ISA, pripomočke mergemaster in minigzip, komponente ATM v netgraph (NgATM), proces v ozadju telnetd in VINUM razreda geom.

Vir: opennet.ru

Dodaj komentar