Versiunea FreeBSD 13.2 cu suport Netlink și WireGuard

După 11 luni de dezvoltare, FreeBSD 13.2 a fost lansat. Imaginile de instalare sunt generate pentru arhitecturile amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 și riscv64. În plus, au fost pregătite ansambluri pentru sisteme de virtualizare (QCOW2, VHD, VMDK, raw) și medii cloud Amazon EC2, Google Compute Engine și Vagrant.

Schimbări cheie:

  • A fost implementată capacitatea de a crea instantanee ale sistemelor de fișiere UFS și FFS cu înregistrarea în jurnal activată (actualizări soft). De asemenea, s-a adăugat suport pentru salvarea în fundal a dump-urilor (rularea dump-ului cu indicatorul „-L”) cu conținutul sistemelor de fișiere UFS montate atunci când jurnalizarea este activată. Una dintre caracteristicile care nu este disponibilă atunci când utilizați înregistrarea este executarea în fundal a verificărilor de integritate folosind utilitarul fsck.
  • Compoziția de bază include un driver wg care funcționează la nivel de kernel cu implementarea unei interfețe de rețea pentru VPN WireGuard. Pentru a utiliza algoritmii criptografici solicitați de driver, s-a extins API-ul cripto-subsistemului kernel FreeBSD, căruia i s-a adăugat un cablaj care permite utilizarea algoritmilor din biblioteca libsodium care nu sunt suportați în FreeBSD prin cripto-API standard. . În timpul procesului de dezvoltare, optimizarea a fost efectuată și pentru a echilibra în mod egal legarea sarcinilor de criptare și decriptare a pachetelor de nucleele CPU, ceea ce a redus supraîncărcarea la procesarea pachetelor WireGuard.

    Ultima încercare de a include WireGuard în FreeBSD a fost făcută în 2020, dar s-a încheiat cu un scandal, în urma căruia codul deja adăugat a fost eliminat din cauza calității scăzute, a lucrului neglijent cu tampoane, a utilizării stub-urilor în loc de verificări, a implementării incomplete. a protocolului și încălcarea licenței GPL. Noua implementare a fost pregătită în comun de echipele de dezvoltare FreeBSD și WireGuard, cu contribuții de la Jason A. Donenfeld, autorul cărții VPN WireGuard, și John H. Baldwin, un dezvoltator renumit FreeBSD. O revizuire completă a modificărilor a fost efectuată cu sprijinul Fundației FreeBSD înainte ca noul cod să fie acceptat.

  • A fost implementat suportul pentru protocolul de comunicare Netlink (RFC 3549), utilizat în Linux pentru a organiza interacțiunea kernel-ului cu procesele din spațiul utilizatorului. Proiectul se limitează la susținerea familiei de operațiuni NETLINK_ROUTE pentru gestionarea stării subsistemului de rețea din kernel, ceea ce permite FreeBSD să folosească utilitarul IP Linux din pachetul iproute2 pentru a gestiona interfețele de rețea, a seta adrese IP, a configura rutarea și a manipula nexthop. obiecte care stochează date de stare utilizate pentru transmiterea pachetului către destinația dorită.
  • Toate executabilele sistemului de bază pe platformele pe 64 de biți au Randomizarea spațiului de adrese (ASLR) activată în mod implicit. Pentru a dezactiva selectiv ASLR, puteți folosi comenzile „proccontrol -m aslr -s disable” sau „elfctl -e +noaslr”.
  • În ipfw, tabelele radix sunt folosite pentru a căuta adrese MAC, ceea ce vă permite să creați tabele cu adrese MAC și să le utilizați pentru a filtra traficul. De exemplu: 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
  • Modulele de kernel dpdk_lpm4 și dpdk_lpm6 au fost adăugate și sunt disponibile pentru încărcare prin loader.conf odată cu implementarea algoritmului de căutare a rutei DIR-24-8 pentru IPv4/IPv6, care vă permite să optimizați funcțiile de rutare pentru gazde cu tabele de rutare foarte mari ( în teste se observă o creștere a vitezei de 25 %). Pentru a configura modulele, se poate folosi utilitarul de rută standard (a fost adăugată opțiunea FIB_ALGO).
  • Implementarea sistemului de fișiere ZFS a fost actualizată pentru a lansa OpenZFS 2.1.9. Scriptul de pornire zfskeys oferă încărcarea automată a cheilor stocate în sistemul de fișiere ZFS. S-a adăugat un nou script RC zpoolreguid pentru a atribui un GUID unuia sau mai multor zpool-uri (de exemplu, util pentru mediile de virtualizare a datelor partajate).
  • Hypervisorul Bhyve și modulul vmm acceptă atașarea a mai mult de 15 procesoare virtuale la sistemul oaspete (reglementat prin sysctl hw.vmm.maxcpu). Utilitarul bhyve implementează emularea dispozitivului de intrare virtio, cu care puteți înlocui evenimentele de intrare de la tastatură și mouse în sistemul oaspete.
  • În KTLS, o implementare a protocolului TLS care rulează la nivel de kernel FreeBSD, a fost adăugat suport pentru accelerarea hardware a TLS 1.3 prin descărcarea unor operațiuni legate de procesarea pachetelor criptate primite pe placa de rețea. Anterior, o caracteristică similară era disponibilă pentru TLS 1.1 și TLS 1.2.
  • În scriptul de pornire growfs, la extinderea sistemului de fișiere rădăcină, este posibil să adăugați o partiție de swap dacă o astfel de partiție lipsea inițial (de exemplu, utilă atunci când instalați o imagine de sistem gata făcută pe un card SD). Pentru a controla dimensiunea swap, un nou parametru growfs_swap_size a fost adăugat la rc.conf.
  • Scriptul de pornire hostid asigură generarea unui UUID aleatoriu dacă fișierul /etc/hostid lipsește și UUID-ul nu poate fi obținut de la hardware. De asemenea, a adăugat un fișier /etc/machine-id cu o reprezentare compactă a ID-ului gazdei (fără cratime).
  • Variabilele defaultrouter_fibN și ipv6_defaultrouter_fibN au fost adăugate la rc.conf, prin care puteți adăuga rute implicite la tabelele FIB altele decât cea primară.
  • Suportul pentru hash-uri SHA-512/224 a fost adăugat la biblioteca libmd.
  • Biblioteca pthread oferă suport pentru semantica funcțiilor utilizate în Linux.
  • S-a adăugat suport pentru decodarea apelurilor de sistem Linux la kdump. S-a adăugat suport pentru urmărirea apelurilor de sistem în stil Linux la kdump și sysdecode.
  • Utilitarul killall are acum capacitatea de a trimite un semnal către procesele legate de un anumit terminal (de exemplu, „killall -t pts/1”).
  • S-a adăugat utilitarul nproc pentru a afișa numărul de blocuri de calcul disponibile pentru procesul curent.
  • Suport pentru decodarea parametrilor ACS (Access Control Services) a fost adăugat la utilitarul pcconf.
  • Setarea SPLIT_KERNEL_DEBUG a fost adăugată la nucleu, ceea ce vă permite să salvați informațiile de depanare pentru kernel și modulele kernel în fișiere separate.
  • Linux ABI este aproape complet cu suport pentru mecanismul vDSO (virtual dynamic shared objects), care oferă un set limitat de apeluri de sistem disponibile în spațiul utilizatorului fără schimbarea contextului. Linux ABI pe sistemele ARM64 a fost adus la egalitate cu implementarea arhitecturii AMD64.
  • Suport hardware îmbunătățit. S-a adăugat suport pentru monitorizarea performanței (hwpmc) pentru procesoarele Intel Alder Lake. Driverul iwlwifi pentru plăcile wireless Intel a fost actualizat cu suport pentru noi cipuri și standardul 802.11ac. S-a adăugat driver rtw88 pentru plăcile fără fir Realtek cu interfață PCI. Capacitățile stratului linuxkpi au fost extinse pentru a fi utilizate cu driverele Linux în FreeBSD.
  • Biblioteca OpenSSL a fost actualizată la versiunea 1.1.1t, LLVM/Сlang la versiunea 14.0.5, iar serverul și clientul SSH au fost actualizate la OpenSSH 9.2p1 (versiunea anterioară folosea OpenSSH 8.8p1). De asemenea, sunt actualizate versiunile bc 6.2.4, expat 2.5.0, fișierul 5.43, mai puțin 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, nelegat 1.17.1, zlib 1.2.13.

În plus, s-a anunțat că, începând cu filiala FreeBSD 14.0, parole unice OPIE, drivere ce și cp, drivere pentru carduri ISA, utilitare mergemaster și minigzip, componente ATM în netgraph (NgATM), procesul de fundal telnetd și Clasa VINUM în geom.

Sursa: opennet.ru

Adauga un comentariu