LINUXTALKS.CO

Релиз FreeBSD 13.2 с поддержкой Netlink и WireGuard

 

L


0

1

После 11 месяцев разработки опубликован релиз FreeBSD 13.2. Установочные образы сформированы для архитектур amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 и riscv64. Дополнительно подготовлены сборки для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Vagrant.

Ключевые изменения:

  • Реализована возможность создания снапшотов файловых систем UFS и FFS, на которых включено журналирование (soft updates). Также добавлена поддержка фонового сохранения дампов (запуск dump с флагом "-L") с содержимым примонтированных файловых систем UFS при включённом журналировании. Из возможностей, которые недоступны при использовании журналирования, остаётся фоновое выполнение проверки целостности при помощи утилиты fsck.

  • В основной состав принят работающий на уровне ядра драйвер wg с реализацией сетевого интерфейса для VPN WireGuard. Для использования необходимых драйверу криптографических алгоритмов было произведено расширение API криптоподсистемы ядра FreeBSD, в который была добавлена обвязка, позволяющая использовать через стандартный крипто-API не поддерживаемые во FreeBSD алгоритмы из библиотеки libsodium. В процессе разработки также была проведена оптимизация для равномерной балансировки привязки задач шифрования и расшифровки пакетов к ядрам CPU, что позволило снизить накладные расходы при обработке пакетов WireGuard.

  • Реализована поддержка коммуникационного протокола Netlink (RFC 3549), применяемого в Linux для организации взаимодействия ядра с процессами в пространстве пользователя. Проект ограничивается поддержкой семейства операций NETLINK_ROUTE для управления состоянием сетевой подсистемы в ядре, что позволяет использовать во FreeBSD Linux-утилиту ip из пакета iproute2 для управления сетевыми интерфейсами, установки IP-адресов, настройки маршрутизации и манипуляции объектами nexthop, хранящими данные о состоянии, используемом для передачи пакета в желаемую точку назначения.

  • Для всех исполняемых файлов базовой системы на 64-разрядных платформах включена по умолчанию рандомизация адресного пространства (ASLR, Address Space Layout Randomization). Для выборочного отключения ASLR можно использовать команды "proccontrol -m aslr -s disable" или "elfctl -e +noaslr".

  • В ipfw для поиска MAC-адресов задействованы базисные таблицы (Radix table), что позволяет создавать таблицы с MAC-адресами и использовать их для фильтрации трафика. Например:

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 
  • Добавлены и доступны для загрузки через loader.conf модули ядра dpdk_lpm4 и dpdk_lpm6 с реализацией алгоритма поиска маршрутов DIR-24-8 для IPv4/IPv6, который позволяет оптимизировать функции маршрутизации для хостов с очень большими таблицами маршрутизации (в тестах наблюдается прирост скорости на уровне 25%). Для настройки модулей может использоваться штатная утилита route (добавлена опция FIB_ALGO).

  • Реализация файловой системы ZFS обновлена до выпуска OpenZFS 2.1.9. В стартовом скрипте zfskeys обеспечена автоматическая загрузка ключей, хранимых в ФС ZFS. Добавлен новый RC-скрипт zpoolreguid для назначения идентификатора GUID к одному или нескольким zpool (например, полезно для окружений виртуализации с общими данными).

  • В гипервизоре Bhyve и модуле vmm реализована поддержка прикрепления к гостевой системе более 15 виртуальных CPU (регулируется через sysctl hw.vmm.maxcpu). В утилите bhyve реализована эмуляция устройства virtio-input, при помощи которого можно подставлять события ввода с клавиатуры и мыши в гостевую систему.

  • В KTLS, реализацию протокола TLS, работающую на уровне ядра FreeBSD, добавлена поддержка аппаратного ускорения TLS 1.3 через вынос на сторону сетевой карты некоторых операций, связанных с обработкой зашифрованных входящих пакетов. Ранее подобная возможность была доступна для TLS 1.1 и TLS 1.2.

  • В стартовом скрипте growfs при расширении корневой ФС обеспечено добавление раздела подкачки, если такой раздел изначально отсутствовал (например, полезно при установке на SD-карту готового системного образа). Для управления размером подкачки в rc.conf добавлен новый параметр growfs_swap_size.

  • В стартовом скрипте hostid обеспечена генерация случайного UUID в случае отсутствия файла /etc/hostid и невозможности получения UUID от аппаратного обеспечения. Также добавлен файл /etc/machine-id с компактным представлением идентификатора хоста (без дефисов).

  • В rc.conf добавлены переменные defaultrouter_fibN и ipv6_defaultrouter_fibN, через которые можно добавить маршруты по умолчанию в FIB-таблицы, отличные от первичной.

  • В библиотеку libmd добавлена поддержка хэшей SHA-512/224.

  • В библиотеке pthread реализована поддержка семантики функций, используемых в Linux.

  • В kdump добавлена поддержка декодирования системных вызовов Linux. В kdump и sysdecode добавлена поддержка трассировки системных вызовов в стиле Linux.

  • В утилите killall появилась возможность отправки сигнала процессам, привязанным к определённому терминалу (например, "killall -t pts/1").

  • Добавлена утилита nproc для вывода числа доступных текущему процессу вычислительных блоков.

  • В утилиту pciconf добавлена поддержка декодирования параметров ACS (Access Control Services).

  • В ядро добавлена настройка SPLIT_KERNEL_DEBUG, позволяющая сохранять в отдельные файлы отладочную информацию для ядра и модулей ядра.

  • В ABI linux почти завершена реализации поддержки механизма vDSO (virtual dynamic shared objects), предоставляющего ограниченный набор системных вызовов, доступный в пространстве пользователя без переключения контекста. ABI linux на системах ARM64 доведён до паритета с реализацией для архитектуры AMD64.

  • Улучшена поддержка оборудования. Добавлена поддержка мониторинга производительности (hwpmc) для CPU Intel Alder Lake. Обновлён драйвер iwlwifi для беспроводных карт Intel c поддержкой новых чипов и стандарта 802.11ac. Добавлен драйвер rtw88 для беспроводных карт Realtek с интерфейсом PCI.Расширены возможности прослойки linuxkpi для использования во FreeBSD драйверов Linux.

  • Библиотека OpenSSL обновлена до версии 1.1.1t, LLVM/Сlang до версии 14.0.5, а SSH-сервер и клиент обновлены до OpenSSH 9.2p1 (в прошлой версии использовался OpenSSH 8.8p1). Также обновлены версии 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.

Дополнительно объявлено о переводе в разряд устаревших и удалении начиная с ветки FreeBSD 14.0 одноразовых паролей OPIE, драйверов ce и cp, драйверов для карт с интерфейсом ISA, утилит mergemaster и minigzip, компонентов ATM в netgraph (NgATM), фонового процесса telnetd и класса VINUM в geom.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter

>>> Подробности

★★★☆☆

Проект ограничивается поддержкой семейства операций NETLINK_ROUTE для управления состоянием сетевой подсистемы в ядре, что позволяет использовать во FreeBSD Linux-утилиту ip из пакета iproute2

Это для пришедших из мира линукса неосиляторов ifconfig?

Meyer    
★★★★★★
iPhone / Safari
Ответ на: комментарий от Meyer

наверное, кто-то из производителей роутеров не хочет скрипты каждый раз переписывать.

все про это спрашивают и никто не знает. я нашел на сайте только это:

Why is Netlink important for FreeBSD?
POSIX defines an API for base functions/system calls. There is no such standard for the plethora of protocol/device-level/subsystem-level ioctls. Each subsystem/driver invents its own protocol, handling format and compatibility. Extendability is a notable problem in the networking control plane. For example, it is extremely hard to add properties to the routing socket messages without breaking compatibility.
Netlink offers unification by providing a standard communication layer and basic easily-extendable message formatting. It can serve as a "broker", automatically combining requested data from different sources in a single request (example: interface state dump). Netlink APIs lower the bar for application developers to support FreeBSD, while providing the desired extendability.
crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome

Дополнительно подготовлены сборки для систем виртуализации (QCOW2

То есть для Qemu? Все же показалось что его поддержка фиговая

JamesHolden    
★★★★★★★
FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

ага, отлично-отлично)

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от crypt

наверное, кто-то из производителей роутеров не хочет скрипты каждый раз переписывать.

Я думал что сейчас все роутеры на линуксе.

Meyer    
★★★★★★
iPhone / Safari
Ответ на: комментарий от JamesHolden

QCOW2 это лишь формат образа. VirtualBox его тоже поддерживает.

Meyer    
★★★★★★
iPhone / Safari
Ответ на: комментарий от JamesHolden

Так это ж вроде от кедерастов зависит - раньше можно було любой выбирать, хоть фаерфоксовский

Kaschenko    
★★★★★★
Android / Yandex
Ответ на: комментарий от Meyer

хуавей традиционна на бзд был

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от Kaschenko

Да, от кедерастов зависит, конечно. Точнее от того как собрали кеды и что напихали. Но нюанс в том что в линуксах я такого не наблюдаю, там сразу нормальный значок.

Выбирать конечно можно, проблема в том что уже все выбрано, а отображается не то. Почему - пока не понятно.

JamesHolden    
★★★★★★★
Haiku / WebPositive
Ответ на: комментарий от Minona

Ходят слухи что мейнтейнит КДЕ в фряхе один человек.

Так толсто, аж тонко.

odalist    
★★★★★★★
Linux / Firefox
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=90