Vydanie FreeBSD 13.2 s podporou Netlink a WireGuard

Po 11 mesiacoch vývoja bolo vydané FreeBSD 13.2. Inštalačné obrazy sa generujú pre architektúry amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 a riscv64. Okrem toho boli pripravené zostavy pre virtualizačné systémy (QCOW2, VHD, VMDK, raw) a cloudové prostredia Amazon EC2, Google Compute Engine a Vagrant.

Kľúčové zmeny:

  • Bola implementovaná možnosť vytvárať snímky súborových systémov UFS a FFS s povoleným protokolovaním (softvé aktualizácie). Tiež bola pridaná podpora pre ukladanie výpisov na pozadí (spustený výpis s príznakom “-L”) s obsahom pripojených súborových systémov UFS, keď je povolené žurnálovanie. Jednou z funkcií, ktoré nie sú dostupné pri používaní protokolovania, je vykonávanie kontrol integrity na pozadí pomocou pomocného programu fsck.
  • Základné zloženie obsahuje wg ovládač fungujúci na úrovni jadra s implementáciou sieťového rozhrania pre VPN WireGuard. Na použitie kryptografických algoritmov vyžadovaných ovládačom bolo rozšírené API kryptosubsystému jadra FreeBSD, ku ktorému bol pridaný zväzok, ktorý umožňuje použitie algoritmov z knižnice libsodium, ktoré nie sú podporované vo FreeBSD cez štandardné krypto-API. . Počas procesu vývoja bola tiež vykonaná optimalizácia, aby sa rovnomerne vyvážila väzba úloh šifrovania a dešifrovania paketov na jadrá CPU, čo znížilo réžiu pri spracovaní paketov WireGuard.

    Posledný pokus o začlenenie WireGuard do FreeBSD bol urobený v roku 2020, skončil sa však škandálom, v dôsledku čoho bol už pridaný kód odstránený z dôvodu nízkej kvality, nedbalej práce s vyrovnávacími pamäťami, používanie stubov namiesto kontrol, neúplná implementácia protokolu a porušenie GPL licencie. Novú implementáciu spoločne pripravili hlavné vývojové tímy FreeBSD a WireGuard s príspevkami Jasona A. Donenfelda, autora VPN WireGuard, a Johna H. Baldwina, renomovaného vývojára FreeBSD. Úplná revízia zmien bola vykonaná s podporou FreeBSD Foundation pred prijatím nového kódu.

  • Bola implementovaná podpora pre komunikačný protokol Netlink (RFC 3549), ktorý sa v Linuxe používa na organizáciu interakcie jadra s procesmi v užívateľskom priestore. Projekt sa obmedzuje na podporu rodiny operácií NETLINK_ROUTE na správu stavu sieťového subsystému v jadre, čo umožňuje FreeBSD používať linuxovú ip utilitu z balíka iproute2 na správu sieťových rozhraní, nastavenie IP adries, konfiguráciu smerovania a manipuláciu s nexthop. objekty, ktoré uchovávajú stavové údaje používané na prenos paketu do požadovaného cieľa.
  • Všetky spustiteľné súbory základného systému na 64-bitových platformách majú predvolene povolenú randomizáciu rozloženia adresného priestoru (ASLR). Ak chcete selektívne vypnúť ASLR, môžete použiť príkazy „proccontrol -m aslr -s disable“ alebo „elfctl -e +noaslr“.
  • V ipfw sa radixové tabuľky používajú na vyhľadávanie MAC adries, čo vám umožňuje vytvárať tabuľky s MAC adresami a používať ich na filtrovanie prevádzky. Napríklad: 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
  • Moduly jadra dpdk_lpm4 a dpdk_lpm6 boli pridané a sú dostupné na načítanie cez loader.conf s implementáciou algoritmu vyhľadávania trasy DIR-24-8 pre IPv4/IPv6, ktorý vám umožňuje optimalizovať funkcie smerovania pre hostiteľov s veľmi veľkými smerovacími tabuľkami ( pri testoch sa pozoruje zvýšenie rýchlosti o 25 %). Na konfiguráciu modulov je možné použiť štandardný smerovací nástroj (bola pridaná voľba FIB_ALGO).
  • Implementácia súborového systému ZFS bola aktualizovaná na vydanie OpenZFS 2.1.9. Spúšťací skript zfskeys poskytuje automatické načítanie kľúčov uložených v súborovom systéme ZFS. Pridaný nový RC skript zpoolreguid na priradenie GUID k jednému alebo viacerým zpoolom (užitočné napríklad pre prostredia virtualizácie zdieľaných údajov).
  • Hypervízor Bhyve a modul vmm podporujú pripojenie viac ako 15 virtuálnych CPU k hosťovskému systému (regulované cez sysctl hw.vmm.maxcpu). Obslužný program bhyve implementuje emuláciu vstupného zariadenia virtio, pomocou ktorého môžete nahradiť vstupné udalosti klávesnice a myši do hosťujúceho systému.
  • V KTLS, implementácii protokolu TLS bežiaceho na úrovni jadra FreeBSD, bola pridaná podpora hardvérovej akcelerácie TLS 1.3 odľahčením niektorých operácií súvisiacich so spracovaním šifrovaných prichádzajúcich paketov na sieťovú kartu. Predtým bola podobná funkcia dostupná pre TLS 1.1 a TLS 1.2.
  • V štartovacom skripte growfs je pri rozširovaní koreňového súborového systému možné pridať odkladací oddiel, ak takýto oddiel pôvodne chýbal (užitočné napríklad pri inštalácii hotového obrazu systému na SD kartu). Na kontrolu veľkosti swapu bol do rc.conf pridaný nový parameter growfs_swap_size.
  • Spúšťací skript hostid zaisťuje, že sa vygeneruje náhodné UUID, ak súbor /etc/hostid chýba a UUID nemožno získať z hardvéru. Tiež bol pridaný súbor /etc/machine-id s kompaktným znázornením ID hostiteľa (bez pomlčiek).
  • Do rc.conf boli pridané premenné defaultrouter_fibN a ipv6_defaultrouter_fibN, prostredníctvom ktorých môžete pridávať predvolené trasy do iných tabuliek FIB, než je primárna.
  • Do knižnice libmd bola pridaná podpora pre hash SHA-512/224.
  • Knižnica pthread poskytuje podporu pre sémantiku funkcií používaných v Linuxe.
  • Pridaná podpora pre dekódovanie systémových volaní Linuxu do kdump. Pridaná podpora pre sledovanie systémových hovorov v štýle Linux do kdump a sysdecode.
  • Obslužný program killall má teraz možnosť posielať signál procesom viazaným na konkrétny terminál (napríklad „killall -t pts/1“).
  • Pridaný nástroj nproc na zobrazenie počtu výpočtových blokov dostupných pre aktuálny proces.
  • Do pomôcky pciconf bola pridaná podpora pre dekódovanie parametrov ACS (Access Control Services).
  • Do jadra bolo pridané nastavenie SPLIT_KERNEL_DEBUG, ktoré vám umožňuje uložiť informácie o ladení pre jadro a moduly jadra do samostatných súborov.
  • Linux ABI je takmer kompletný s podporou mechanizmu vDSO (virtuálne dynamické zdieľané objekty), ktorý poskytuje obmedzenú množinu systémových volaní dostupných v užívateľskom priestore bez prepínania kontextu. Linuxové ABI na systémoch ARM64 bolo zosúladené s implementáciou pre architektúru AMD64.
  • Vylepšená podpora hardvéru. Pridaná podpora monitorovania výkonu (hwpmc) pre procesory Intel Alder Lake. Ovládač iwlwifi pre bezdrôtové karty Intel bol aktualizovaný s podporou nových čipov a štandardu 802.11ac. Pridaný ovládač rtw88 pre bezdrôtové karty Realtek s rozhraním PCI. Možnosti vrstvy linuxkpi boli rozšírené pre použitie s ovládačmi pre Linux vo FreeBSD.
  • Knižnica OpenSSL bola aktualizovaná na verziu 1.1.1t, LLVM/Сlang na verziu 14.0.5 a SSH server a klient boli aktualizované na OpenSSH 9.2p1 (predchádzajúca verzia používala OpenSSH 8.8p1). Aktualizované sú aj verzie bc 6.2.4, expat 2.5.0, súbor 5.43, menej 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, neviazaný 1.17.1, zlib 1.2.13.

Okrem toho bolo oznámené, že počnúc vetvou FreeBSD 14.0, jednorazové heslá OPIE, ovládače ce a cp, ovládače pre karty ISA, utility mergemaster a minigzip, komponenty ATM v sieťovom grafe (NgATM), proces na pozadí telnetd a Trieda VINUM v geom.

Zdroj: opennet.ru

Pridať komentár