Versión de FreeBSD 13.2 con soporte para Netlink e WireGuard

Despois de 11 meses de desenvolvemento, FreeBSD 13.2 foi lanzado. Xéranse imaxes de instalación para as arquitecturas amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 e riscv64. Ademais, preparáronse compilacións para sistemas de virtualización (QCOW2, VHD, VMDK, raw) e Amazon EC2, Google Compute Engine e entornos de nube Vagrant.

Cambios clave:

  • Implementouse a capacidade de crear instantáneas dos sistemas de ficheiros UFS e FFS co rexistro activado (actualizacións suaves). Tamén se engadiu compatibilidade para gardar volcados en segundo plano (execución de volcado coa marca "-L") co contido dos sistemas de ficheiros UFS montados co diario habilitado. Das funcións que non están dispoñibles ao usar o diario, hai unha comprobación de integridade en segundo plano mediante a utilidade fsck.
  • O controlador wg que traballa a nivel do núcleo coa implementación da interface de rede para VPN WireGuard adoptouse como parte principal. Para utilizar os algoritmos criptográficos requiridos polo controlador, ampliouse a API do subsistema criptográfico do núcleo de FreeBSD, á que se engadiu unha ligazón que permite utilizar algoritmos da biblioteca libsodium que non son compatibles en FreeBSD a través da API de cifrado estándar. Durante o proceso de desenvolvemento, tamén se realizaron optimizacións para equilibrar uniformemente a asignación de tarefas de cifrado e descifrado aos núcleos da CPU, o que reduciu a sobrecarga de procesamento de paquetes WireGuard.

    O último intento de incluír WireGuard en FreeBSD realizouse en 2020, pero rematou nun escándalo, como resultado do cal se eliminou o código xa engadido debido á baixa calidade, o manexo descoidado do búfer, o uso de talóns en lugar de verificacións, a implementación incompleta do protocolo. e violación da licenza GPL. Unha nova implementación, preparada conxuntamente polos equipos principais de desenvolvemento de FreeBSD e WireGuard, coa aportación de Jason A. Donenfeld, autor de VPN WireGuard, e John H. Baldwin, recoñecido desenvolvedor de FreeBSD. Realizouse unha revisión completa dos cambios co apoio da Fundación FreeBSD antes de que o novo código fose aceptado.

  • Implementouse soporte para o protocolo de comunicación Netlink (RFC 3549), que se usa en Linux para organizar a interacción entre o núcleo e os procesos no espazo do usuario. O proxecto limítase a admitir a familia de operacións NETLINK_ROUTE para xestionar o estado do subsistema de rede no núcleo, o que permite que FreeBSD utilice a utilidade ip Linux do paquete iproute2 para xestionar interfaces de rede, establecer enderezos IP, configurar o enrutamento e manipular Obxectos nexthop que almacenan datos de estado utilizados para reenviar o paquete ao destino desexado.
  • Todos os executables do sistema base en plataformas de 64 bits teñen o Address Space Layout Randomization (ASLR) activado por defecto. Para desactivar selectivamente ASLR, pode usar os comandos "proccontrol -ma aslr -s disable" ou "elfctl -e +noaslr".
  • ipfw usa táboas Radix para buscar enderezos MAC, o que lle permite crear táboas con enderezos MAC e usalas para filtrar o tráfico. Por exemplo: 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
  • Engadíronse e dispoñibles para cargar a través de loader.conf os módulos do núcleo dpdk_lpm4 e dpdk_lpm6 coa implementación do algoritmo de busca de rutas DIR-24-8 para IPv4/IPv6, que permite optimizar as funcións de enrutamento para hosts con táboas de enrutamento moi grandes (probas mostran un aumento da velocidade do 25 %). A utilidade de ruta estándar pódese usar para configurar módulos (engadiuse a opción FIB_ALGO).
  • A implementación do sistema de ficheiros ZFS actualizouse ao lanzamento de OpenZFS 2.1.9. O script de inicio de zfskeys proporciona a carga automática das claves almacenadas no sistema de ficheiros ZFS. Engadiuse un novo script RC zpoolreguid para asignar un GUID a un ou máis zpools (útil para entornos de virtualización de datos compartidos, por exemplo).
  • O hipervisor Bhyve e o módulo vmm admiten a conexión de máis de 15 CPU virtuais ao sistema invitado (axustable mediante sysctl hw.vmm.maxcpu). A utilidade bhyve implementa unha emulación do dispositivo de entrada virtio, co que pode substituír os eventos de entrada de teclado e rato no sistema convidado.
  • KTLS, unha implementación do protocolo TLS que se executa no nivel do núcleo de FreeBSD, engade soporte para a aceleración de hardware TLS 1.3 descargando algunhas das operacións asociadas ao procesamento de paquetes de entrada cifrados nos ombreiros da tarxeta de rede. Anteriormente, esta función estaba dispoñible para TLS 1.1 e TLS 1.2.
  • No script de inicio de growfs, ao expandir o FS raíz, asegúrese de que se engade unha partición de intercambio se tal partición non estaba presente orixinalmente (por exemplo, é útil cando se instala unha imaxe de sistema preparada nunha tarxeta SD). Engadiuse a rc.conf unha nova opción, growfs_swap_size para controlar o tamaño do intercambio.
  • O script de inicio de hostid garante que se xere un UUID aleatorio no caso de que falte o ficheiro /etc/hostid e non se poida obter o UUID do hardware. Tamén se engade o ficheiro /etc/machine-id cunha representación compacta do identificador do host (sen guións).
  • Engadíronse a rc.conf as variables defaultrouter_fibN e ipv6_defaultrouter_fibN, a través do cal pode engadir rutas predeterminadas a táboas FIB distintas á primaria.
  • Engadiuse soporte para hash SHA-512/224 á biblioteca libmd.
  • A biblioteca pthread implementa soporte para a semántica das funcións usadas en Linux.
  • Engadiuse a compatibilidade para decodificar chamadas ao sistema Linux a kdump. Engadiuse soporte para o rastrexo syscall ao estilo de Linux a kdump e sysdecode.
  • A utilidade killall agora ten a capacidade de enviar un sinal a procesos vinculados a un terminal específico (por exemplo, "killall -t pts/1").
  • Engadida a utilidade nproc para mostrar o número de unidades computacionais dispoñibles para o proceso actual.
  • Engadiuse soporte para decodificar os parámetros ACS (Servizos de control de acceso) á utilidade pcconf.
  • A configuración SPLIT_KERNEL_DEBUG engadiuse ao núcleo, o que permite gardar a información de depuración do núcleo e dos módulos do núcleo en ficheiros separados.
  • O ABI de Linux está case completo con soporte para o mecanismo vDSO (obxectos dinámicos compartidos virtuais), que proporciona un conxunto limitado de chamadas ao sistema dispoñibles no espazo do usuario sen cambiar de contexto. O ABI de Linux nos sistemas ARM64 foi igualado coa implementación da arquitectura AMD64.
  • Soporte de hardware mellorado. Engadido soporte de monitorización de rendemento (hwpmc) para CPU Intel Alder Lake. Controlador iwlwifi actualizado para tarxetas sen fíos Intel con soporte para novos chips e estándar 802.11ac. Engadiuse o controlador rtw88 para as tarxetas sen fíos Realtek PCI. Estendeuse a capa linuxkpi para usar con controladores FreeBSD Linux.
  • A biblioteca OpenSSL actualizouse á versión 1.1.1t, LLVM/Сlang actualizouse á versión 14.0.5 e o servidor SSH e o cliente actualizáronse a OpenSSH 9.2p1 (a versión anterior usaba OpenSSH 8.8p1). Tamén se actualizan bc 6.2.4, expat 2.5.0, ficheiro 5.43, menos 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13.

Ademais, quedou en desuso e eliminouse desde a rama FreeBSD 14.0 para contrasinais únicos OPIE, controladores ce e cp, controladores de tarxetas ISA, utilidades mergemaster e minigzip, compoñentes ATM en netgraph (NgATM), o proceso de fondo telnetd e VINUM. clase de geom.

Fonte: opennet.ru

Engadir un comentario