FreeBSD 13.2 發布,支持 Netlink 和 WireGuard

經過 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 檔案系統快照(軟體更新)的功能。 還新增了在啟用日誌功能時對後台轉儲(使用「-L」標誌執行轉儲)以及已安裝 UFS 檔案系統內容的支援。 使用日誌記錄時不可用的功能之一是使用 fsck 公用程式在背景執行完整性檢查。
  • 基本組成包括在核心層級運行的 wg 驅動程式以及 VPN WireGuard 網路介面的實作。 為了使用驅動程式所需的加密演算法,擴展了 FreeBSD 內核加密子系統的 API,其中添加了一個工具,允許透過標準加密 API 使用 FreeBSD 不支援的 libsodium 庫中的演算法。 開發過程中也進行了最佳化,均勻平衡封包加解密任務與CPU核的綁定,減少了處理WireGuard封包時的開銷。

    最後一次嘗試將 WireGuard 納入 FreeBSD 是在 2020 年,但以醜聞告終,由於品質低下、對緩衝區的粗心工作、使用存根而不是檢查、實施不完整,已添加的程式碼被刪除協議和違反GPL 許可證。 新的實作由核心 FreeBSD 和 WireGuard 開發團隊共同編寫,VPN WireGuard 的作者 Jason A. Donenfeld 和著名 FreeBSD 開發人員 John H. Baldwin 做出了貢獻。 在接受新程式碼之前,在 FreeBSD 基金會的支持下對更改進行了全面審查。

  • 已實現對 Netlink 通訊協定 (RFC 3549) 的支持,該協定在 Linux 中用於組織核心與使用者空間進程的交互作用。 該專案僅限於支援 NETLINK_ROUTE 系列操作,用於管理核心中網路子系統的狀態,這允許 FreeBSD 使用 iproute2 套件中的 Linux ip 實用程式來管理網路介面、設定 IP 位址、設定路由和操作 nexthop儲存用於將資料包傳輸到所需目的地的狀態資料的物件。
  • 64 位元平台上的所有基本系統可執行檔預設啟用位址空間佈局隨機化 (ASLR)。 若要選擇性地停用 ASLR,可以使用指令「proccontrol -m aslr -sdisable」或「elfctl -e +noaslr」。
  • 在 ipfw 中,基數表用於查找 MAC 位址,這允許您建立包含 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, 100mac 'table(1)' ipfw add Deny src-mac 'table(XNUMX, XNUMXmac 'table' )' ipfw 新增拒絕查找dst-mac XNUMX
  • 新增了核心模組 dpdk_lpm4 和 dpdk_lpm6,可透過 loader.conf 加載,並實現 IPv24/IPv8 的 DIR-4-6 路由搜尋演算法,這允許您為具有非常大的路由表的主機最佳化路由功能(在測試中,觀察到速度提高了25%)。 若要設定模組,可以使用標準路由公用程式(已新增 FIB_ALGO 選項)。
  • ZFS 檔案系統實作已更新為發布 OpenZFS 2.1.9。 zfskeys 啟動腳本提供自動載入儲存在 ZFS 檔案系統中的金鑰。 新增了新的 RC 腳本 zpoolreguid,以將 GUID 指派給一個或多個 zpool(例如,對於共用資料虛擬化環境很有用)。
  • Bhyve 虛擬機器管理程式和 vmm 模組支援將超過 15 個虛擬 CPU 連接到客戶系統(透過 sysctl hw.vmm.maxcpu 進行調節)。 bhyve 實用程式實作了 virtio 輸入裝置的模擬,您可以使用該裝置將鍵盤和滑鼠輸入事件替換到客戶系統中。
  • KTLS 是在 FreeBSD 核心層級運行的 TLS 協定的實現,透過將一些與處理加密傳入資料包相關的操作卸載到網卡,添加了對 TLS 1.3 硬體加速的支援。 在此之前,TLS 1.1 和 TLS 1.2 也提供了類似的功能。
  • 在growfs啟動腳本中,當擴充根檔案系統時,如果最初缺少交換分割區,則可以新增交換分割區(例如,在SD卡上安裝現成的系統映像時很有用)。 為了控制交換大小,在rc.conf中新增了一個新參數growfs_swap_size。
  • hostid 啟動腳本可確保在 /etc/hostid 檔案遺失且無法從硬體取得 UUID 的情況下產生隨機 UUID。 還添加了一個 /etc/machine-id 文件,其中包含主機 ID 的緊湊表示(無連字符)。
  • rc.conf中新增了defaultrouter_fibN和ipv6_defaultrouter_fibN變量,透過它們可以將預設路由新增到除主FIB表之外的FIB表中。
  • libmd 庫中新增了對 SHA-512/224 雜湊值的支援。
  • pthread 函式庫提供對 Linux 中使用的函數語意的支援。
  • 新增了對 kdump 解碼 Linux 系統呼叫的支援。 新增了對 kdump 和 sysdecode 的 Linux 風格系統呼叫追蹤的支援。
  • Killall 實用程式現在能夠向綁定到特定終端的程序發送訊號(例如「killall -t pts/1」)。
  • 新增了 nproc 實用程式來顯示目前進程可用的計算區塊的數量。
  • pciconf 實用程式中新增了對解碼 ACS(存取控制服務)參數的支援。
  • SPLIT_KERNEL_DEBUG 設定已新增至核心中,它允許您將核心和核心模組的偵錯資訊保存在單獨的檔案中。
  • Linux ABI 幾乎完成了對 vDSO(虛擬動態共享物件)機制的支持,該機制提供了用戶空間中可用的一組有限的系統調用,而無需上下文切換。 ARM64 系統上的 Linux ABI 已與 AMD64 架構的實作持平。
  • 改進的硬體支援。 新增了對 Intel Alder Lake CPU 的效能監控 (hwpmc) 支援。 Intel 無線卡的 iwlwifi 驅動程式已更新,支援新晶片和 802.11ac 標準。 新增了適用於具有 PCI 介面的 Realtek 無線卡的 rtw88 驅動程式。 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 實用程式、netgraph 中的 ATM 元件 (NgATM)、telnetd 後台進程和geom 中的VINUM 類別。

來源: opennet.ru

添加評論