Vydání FreeBSD 13.2 s podporou Netlink a WireGuard.

Po 11 měsících vývoje byl zveřejněn releas FreeBSD 13.2. Instalace byly vytvořeny pro architektury amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 a riscv64. Dále byly připraveny sestavení pro virtualizační systémy (QCOW2, VHD, VMDK, raw) a cloudová prostředí Amazon EC2, Google Compute Engine a Vagrant.

Klíčové změny:

  • Byla implementována možnost vytváření snapshotů souborových systémů UFS a FFS, na kterých je povoleno žurnálování (soft updates). Také byla přidána podpora pro pozadí ukládání dumpů (spuštění dump s příznakem "-L") s obsahem připojených souborových systémů UFS při povoleném žurnálování. Z možností, které nejsou dostupné při použití žurnálování, zůstává pozadí provádění kontroly integrity pomocí nástroje fsck.
  • Do hlavního jádra byl přijat ovladač wg s implementací síťového rozhraní pro VPN WireGuard. Pro použití nezbytných kryptografických algoritmů pro ovladač bylo rozšířeno API kryptosystému jádra FreeBSD, do kterého byla přidána obálka umožňující používat prostřednictvím standardního kryptografického API algoritmy, které nejsou podporovány ve FreeBSD, z knihovny libsodium. Během vývoje byla také provedena optimalizace pro rovnoměrné vyvážení přidělování úloh šifrování a dešifrování paketů na CPU jádra, což vedlo ke snížení režijních nákladů při zpracování paketů WireGuard.

    Minulý pokus o zahrnutí WireGuard do FreeBSD byl učiněn v roce 2020, ale skončil skandálem, během kterého byl již přidaný kód odstraněn kvůli nízké kvalitě, nedbalé práci s buffery, používání zástupných znaků místo kontrol, neúplné implementaci protokolu a porušení licence GPL. Nová implementace byla společně připravena hlavními vývojovými týmy FreeBSD a WireGuard za účasti Jasona Donenfelda, autora VPN WireGuard, a Johna Boldwina, známého vývojáře FreeBSD. Před přijetím nového kódu bylo s podporou organizace FreeBSD Foundation provedeno kompletní přezkoumání změn.

  • Byla implementována podpora komunikačního protokolu Netlink (RFC 3549), používaného v systému Linux pro organizaci interakce jádra s procesy v uživatelském prostoru. Projekt se omezuje na podporu rodiny operací NETLINK_ROUTE pro správu stavu síťového subsystému v jádře, což umožňuje používat ve FreeBSD Linuxovou utilitu ip z balíčku iproute2 pro správu síťových rozhraní, nastavení IP adress, konfiguraci směrování a manipulaci s objekty nexthop, které uchovávají data o stavu používaném k přenosu paketu do požadovaného cíle.
  • Pro všechny spustitelné soubory základního systému na 64bitových platformách je ve výchozím nastavení aktivována randomizace adresního prostoru (ASLR, Address Space Layout Randomization). Pro selektivní vypnutí ASLR lze použít příkazy „proccontrol -m aslr -s disable“ nebo „elfctl -e +noaslr“.
  • V ipfw jsou pro vyhledávání MAC adres zapojeny základní tabulky (Radix table), což umožňuje vytvářet tabulky s MAC adresami a používat je pro filtrování provozu. Napří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
  • Byly přidány a jsou k dispozici ke stažení přes loader.conf moduly jádra dpdk_lpm4 a dpdk_lpm6 s implementací algoritmu vyhledávání tras DIR-24-8 pro IPv4/IPv6, který umožňuje optimalizaci směrovacích funkcí pro hostitele s velmi velkými tabulkami směrování (v testech bylo pozorováno zvýšení rychlosti o 25 %). Pro nastavení modulů lze použít standardní utilitu route (byla přidána možnost FIB_ALGO).
  • Implementace souborového systému ZFS byla aktualizována na vydání OpenZFS 2.1.9. Ve startovním skriptu zfskeys je zajištěno automatické načítání klíčů uložených ve FS ZFS. Byl přidán nový RC skript zpoolreguid pro přiřazení identifikátoru GUID jednomu nebo více zpool (například užitečné pro virtualizační prostředí se sdílenými daty).
  • V hypervizoru Bhyve a modulu vmm byla implementována podpora připojení k hostitelskému systému více než 15 virtuálních CPU (regulováno přes sysctl hw.vmm.maxcpu). V utilitě bhyve byla implementována emulace zařízení virtio-input, pomocí kterého lze přenášet události vstupu z klávesnice a myši do hostitelského systému.
  • V KTLS, implementaci protokolu TLS, který pracuje na úrovni jádra FreeBSD, byla přidána podpora hardwarového zrychlení TLS 1.3 prostřednictvím převodu některých operací spojených se zpracováním šifrovaných příchozích paketů na síťovou kartu. Dříve byla taková možnost dostupná pro TLS 1.1 a TLS 1.2.
  • Ve startovacím skriptu growfs, při rozšiřování kořenového systému souborů, byla zajištěna možnost přidání swapovacího oddílu, pokud takový oddíl původně chyběl (například užitečné při instalaci hotového systémového obrazu na SD kartu). Pro správu velikosti swapu byl do rc.conf přidán nový parametr growfs_swap_size.
  • Ve startovacím skriptu hostid byla zajištěna generace náhodného UUID v případě, že chybí soubor /etc/hostid a není možné získat UUID od hardwaru. Také byl přidán soubor /etc/machine-id s kompaktním zobrazením identifikátoru hostitele (bez pomlček).
  • Do rc.conf byly přidány proměnné defaultrouter_fibN a ipv6_defaultrouter_fibN, prostřednictvím kterých lze přidat výchozí trasy do FIB tabulek, které se liší od primární.
  • Do knihovny libmd byla přidána podpora hashů SHA-512/224.
  • V knihovně pthread byla implementována podpora semantiky funkcí používaných v Linuxu.
  • V kdump byla přidána podpora dekódování systémových volání Linuxu. V kdump a sysdecode byla přidána podpora sledování systémových volání ve stylu Linuxu.
  • V utilitě killall se objevila možnost posílat signál procesům připojeným k určitému terminálu (například „killall -t pts/1“).
  • Byla přidána utilita nproc pro zobrazení počtu dostupných výpočetních jednotek aktuálnímu procesu.
  • Do utility pciconf byla přidána podpora dekódování parametrů ACS (Access Control Services).
  • Do jádra byla přidána nastavení SPLIT_KERNEL_DEBUG, které umožňuje ukládat ladicí informace pro jádro a moduly jádra do samostatných souborů.
  • V ABI linux byla téměř dokončena implementace podpory mechanismu vDSO (virtuální dynamické sdílené objekty), který poskytuje omezenou sadu systémových volání dostupných v uživatelském prostoru bez přepínání kontextu. ABI linux na systémech ARM64 byl přiveden do paritního stavu s implementací pro architekturu AMD64.
  • Byla vylepšena podpora hardwaru. Byla přidána podpora sledování výkonu (hwpmc) pro procesory Intel Alder Lake. Ovladač iwlwifi pro bezdrátové karty Intel byl aktualizován tak, aby podporoval nové čipy a standard 802.11ac. Byl přidán ovladač rtw88 pro bezdrátové karty Realtek s rozhraním PCI. Možnosti vrstvy linuxkpi byly rozšířeny pro použití s ovladači Linux ve FreeBSD.
  • Knihovna OpenSSL byla aktualizována na verzi 1.1.1t, LLVM/Clang na verzi 14.0.5 a SSH server a klient byly aktualizovány na OpenSSH 9.2p1 (v předchozí verzi byl použit OpenSSH 8.8p1). Také byly aktualizovány verze bc 6.2.4, expat 2.5.0, file 5.43, less 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13.

Bylo navíc oznámeno převedení do kategorie zastaralých a odstranění od větve FreeBSD 14.0 jednorázových hesel OPIE, ovladačů ce a cp, ovladačů pro karty s rozhraním ISA, utilit mergemaster a minigzip, komponent ATM v netgraph (NgATM), běhového procesu telnetd a třídy VINUM v geom.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster