Vydání FreeBSD 13.2 s podporou Netlink a WireGuard

Po 11 měsících vývoje bylo vydáno FreeBSD 13.2. Instalační obrazy jsou generovány pro architektury amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 a riscv64. Kromě toho byla připravena 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ářet snímky systémů souborů UFS a FFS s povoleným protokolováním (soft aktualizace). Také byla přidána podpora pro ukládání výpisů na pozadí (spuštění výpisu s příznakem „-L“) s obsahem připojených souborových systémů UFS, když je povoleno žurnálování. Jednou z funkcí, která není k dispozici při použití protokolování, je provádění kontrol integrity na pozadí pomocí nástroje fsck.
  • Jako hlavní součást byl přijat wg ovladač pracující na úrovni jádra s implementací síťového rozhraní pro VPN WireGuard. Pro použití kryptografických algoritmů vyžadovaných ovladačem bylo rozšířeno API krypto subsystému jádra FreeBSD, ke kterému byla přidána vazba, která umožňuje používat algoritmy z knihovny libsodium, které nejsou podporovány ve FreeBSD prostřednictvím standardního kryptografického API. Během procesu vývoje byla také provedena optimalizace, aby se rovnoměrně vyvážila vazba úloh šifrování a dešifrování paketů na jádra CPU, což snížilo režii při zpracování paketů WireGuard.

    Poslední pokus o začlenění WireGuard do FreeBSD proběhl v roce 2020, skončil však skandálem, v jehož důsledku byl odstraněn již přidaný kód z důvodu nízké kvality, nedbalé práce s buffery, používání pahýlů místo kontrol, nedokončená implementace protokolu a porušení licence GPL. Nová implementace byla společně připravena základními vývojovými týmy FreeBSD a WireGuard s příspěvky Jasona A. Donenfelda, autora VPN WireGuard, a Johna H. Baldwina, renomovaného vývojáře FreeBSD. Před přijetím nového kódu byla provedena úplná revize změn s podporou FreeBSD Foundation.

  • Byla implementována podpora komunikačního protokolu Netlink (RFC 3549), který se v Linuxu používá k organizaci interakce jádra s procesy v uživatelském prostoru. Projekt je omezen na podporu rodiny operací NETLINK_ROUTE pro správu stavu síťového subsystému v jádře, což umožňuje FreeBSD používat linuxovou ip utilitu z balíčku iproute2 ke správě síťových rozhraní, nastavení IP adres, konfiguraci směrování a manipulaci s nexthop. objekty, které ukládají stavová data použitá pro přenos paketu do požadovaného cíle.
  • Všechny spustitelné soubory základního systému na 64bitových platformách mají ve výchozím nastavení povolenou randomizaci rozvržení adresního prostoru (ASLR). Pro selektivní deaktivaci ASLR můžete použít příkazy „proccontrol -m aslr -s disable“ nebo „elfctl -e +noaslr“.
  • ipfw používá tabulky Radix k vyhledávání MAC adres, což vám umožňuje vytvářet tabulky s MAC adresami a používat je k filtrování provozu. Například: ipfw table 1 vytvoření typu 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 moduly jádra dpdk_lpm4 a dpdk_lpm6, které lze načíst přes loader.conf s implementací algoritmu vyhledávání trasy DIR-24-8 pro IPv4/IPv6, který umožňuje optimalizovat funkce směrování pro hostitele s velmi velkými směrovacími tabulkami ( v testech je pozorováno zvýšení rychlosti o 25 %). Ke konfiguraci modulů lze použít standardní obslužný program route (byla přidána volba FIB_ALGO).
  • Implementace souborového systému ZFS byla aktualizována na vydání OpenZFS 2.1.9. Spouštěcí skript zfskeys poskytuje automatické načítání klíčů uložených v systému souborů ZFS. Přidán nový RC skript zpoolreguid pro přiřazení GUID k jednomu nebo více zpoolům (např. užitečné pro prostředí sdílené virtualizace dat).
  • Hypervizor Bhyve a modul vmm podporují připojení více než 15 virtuálních CPU k hostujícímu systému (regulované přes sysctl hw.vmm.maxcpu). Obslužný program bhyve implementuje emulaci vstupního zařízení virtio, pomocí kterého můžete v hostujícím systému nahradit vstupní události klávesnice a myši.
  • V KTLS, implementaci protokolu TLS běžícím na úrovni jádra FreeBSD, byla přidána podpora hardwarové akcelerace TLS 1.3 odlehčením některých operací souvisejících se zpracováním šifrovaných příchozích paketů na síťovou kartu. Dříve byla podobná funkce dostupná pro TLS 1.1 a TLS 1.2.
  • Ve spouštěcím skriptu growfs je možné při rozšiřování kořenového systému souborů přidat odkládací oddíl, pokud takový oddíl původně chyběl (například užitečné při instalaci hotového obrazu systému na SD kartu). Pro kontrolu velikosti swapu byl do rc.conf přidán nový parametr growfs_swap_size.
  • Spouštěcí skript hostid zajišťuje vygenerování náhodného UUID, pokud soubor /etc/hostid chybí a UUID nelze získat z hardwaru. Také přidán soubor /etc/machine-id s kompaktní reprezentací ID hostitele (bez pomlček).
  • Do rc.conf byly přidány proměnné defaultrouter_fibN a ipv6_defaultrouter_fibN, pomocí kterých můžete přidávat výchozí trasy do jiných než primárních tabulek FIB.
  • Do knihovny libmd byla přidána podpora pro hash SHA-512/224.
  • Knihovna pthread poskytuje podporu pro sémantiku funkcí používaných v Linuxu.
  • Do kdump byla přidána podpora pro dekódování systémových volání Linuxu. Do kdump a sysdecode byla přidána podpora trasování syscall ve stylu Linuxu.
  • Obslužný program killall má nyní možnost posílat signál procesům vázaným na konkrétní terminál (například "killall -t pts/1").
  • Přidán nástroj nproc pro zobrazení počtu výpočetních bloků dostupných pro aktuální proces.
  • Do obslužného programu pciconf byla přidána podpora pro dekódování parametrů ACS (Access Control Services).
  • Do jádra bylo přidáno nastavení SPLIT_KERNEL_DEBUG, které umožňuje ukládání ladicích informací pro jádro a moduly jádra do samostatných souborů.
  • Linux ABI je téměř kompletní s podporou pro mechanismus vDSO (virtual dynamic shared objects), který poskytuje omezenou sadu systémových volání dostupných v uživatelském prostoru bez přepínání kontextu. Linuxové ABI na systémech ARM64 bylo uvedeno do souladu s implementací pro architekturu AMD64.
  • Vylepšená podpora hardwaru. Přidána podpora monitorování výkonu (hwpmc) pro procesory Intel Alder Lake. Aktualizovaný ovladač iwlwifi pro bezdrátové karty Intel s podporou nových čipů a standardu 802.11ac. Přidán ovladač rtw88 pro bezdrátové karty Realtek PCI. Rozšířená vrstva linuxkpi pro použití s ​​ovladači FreeBSD Linux.
  • Knihovna OpenSSL byla aktualizována na verzi 1.1.1t, LLVM/Сlang na verzi 14.0.5 a SSH server a klient byly aktualizovány na OpenSSH 9.2p1 (předchozí verze používala OpenSSH 8.8p1). Aktualizovány jsou také verze bc 6.2.4, expat 2.5.0, soubor 5.43, méně 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, nevázaný 1.17.1, zlib 1.2.13.

Kromě toho bylo oznámeno, že počínaje větví FreeBSD 14.0 budou jednorázová hesla OPIE, ovladače ce a cp, ovladače pro karty ISA, nástroje mergemaster a minigzip, komponenty ATM v netgraphu (NgATM), proces na pozadí telnetd a Třída VINUM v geom.

Zdroj: opennet.ru

Přidat komentář