FreeBSD 13.2-uitgave met Netlink- en WireGuard-ondersteuning

Na 11 maanden ontwikkeling is FreeBSD 13.2 uitgebracht. Er worden installatie-images gegenereerd voor de architecturen amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 en riscv64. Daarnaast zijn er builds voorbereid voor virtualisatiesystemen (QCOW2, VHD, VMDK, raw) en Amazon EC2, Google Compute Engine en Vagrant cloudomgevingen.

Belangrijkste wijzigingen:

  • De mogelijkheid geïmplementeerd om snapshots te maken van UFS- en FFS-bestandssystemen met logboekregistratie ingeschakeld (zachte updates). Ook ondersteuning toegevoegd voor het opslaan van dumps op de achtergrond (dump uitvoeren met de vlag "-L") met de inhoud van aangekoppelde UFS-bestandssystemen met journaling ingeschakeld. Van de functies die niet beschikbaar zijn bij het gebruik van journaling, is er een integriteitscontrole op de achtergrond met behulp van het hulpprogramma fsck.
  • De wg-driver die op kernelniveau werkt met de implementatie van de netwerkinterface voor VPN WireGuard is als hoofdonderdeel overgenomen. Om de door het stuurprogramma vereiste cryptografische algoritmen te gebruiken, werd de FreeBSD-kernelcrypto-subsysteem-API uitgebreid, waaraan een binding werd toegevoegd die het gebruik van algoritmen uit de libsodium-bibliotheek mogelijk maakt die niet in FreeBSD worden ondersteund via de standaard crypto-API. Tijdens het ontwikkelingsproces werden ook optimalisaties uitgevoerd om de toewijzing van encryptie- en decryptietaken aan CPU-kernen gelijkmatig te balanceren, waardoor de overhead van het verwerken van WireGuard-pakketten werd verminderd.

    De laatste poging om WireGuard in FreeBSD op te nemen werd in 2020 gedaan, maar eindigde in een schandaal, waardoor reeds toegevoegde code werd verwijderd vanwege lage kwaliteit, onzorgvuldige bufferbehandeling, gebruik van stubs in plaats van controles, onvolledige implementatie van het protocol en schending van de GPL-licentie. Een nieuwe implementatie die gezamenlijk is voorbereid door de kernontwikkelingsteams van FreeBSD en WireGuard met input van Jason A. Donenfeld, auteur van VPN WireGuard, en John H. Baldwin, een bekende FreeBSD-ontwikkelaar. Een volledige beoordeling van de wijzigingen werd gedaan met de steun van de FreeBSD Foundation voordat de nieuwe code werd geaccepteerd.

  • Ondersteuning geïmplementeerd voor het Netlink-communicatieprotocol (RFC 3549), dat in Linux wordt gebruikt om de interactie tussen de kernel en processen in de gebruikersruimte te organiseren. Het project is beperkt tot het ondersteunen van de NETLINK_ROUTE-familie van bewerkingen voor het beheren van de status van het netwerksubsysteem in de kernel, waardoor FreeBSD het ip Linux-hulpprogramma uit het iproute2-pakket kan gebruiken om netwerkinterfaces te beheren, IP-adressen in te stellen, routering te configureren en nexthop-objecten die statusgegevens opslaan die worden gebruikt om het pakket naar de gewenste bestemming door te sturen.
  • Voor alle uitvoerbare bestanden van het basissysteem op 64-bits platforms is Address Space Layout Randomization (ASLR) standaard ingeschakeld. Om ASLR selectief uit te schakelen, kunt u de opdrachten "proccontrol -ma aslr -s Disable" of "elfctl -e +noaslr" gebruiken.
  • ipfw gebruikt Radix-tabellen om MAC-adressen op te zoeken, waardoor u tabellen met MAC-adressen kunt maken en deze kunt gebruiken om verkeer te filteren. Bijvoorbeeld: 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 toevoegen weigeren opzoeken dst-mac 1
  • Toegevoegd en beschikbaar voor laden via loader.conf zijn de kernelmodules dpdk_lpm4 en dpdk_lpm6 met de implementatie van het routezoekalgoritme DIR-24-8 voor IPv4/IPv6, waarmee u routeringsfuncties kunt optimaliseren voor hosts met zeer grote routeringstabellen (tests laten een snelheidstoename zien van 25 %). Het standaard routehulpprogramma kan worden gebruikt om modules te configureren (de FIB_ALGO-optie is toegevoegd).
  • De implementatie van het ZFS-bestandssysteem is bijgewerkt naar de release van OpenZFS 2.1.9. Het zfskeys-opstartscript zorgt voor het automatisch laden van sleutels die zijn opgeslagen in het ZFS-bestandssysteem. Een nieuw RC-script zpoolreguid toegevoegd om een ​​GUID toe te wijzen aan een of meer zpools (handig voor bijvoorbeeld gedeelde datavirtualisatie-omgevingen).
  • De Bhyve-hypervisor en de vmm-module ondersteunen het koppelen van meer dan 15 virtuele CPU's aan het gastsysteem (instelbaar via sysctl hw.vmm.maxcpu). Het bhyve-hulpprogramma implementeert een emulatie van het virtio-invoerapparaat, waarmee u toetsenbord- en muisinvoergebeurtenissen in het gastsysteem kunt vervangen.
  • KTLS, een implementatie van het TLS-protocol dat draait op FreeBSD-kernelniveau, heeft ondersteuning toegevoegd voor TLS 1.3 hardwareversnelling door een aantal van de bewerkingen die verband houden met het verwerken van gecodeerde binnenkomende pakketten op de schouders van de netwerkkaart over te dragen. Voorheen was deze functie beschikbaar voor TLS 1.1 en TLS 1.2.
  • In het growfs startscript wordt er bij het uitbreiden van de root FS voor gezorgd dat een swappartitie wordt toegevoegd als zo'n partitie oorspronkelijk niet aanwezig was (het is bijvoorbeeld handig bij het installeren van een kant-en-klaar systeemimage op een SD-kaart). Een nieuwe optie, growfs_swap_size, is toegevoegd aan rc.conf om de swapgrootte te beheren.
  • Het hostid-opstartscript zorgt ervoor dat er een willekeurige UUID wordt gegenereerd voor het geval het bestand /etc/hostid ontbreekt en de UUID niet van de hardware kan worden verkregen. Ook toegevoegd is het bestand /etc/machine-id met een compacte weergave van de host-ID (geen streepjes).
  • Variabelen defaultrouter_fibN en ipv6_defaultrouter_fibN zijn toegevoegd aan rc.conf, waarmee u standaardroutes kunt toevoegen aan andere FIB-tabellen dan de primaire.
  • Ondersteuning voor SHA-512/224-hashes is toegevoegd aan de libmd-bibliotheek.
  • De pthread-bibliotheek implementeert ondersteuning voor de semantiek van functies die in Linux worden gebruikt.
  • Ondersteuning voor het decoderen van Linux-systeemaanroepen is toegevoegd aan kdump. Ondersteuning voor syscall-tracering in Linux-stijl is toegevoegd aan kdump en sysdecode.
  • Het killall-hulpprogramma heeft nu de mogelijkheid om een ​​signaal te sturen naar processen die aan een specifieke terminal zijn gebonden (bijvoorbeeld "killall -t pts/1").
  • Nproc-hulpprogramma toegevoegd om het aantal rekeneenheden weer te geven dat beschikbaar is voor het huidige proces.
  • Ondersteuning voor het decoderen van ACS-parameters (Access Control Services) is toegevoegd aan het pciconf-hulpprogramma.
  • De instelling SPLIT_KERNEL_DEBUG is aan de kernel toegevoegd, waardoor foutopsporingsinformatie voor de kernel en kernelmodules in afzonderlijke bestanden kan worden opgeslagen.
  • De Linux ABI is bijna compleet met ondersteuning voor het vDSO-mechanisme (Virtual Dynamic Shared Objects), dat een beperkte set systeemaanroepen biedt die beschikbaar zijn in de gebruikersruimte zonder contextwisseling. De Linux ABI op ARM64-systemen is op één lijn gebracht met de implementatie voor de AMD64-architectuur.
  • Verbeterde hardwareondersteuning. Ondersteuning voor prestatiemonitoring (hwpmc) toegevoegd voor Intel Alder Lake CPU's. Bijgewerkt iwlwifi-stuurprogramma voor draadloze Intel-kaarten met ondersteuning voor nieuwe chips en 802.11ac-standaard. Rtw88-stuurprogramma toegevoegd voor Realtek PCI draadloze kaarten. De linuxkpi-laag uitgebreid voor gebruik met FreeBSD Linux-stuurprogramma's.
  • De OpenSSL-bibliotheek is bijgewerkt naar versie 1.1.1t, LLVM/Сlang is bijgewerkt naar versie 14.0.5 en de SSH-server en -client zijn bijgewerkt naar OpenSSH 9.2p1 (de vorige versie gebruikte OpenSSH 8.8p1). Ook bijgewerkt zijn bc 6.2.4, expat 2.5.0, file 5.43, minus 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13.

Bovendien is het sinds de FreeBSD 14.0-branch verouderd en verwijderd voor OPIE eenmalige wachtwoorden, ce- en cp-stuurprogramma's, ISA-kaartstuurprogramma's, mergemaster- en minigzip-hulpprogramma's, ATM-componenten in netgraph (NgATM), het telnetd-achtergrondproces en het VINUM klasse in geom.

Bron: opennet.ru

Voeg een reactie