Netlink および WireGuard をサポートする FreeBSD 13.2 リリース

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 ファイル システムのスナップショットを作成する機能 (ソフト アップデート) が実装されました。 また、ジャーナリングが有効な場合に、マウントされた UFS ファイル システムの内容を含むダンプのバックグラウンド保存 (「-L」フラグを指定してダンプを実行) のサポートも追加されました。 ロギングの使用時に使用できない機能の XNUMX つは、fsck ユーティリティを使用した整合性チェックのバックグラウンド実行です。
  • 基本的な構成には、VPN WireGuard のネットワーク インターフェイスの実装を備えたカーネル レベルで動作する wg ドライバーが含まれています。 ドライバーに必要な暗号アルゴリズムを使用するために、FreeBSD カーネル暗号サブシステムの API が拡張され、FreeBSD ではサポートされていない libsodium ライブラリのアルゴリズムを標準の暗号 API を通じて使用できるようにするハーネスが追加されました。 。 開発プロセス中に、CPU コアへのパケット暗号化タスクと復号化タスクのバインドのバランスを均等にするための最適化も実行され、WireGuard パケットを処理する際のオーバーヘッドが削減されました。

    WireGuard を FreeBSD に含める最後の試みは 2020 年に行われましたが、スキャンダルに終わりました。その結果、低品質、バッファの不注意な作業、チェックの代わりにスタブの使用、不完全な実装が原因で、既に追加されたコードが削除されました。プロトコルの違反と GPL ライセンスの違反。 新しい実装は、VPN WireGuard の作者である Jason A. Donenfeld と、著名な FreeBSD 開発者である John H. Baldwin の貢献を得て、FreeBSD と WireGuard のコア開発チームが共同で準備しました。 新しいコードが受け入れられる前に、FreeBSD Foundation の支援を受けて変更の完全なレビューが実施されました。

  • Linux でカーネルとユーザー空間のプロセスとの対話を組織化するために使用される Netlink 通信プロトコル (RFC 3549) のサポートが実装されました。 このプロジェクトは、カーネル内のネットワーク サブシステムの状態を管理するための NETLINK_ROUTE ファミリの操作のサポートに限定されています。これにより、FreeBSD は、iproute2 パッケージの Linux ip ユーティリティを使用して、ネットワーク インターフェイスの管理、IP アドレスの設定、ルーティングの構成、ネクストホップの操作を行うことができます。パケットを目的の宛先に送信するために使用される状態データを保存するオブジェクト。
  • 64 ビット プラットフォーム上のすべての基本システム実行可能ファイルでは、アドレス空間レイアウトのランダム化 (ASLR) がデフォルトで有効になっています。 ASLR を選択的に無効にするには、「proccontrol -m aslr -s disable」または「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 stopto tablearg src-mac 'table(1)' ipfw adddeny src-mac 'table(1, 100 )' ipfw 追加拒否ルックアップ dst-mac 1
  • カーネル モジュール dpdk_lpm4 および dpdk_lpm6 が追加され、IPv24/IPv8 用の DIR-4-6 ルート検索アルゴリズムの実装により、loader.conf 経由でロードできるようになりました。これにより、非常に大規模なルーティング テーブルを持つホストのルーティング機能を最適化できます (テストでは、25 % の速度向上が観察されました。 モジュールを設定するには、標準のルート ユーティリティを使用できます (FIB_ALGO オプションが追加されました)。
  • ZFS ファイル システムの実装が更新され、OpenZFS 2.1.9 がリリースされました。 zfskeys 起動スクリプトは、ZFS ファイル システムに保存されているキーの自動ロードを提供します。 GUID を XNUMX つ以上の zpool に割り当てるための新しい RC スクリプト zpoolreguid を追加しました (共有データ仮想化環境などに役立ちます)。
  • Bhyve ハイパーバイザーと vmm モジュールは、ゲスト システムへの 15 個を超える仮想 CPU の接続をサポートしています (sysctl hw.vmm.maxcpu によって制御されます)。 bhyve ユーティリティは virtio-input デバイスのエミュレーションを実装しており、これを使用してキーボードとマウスの入力イベントをゲスト システムに置き換えることができます。
  • FreeBSD カーネル レベルで実行される TLS プロトコルの実装である KTLS では、暗号化された受信パケットの処理に関連する一部の操作をネットワーク カードにオフロードすることにより、TLS 1.3 のハードウェア アクセラレーションのサポートが追加されました。 以前は、同様の機能が TLS 1.1 と TLS 1.2 で利用可能でした。
  • ルート ファイル システムを拡張するときに、growfs 起動スクリプトでは、スワップ パーティションが最初に存在しなかった場合に、スワップ パーティションを追加できます (たとえば、既製のシステム イメージを SD カードにインストールする場合に便利です)。 スワップ サイズを制御するために、新しいパラメータ givefs_swap_size が rc.conf に追加されました。
  • hostid 起動スクリプトは、/etc/hostid ファイルが見つからず、ハードウェアから UUID を取得できない場合に、ランダムな UUID が生成されるようにします。 また、ホスト ID のコンパクトな表現 (ハイフンなし) を含む /etc/machine-id ファイルも追加されました。
  • defaultrouter_fibN 変数と ipv6_defaultrouter_fibN 変数が rc.conf に追加されており、これを使用して、プライマリ ルート以外の FIB テーブルにデフォルト ルートを追加できます。
  • SHA-512/224 ハッシュのサポートが libmd ライブラリに追加されました。
  • pthread ライブラリは、Linux で使用される関数のセマンティクスのサポートを提供します。
  • kdump への Linux システム コールのデコードのサポートが追加されました。 Linux スタイルのシステム コール トレースのサポートが kdump および sysdecode に追加されました。
  • killall ユーティリティは、特定の端末にバインドされたプロセスにシグナルを送信できるようになりました (たとえば、「killall -t pts/1」)。
  • 現在のプロセスで利用可能な計算ブロックの数を表示する nproc ユーティリティを追加しました。
  • ACS (アクセス制御サービス) パラメータのデコードのサポートが pciconf ユーティリティに追加されました。
  • 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 (NgATM) の ATM コンポーネント、telnetd バックグラウンド プロセス、およびgeom の VINUM クラス。

出所: オープンネット.ru

コメントを追加します