FreeBSD 13.2 kiadás Netlink és WireGuard támogatással

11 hónapos fejlesztés után megjelent a FreeBSD 13.2. A telepítési lemezképek az amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 és riscv64 architektúrákhoz jönnek létre. Emellett összeállításokat készítettek virtualizációs rendszerekhez (QCOW2, VHD, VMDK, raw) és felhőkörnyezetekhez: Amazon EC2, Google Compute Engine és Vagrant.

Főbb változások:

  • Megvalósult az UFS és FFS fájlrendszerek pillanatképeinek létrehozása a naplózás engedélyezésével (soft updates). Hozzáadott támogatás a kiíratások háttérben történő mentéséhez (kiírás futtatása „-L” jelzővel) a csatlakoztatott UFS fájlrendszerek tartalmával, ha a naplózás engedélyezve van. A naplózás során nem elérhető szolgáltatások egyike az integritás-ellenőrzések háttérben történő végrehajtása az fsck segédprogrammal.
  • Az alapkompozíció tartalmaz egy kernel szinten működő wg illesztőprogramot a VPN WireGuard hálózati interfészének megvalósításával. A meghajtó által megkívánt kriptográfiai algoritmusok használatához a FreeBSD kernel titkosítási alrendszer API-ját kibővítettük, amelyhez egy kábelköteg került, amely lehetővé teszi a FreeBSD-ben nem támogatott algoritmusok használatát a libsodium könyvtárból a szabványos crypto-API-n keresztül. . A fejlesztési folyamat során optimalizálásra is sor került, hogy egyenletesen egyensúlyba kerüljön a csomagtitkosítási és visszafejtési feladatok CPU magokhoz kötése, ami csökkentette a WireGuard csomagok feldolgozásának többletköltségét.

    A WireGuard FreeBSD-be való beépítésére utoljára 2020-ban próbálkoztak, de botrányba végződött, aminek következtében a már hozzáadott kódot eltávolították az alacsony minőség, a pufferekkel való gondatlan munka, a csonkok használata ellenőrzések helyett, a hiányos implementáció miatt. a protokoll megsértése és a GPL licenc megsértése. Az új implementációt a FreeBSD és a WireGuard fő fejlesztőcsapatai közösen készítették elő Jason A. Donenfeld, a VPN WireGuard szerzője és John H. Baldwin, a neves FreeBSD fejlesztő közreműködésével. Az új kód elfogadása előtt a FreeBSD Foundation támogatásával teljes körűen áttekintették a változtatásokat.

  • Megvalósult a Netlink kommunikációs protokoll (RFC 3549) támogatása, amelyet Linuxban használnak a kernel és a felhasználói térben lévő folyamatok interakciójának megszervezésére. A projekt a NETLINK_ROUTE műveletcsalád támogatására korlátozódik a kernelben lévő hálózati alrendszer állapotának kezelésére, amely lehetővé teszi a FreeBSD számára, hogy az iproute2 csomagból származó Linux ip segédprogramot használja hálózati interfészek kezelésére, IP-címek beállítására, útválasztás konfigurálására és a nexthop manipulálására. objektumok, amelyek állapotadatokat tárolnak a csomagnak a kívánt célhoz történő továbbításához.
  • A 64 bites platformon található összes alaprendszer futtatható fájlja alapértelmezés szerint engedélyezve van az Address Space Layout Randomization (ASLR) funkcióval. Az ASLR szelektív letiltásához használhatja a „proccontrol -m aslr -s disable” vagy az „elfctl -e +noaslr” parancsokat.
  • Az ipfw-ben radix táblákat használnak a MAC-címek keresésére, ami lehetővé teszi MAC-címekkel táblák létrehozását és a forgalom szűrésére való felhasználását. Például: ipfw tábla 1 létrehozás típusa mac ipfw tábla 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
  • A dpdk_lpm4 és dpdk_lpm6 kernelmodulok hozzáadásra kerültek, és a loader.conf-on keresztül tölthetők be a DIR-24-8 IPv4/IPv6 útvonalkereső algoritmus megvalósításával, amely lehetővé teszi az útválasztási funkciók optimalizálását nagyon nagy útválasztási táblákkal ( tesztekben 25%-os sebességnövekedés figyelhető meg. A modulok konfigurálásához a szabványos útvonal-segédprogram használható (a FIB_ALGO opció hozzáadásra került).
  • A ZFS fájlrendszer megvalósítása az OpenZFS 2.1.9 kiadásra frissült. A zfskeys indítószkript biztosítja a ZFS fájlrendszerben tárolt kulcsok automatikus betöltését. Új RC script zpoolreguid hozzáadva egy vagy több zpoolhoz GUID hozzárendeléséhez (pl. hasznos megosztott adatvirtualizációs környezetekben).
  • A Bhyve hypervisor és a vmm modul több mint 15 virtuális CPU csatlakoztatását támogatja a vendégrendszerhez (a sysctl hw.vmm.maxcpu által szabályozott). A bhyve segédprogram a virtio-beviteli eszköz emulációját valósítja meg, amellyel a billentyűzet és az egér beviteli eseményeit helyettesítheti a vendégrendszerben.
  • A KTLS-ben, a FreeBSD kernelszinten futó TLS protokoll megvalósításában a TLS 1.3 hardveres gyorsításának támogatása hozzáadásra került oly módon, hogy a titkosított bejövő csomagok feldolgozásával kapcsolatos műveletek egy részét a hálózati kártyára töltik. Korábban a TLS 1.1 és a TLS 1.2 esetében is elérhető volt egy hasonló funkció.
  • A growfs indító szkriptjében a gyökér fájlrendszer bővítésekor lehetőség van swap partíció hozzáadására, ha az eredetileg hiányzott (például hasznos, ha kész rendszerképet telepítünk SD-kártyára). A swap méretének szabályozására egy új, growfs_swap_size paraméter került hozzáadásra az rc.conf fájlhoz.
  • A hostid indítószkript biztosítja, hogy véletlenszerű UUID generáljon, ha az /etc/hostid fájl hiányzik, és az UUID nem szerezhető be a hardverből. Ezenkívül hozzáadott egy /etc/machine-id fájlt a gazdagép azonosítójának kompakt ábrázolásával (kötőjelek nélkül).
  • A defaultrouter_fibN és ipv6_defaultrouter_fibN változók hozzáadásra kerültek az rc.conf fájlhoz, amelyen keresztül az elsődlegestől eltérő alapértelmezett útvonalakat adhat hozzá a FIB táblákhoz.
  • Az SHA-512/224 hashek támogatása hozzáadásra került a libmd könyvtárhoz.
  • A pthread könyvtár támogatja a Linuxban használt függvények szemantikáját.
  • Támogatás hozzáadva a kdump Linux rendszerhívásainak dekódolásához. Támogatás hozzáadva a Linux-stílusú rendszerhívás-követéshez a kdump és a sysdecode számára.
  • A killall segédprogram most már képes jelet küldeni egy adott terminálhoz kötött folyamatokhoz (például „killall -t pts/1”).
  • Az nproc segédprogram hozzáadva az aktuális folyamat számára elérhető számítási blokkok számának megjelenítéséhez.
  • Az ACS (Access Control Services) paraméterek dekódolásának támogatása hozzáadásra került a pciconf segédprogramhoz.
  • A SPLIT_KERNEL_DEBUG beállítás hozzáadásra került a kernelhez, amely lehetővé teszi a rendszermag és a kernelmodulok hibakeresési információinak külön fájlokban történő mentését.
  • A Linux ABI szinte teljes mértékben támogatja a vDSO (virtuális dinamikus megosztott objektumok) mechanizmust, amely korlátozott számú rendszerhívást biztosít a felhasználói térben kontextusváltás nélkül. Az ARM64 rendszereken futó Linux ABI-t az AMD64 architektúra megvalósításával egyenlővé tették.
  • Továbbfejlesztett hardver támogatás. Teljesítményfigyelő (hwpmc) támogatás hozzáadva az Intel Alder Lake CPU-khoz. Az Intel vezeték nélküli kártyák iwlwifi illesztőprogramja az új chipek és a 802.11ac szabvány támogatásával frissült. Hozzáadott rtw88 illesztőprogram a Realtek vezeték nélküli PCI interfésszel rendelkező kártyákhoz. A linuxkpi réteg képességei kibővültek a FreeBSD Linux-illesztőprogramjaival való használatra.
  • Az OpenSSL-könyvtár az 1.1.1t-re, az LLVM/Сlang a 14.0.5-ös verzióra, az SSH-kiszolgáló és a kliens pedig az OpenSSH 9.2p1-re frissült (az előző verzió OpenSSH 8.8p1-et használt). A bc 6.2.4, expat 2.5.0, fájl 5.43, kevesebb 608, libarchívum 3.6.2, sendmail 8.17.1, sqlite 3.40.1, kötetlen 1.17.1, zlib 1.2.13 verziók is frissültek.

Ezenkívül bejelentették, hogy a FreeBSD 14.0 ágától kezdve az egyszeri jelszavak OPIE, ce és cp illesztőprogramok, ISA kártyák illesztőprogramjai, mergemaster és minigzip segédprogramok, ATM összetevők a netgraphban (NgATM), a telnetd háttérfolyamat és a VINUM osztály geom.

Forrás: opennet.ru

Hozzászólás