Netlink ve WireGuard desteğiyle FreeBSD 13.2 sürümü

11 aylık geliştirme sürecinin ardından FreeBSD 13.2 yayınlandı. amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 ve riscv64 mimarileri için kurulum görselleri oluşturulmuştur. Ayrıca sanallaştırma sistemleri (QCOW2, VHD, VMDK, raw) ve bulut ortamları Amazon EC2, Google Compute Engine ve Vagrant için derlemeler hazırlandı.

Anahtar değişiklikler:

  • Günlüğe kaydetme etkinken (yazılım güncellemeleri) UFS ve FFS dosya sistemlerinin anlık görüntülerini oluşturma yeteneği uygulandı. Ayrıca günlük kaydı etkinleştirildiğinde, bağlı UFS dosya sistemlerinin içeriğiyle birlikte dökümlerin arka planda kaydedilmesi ("-L" bayrağıyla dökümün çalıştırılması) için destek eklendi. Günlüğe kaydetme kullanılırken kullanılamayan özelliklerden biri, fsck yardımcı programını kullanarak bütünlük kontrollerinin arka planda yürütülmesidir.
  • Temel bileşim, VPN WireGuard için bir ağ arayüzünün uygulanmasıyla çekirdek düzeyinde çalışan bir wg sürücüsünü içerir. Sürücünün gerektirdiği şifreleme algoritmalarını kullanmak için, FreeBSD çekirdek kripto alt sisteminin API'si genişletildi ve buna, standart kripto API aracılığıyla FreeBSD'de desteklenmeyen libsodium kütüphanesinden algoritmaların kullanılmasına izin veren bir donanım eklendi. . Geliştirme süreci sırasında, paket şifreleme ve şifre çözme görevlerinin CPU çekirdeklerine bağlanmasını eşit şekilde dengelemek için optimizasyon da gerçekleştirildi, bu da WireGuard paketlerini işlerken ek yükü azalttı.

    WireGuard'ı FreeBSD'ye dahil etmek için son girişim 2020'de yapıldı, ancak bir skandalla sonuçlandı, bunun sonucunda zaten eklenmiş olan kod düşük kalite, arabelleklerle dikkatsiz çalışma, kontroller yerine saplamaların kullanılması, eksik uygulama nedeniyle kaldırıldı. protokolün ihlali ve GPL lisansının ihlali. Yeni uygulama çekirdek FreeBSD ve WireGuard geliştirme ekipleri tarafından, VPN WireGuard'ın yazarı Jason A. Donenfeld ve ünlü FreeBSD geliştiricisi John H. Baldwin'in katkılarıyla ortaklaşa hazırlandı. Yeni kod kabul edilmeden önce FreeBSD Vakfı'nın desteğiyle değişikliklerin tam bir incelemesi yapıldı.

  • Linux'ta çekirdeğin kullanıcı alanındaki işlemlerle etkileşimini düzenlemek için kullanılan Netlink iletişim protokolü (RFC 3549) desteği uygulandı. Proje, çekirdekteki ağ alt sisteminin durumunu yönetmek için NETLINK_ROUTE operasyon ailesini desteklemekle sınırlıdır; bu, FreeBSD'nin ağ arayüzlerini yönetmek, IP adreslerini ayarlamak, yönlendirmeyi yapılandırmak ve nexthop'u yönetmek için iproute2 paketindeki Linux ip yardımcı programını kullanmasına olanak tanır. Paketin istenen hedefe iletilmesi için kullanılan durum verilerini saklayan nesneler.
  • 64 bit platformlardaki tüm temel sistem yürütülebilir dosyalarında Adres Alanı Düzeni Rastgeleleştirme (ASLR) varsayılan olarak etkindir. ASLR'yi seçici olarak devre dışı bırakmak için “proccontrol -m aslr -s devre dışı bırak” veya “elfctl -e +noaslr” komutlarını kullanabilirsiniz.
  • ipfw'de, MAC adreslerini aramak için radix tabloları kullanılır; bu, MAC adresleriyle tablolar oluşturmanıza ve bunları trafiği filtrelemek için kullanmanıza olanak tanır. Örneğin: ipfw tablo 1 create type mac ipfw tablo 1 ekle 11:22:33:44:55:66/48 ipfw ekle skipto tablearg src-mac 'tablo(1)' ipfw ekle reddetme src-mac 'tablo(1, 100 )' ipfw ekleme reddetme araması dst-mac 1
  • Çekirdek modülleri dpdk_lpm4 ve dpdk_lpm6 eklenmiştir ve IPv24/IPv8 için DIR-4-6 rota arama algoritmasının uygulanmasıyla loader.conf aracılığıyla yüklenmeye hazırdır; bu, çok büyük yönlendirme tablolarına sahip ana bilgisayarlar için yönlendirme işlevlerini optimize etmenize olanak tanır ( Testlerde yüzde 25 oranında hız artışı gözlemleniyor). Modülleri yapılandırmak için standart rota yardımcı programı kullanılabilir (FIB_ALGO seçeneği eklenmiştir).
  • ZFS dosya sistemi uygulaması, OpenZFS 2.1.9'u yayınlayacak şekilde güncellendi. zfskeys başlangıç ​​komut dosyası, ZFS dosya sisteminde depolanan anahtarların otomatik olarak yüklenmesini sağlar. Bir veya daha fazla zpool'a GUID atamak için yeni RC komut dosyası zpoolreguid eklendi (örneğin, paylaşılan veri sanallaştırma ortamları için kullanışlıdır).
  • Bhyve hipervizörü ve vmm modülü, konuk sisteme 15'ten fazla sanal CPU'nun bağlanmasını destekler (sysctl hw.vmm.maxcpu aracılığıyla düzenlenir). Bhyve yardımcı programı, klavye ve fare giriş olaylarını konuk sisteme değiştirebileceğiniz sanal giriş cihazının emülasyonunu uygular.
  • FreeBSD çekirdek seviyesinde çalışan TLS protokolünün bir uygulaması olan KTLS'de, şifrelenmiş gelen paketlerin işlenmesiyle ilgili bazı işlemlerin ağ kartına boşaltılmasıyla TLS 1.3'ün donanım hızlandırması desteği eklenmiştir. Daha önce benzer bir özellik TLS 1.1 ve TLS 1.2 için mevcuttu.
  • Growfs başlangıç ​​​​komut dosyasında, kök dosya sistemini genişletirken, başlangıçta böyle bir bölüm eksikse bir takas bölümü eklemek mümkündür (örneğin, hazır bir sistem görüntüsünü bir SD karta yüklerken kullanışlıdır). Takas boyutunu kontrol etmek için rc.conf'a yeni bir Growfs_swap_size parametresi eklendi.
  • Hostid başlangıç ​​betiği, /etc/hostid dosyası eksikse ve UUID donanımdan alınamıyorsa rastgele bir UUID oluşturulmasını sağlar. Ayrıca ana bilgisayar kimliğinin kompakt bir temsilini içeren (tire olmadan) bir /etc/machine-id dosyası eklendi.
  • defaultrouter_fibN ve ipv6_defaultrouter_fibN değişkenleri rc.conf'a eklenmiştir; bu sayede birincil tablo dışındaki FIB tablolarına varsayılan rotalar ekleyebilirsiniz.
  • Libmd kitaplığına SHA-512/224 karmaları desteği eklendi.
  • pthread kütüphanesi Linux'ta kullanılan fonksiyonların anlambilimine destek sağlar.
  • Kdump'a Linux sistem çağrılarının kodunu çözmek için destek eklendi. Kdump ve sysdecode'a Linux tarzı sistem çağrısı izleme desteği eklendi.
  • Killall yardımcı programı artık belirli bir terminale bağlı işlemlere sinyal gönderme yeteneğine sahiptir (örneğin, "killall -t pts/1").
  • Mevcut süreçte mevcut olan hesaplama bloklarının sayısını görüntülemek için nproc yardımcı programı eklendi.
  • Pciconf yardımcı programına ACS (Erişim Kontrol Hizmetleri) parametrelerinin kodunu çözme desteği eklendi.
  • Çekirdek ve çekirdek modülleri için hata ayıklama bilgilerini ayrı dosyalara kaydetmenize olanak tanıyan SPLIT_KERNEL_DEBUG ayarı çekirdeğe eklenmiştir.
  • Linux ABI, bağlam değiştirme olmadan kullanıcı alanında sınırlı sayıda sistem çağrıları sağlayan vDSO (sanal dinamik paylaşılan nesneler) mekanizması desteğiyle neredeyse tamamlandı. ARM64 sistemlerindeki Linux ABI, AMD64 mimarisinin uygulanmasıyla aynı seviyeye getirildi.
  • Geliştirilmiş donanım desteği. Intel Alder Lake CPU'ları için performans izleme (hwpmc) desteği eklendi. Intel kablosuz kartlarına yönelik iwlwifi sürücüsü, yeni çipler ve 802.11ac standardı desteğiyle güncellendi. PCI arayüzlü Realtek kablosuz kartlar için rtw88 sürücüsü eklendi. Linuxkpi katmanının yetenekleri, FreeBSD'deki Linux sürücüleri ile kullanılmak üzere genişletildi.
  • OpenSSL kitaplığı 1.1.1t sürümüne, LLVM/Сlang 14.0.5 sürümüne güncellendi ve SSH sunucusu ve istemcisi OpenSSH 9.2p1'e güncellendi (önceki sürüm OpenSSH 8.8p1 kullanıyordu). Ayrıca 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 sürümleri de güncellendi.

Ayrıca FreeBSD 14.0 şubesinden başlayarak tek kullanımlık şifreler OPIE, ce ve cp sürücüleri, ISA kartları için sürücüler, mergemaster ve minigzip yardımcı programları, netgraph'taki ATM bileşenleri (NgATM), telnetd arka plan işlemi ve Geom'da VINUM sınıfı.

Kaynak: opennet.ru

Yorum ekle