Rilis FreeBSD 13.2 dengan dukungan Netlink dan WireGuard

Setelah 11 bulan pengembangan, FreeBSD 13.2 telah dirilis. Gambar instalasi dihasilkan untuk arsitektur amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 dan riscv64. Selain itu, rakitan telah disiapkan untuk sistem virtualisasi (QCOW2, VHD, VMDK, raw) dan lingkungan cloud Amazon EC2, Google Compute Engine, dan Vagrant.

Perubahan utama:

  • Kemampuan untuk membuat snapshot sistem file UFS dan FFS dengan logging diaktifkan (pembaruan lunak) telah diterapkan. Juga menambahkan dukungan untuk penyimpanan dump di latar belakang (menjalankan dump dengan tanda “-L”) dengan konten sistem file UFS yang terpasang saat penjurnalan diaktifkan. Salah satu fitur yang tidak tersedia saat menggunakan logging adalah eksekusi pemeriksaan integritas di latar belakang menggunakan utilitas fsck.
  • Komposisi dasarnya mencakup driver wg yang beroperasi pada tingkat kernel dengan implementasi antarmuka jaringan untuk VPN WireGuard. Untuk menggunakan algoritme kriptografi yang diperlukan oleh driver, API subsistem kriptografi kernel FreeBSD telah diperluas, yang mana harness telah ditambahkan yang memungkinkan penggunaan algoritme dari perpustakaan libsodium yang tidak didukung di FreeBSD melalui API kripto standar . Selama proses pengembangan, optimasi juga dilakukan untuk menyeimbangkan pengikatan tugas enkripsi dan dekripsi paket ke inti CPU secara merata, sehingga mengurangi overhead saat memproses paket WireGuard.

    Upaya terakhir untuk memasukkan WireGuard ke FreeBSD dilakukan pada tahun 2020, tetapi berakhir dengan skandal, akibatnya kode yang sudah ditambahkan dihapus karena kualitas rendah, pekerjaan yang ceroboh dengan buffer, penggunaan stub sebagai ganti pemeriksaan, implementasi yang tidak lengkap protokol dan pelanggaran lisensi GPL. Implementasi baru ini disiapkan bersama oleh tim pengembangan inti FreeBSD dan WireGuard, dengan kontribusi dari Jason A. Donenfeld, penulis VPN WireGuard, dan John H. Baldwin, pengembang FreeBSD terkenal. Tinjauan menyeluruh terhadap perubahan dilakukan dengan dukungan FreeBSD Foundation sebelum kode baru diterima.

  • Dukungan untuk protokol komunikasi Netlink (RFC 3549), yang digunakan di Linux untuk mengatur interaksi kernel dengan proses di ruang pengguna, telah diterapkan. Proyek ini terbatas pada mendukung operasi keluarga NETLINK_ROUTE untuk mengelola keadaan subsistem jaringan di kernel, yang memungkinkan FreeBSD menggunakan utilitas ip Linux dari paket iproute2 untuk mengelola antarmuka jaringan, mengatur alamat IP, mengkonfigurasi perutean dan memanipulasi nexthop objek yang menyimpan data keadaan yang digunakan untuk mengirimkan paket ke tujuan yang diinginkan.
  • Semua executable sistem dasar pada platform 64-bit memiliki Address Space Layout Randomization (ASLR) yang diaktifkan secara default. Untuk menonaktifkan ASLR secara selektif, Anda dapat menggunakan perintah “proccontrol -m aslr -sdisable” atau “elfctl -e +noaslr”.
  • Di ipfw, tabel radix digunakan untuk mencari alamat MAC, yang memungkinkan Anda membuat tabel dengan alamat MAC dan menggunakannya untuk memfilter lalu lintas. Misalnya: ipfw tabel 1 buat ketik mac ipfw tabel 1 tambahkan 11:22:33:44:55:66/48 ipfw tambahkan skipto tablearg src-mac 'tabel(1)' ipfw tambahkan tolak src-mac 'tabel(1, 100)' ipfw tambahkan tolak pencarian dst-mac 1
  • Modul kernel dpdk_lpm4 dan dpdk_lpm6 telah ditambahkan dan tersedia untuk dimuat melalui loader.conf dengan penerapan algoritma pencarian rute DIR-24-8 untuk IPv4/IPv6, yang memungkinkan Anda mengoptimalkan fungsi perutean untuk host dengan tabel perutean yang sangat besar ( dalam pengujian, peningkatan kecepatan diamati sebesar 25%). Untuk mengkonfigurasi modul, utilitas rute standar dapat digunakan (opsi FIB_ALGO telah ditambahkan).
  • Implementasi sistem file ZFS telah diperbarui untuk merilis OpenZFS 2.1.9. Skrip startup zfskeys menyediakan pemuatan otomatis kunci yang disimpan dalam sistem file ZFS. Menambahkan skrip RC baru zpoolreguid untuk menetapkan GUID ke satu atau lebih zpools (misalnya berguna untuk lingkungan virtualisasi data bersama).
  • Hypervisor Bhyve dan modul vmm mendukung pemasangan lebih dari 15 CPU virtual ke sistem tamu (diatur melalui sysctl hw.vmm.maxcpu). Utilitas bhyve mengimplementasikan emulasi perangkat input virtio, yang dengannya Anda dapat mengganti peristiwa input keyboard dan mouse ke dalam sistem tamu.
  • Di KTLS, implementasi protokol TLS yang berjalan pada tingkat kernel FreeBSD, dukungan untuk akselerasi perangkat keras TLS 1.3 telah ditambahkan dengan memindahkan beberapa operasi yang terkait dengan pemrosesan paket masuk terenkripsi ke kartu jaringan. Sebelumnya, fitur serupa tersedia untuk TLS 1.1 dan TLS 1.2.
  • Dalam skrip startup Growfs, saat memperluas sistem file root, dimungkinkan untuk menambahkan partisi swap jika partisi tersebut awalnya tidak ada (misalnya, berguna saat memasang image sistem yang sudah jadi pada kartu SD). Untuk mengontrol ukuran swap, parameter baru Growfs_swap_size telah ditambahkan ke rc.conf.
  • Skrip startup hostid memastikan bahwa UUID acak dihasilkan jika file /etc/hostid hilang dan UUID tidak dapat diperoleh dari perangkat keras. Juga menambahkan file /etc/machine-id dengan representasi kompak dari ID host (tanpa tanda hubung).
  • Variabel defaultrouter_fibN dan ipv6_defaultrouter_fibN telah ditambahkan ke rc.conf, yang melaluinya Anda dapat menambahkan rute default ke tabel FIB selain yang utama.
  • Dukungan untuk hash SHA-512/224 telah ditambahkan ke perpustakaan libmd.
  • Pustaka pthread menyediakan dukungan untuk semantik fungsi yang digunakan di Linux.
  • Menambahkan dukungan untuk mendekode panggilan sistem Linux ke kdump. Menambahkan dukungan untuk pelacakan panggilan sistem gaya Linux ke kdump dan sysdecode.
  • Utilitas killall sekarang memiliki kemampuan untuk mengirim sinyal ke proses yang terikat pada terminal tertentu (misalnya, “killall -t pts/1”).
  • Menambahkan utilitas nproc untuk menampilkan jumlah blok komputasi yang tersedia untuk proses saat ini.
  • Dukungan untuk decoding parameter ACS (Access Control Services) telah ditambahkan ke utilitas pciconf.
  • Pengaturan SPLIT_KERNEL_DEBUG telah ditambahkan ke kernel, yang memungkinkan Anda menyimpan informasi debug untuk kernel dan modul kernel dalam file terpisah.
  • Linux ABI hampir lengkap dengan dukungan untuk mekanisme vDSO (virtual Dynamic Shared Objects), yang menyediakan serangkaian panggilan sistem terbatas yang tersedia di ruang pengguna tanpa peralihan konteks. Linux ABI pada sistem ARM64 telah disejajarkan dengan implementasi arsitektur AMD64.
  • Dukungan perangkat keras yang ditingkatkan. Menambahkan dukungan pemantauan kinerja (hwpmc) untuk CPU Intel Alder Lake. Driver iwlwifi untuk kartu nirkabel Intel telah diperbarui dengan dukungan untuk chip baru dan standar 802.11ac. Menambahkan driver rtw88 untuk kartu nirkabel Realtek dengan antarmuka PCI. Kemampuan lapisan linuxkpi telah diperluas untuk digunakan dengan driver Linux di FreeBSD.
  • Pustaka OpenSSL telah diperbarui ke versi 1.1.1t, LLVM/Сlang ke versi 14.0.5, dan server serta klien SSH telah diperbarui ke OpenSSH 9.2p1 (versi sebelumnya menggunakan OpenSSH 8.8p1). Juga diperbarui adalah versi 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.

Selain itu, telah diumumkan bahwa, dimulai dengan cabang FreeBSD 14.0, kata sandi satu kali OPIE, driver ce dan cp, driver untuk kartu ISA, utilitas mergemaster dan minigzip, komponen ATM di netgraph (NgATM), proses latar belakang telnetd dan Kelas VINUM dalam geom.

Sumber: opennet.ru

Tambah komentar