Bản phát hành FreeBSD 13.2 với sự hỗ trợ của Netlink và WireGuard

Sau 11 tháng phát triển, FreeBSD 13.2 đã được phát hành. Hình ảnh cài đặt được tạo cho các kiến ​​trúc amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 và riscv64. Ngoài ra, các tập hợp đã được chuẩn bị cho các hệ thống ảo hóa (QCOW2, VHD, VMDK, raw) và môi trường đám mây Amazon EC2, Google Computer Engine và Vagrant.

Những thay đổi chính:

  • Khả năng tạo ảnh chụp nhanh của hệ thống tệp UFS và FFS có bật tính năng ghi nhật ký (cập nhật phần mềm) đã được triển khai. Đồng thời bổ sung hỗ trợ cho việc lưu các kết xuất trong nền (chạy kết xuất với cờ “-L”) với nội dung của hệ thống tệp UFS được gắn khi tính năng ghi nhật ký được bật. Một trong những tính năng không khả dụng khi sử dụng tính năng ghi nhật ký là thực hiện kiểm tra tính toàn vẹn ở chế độ nền bằng tiện ích fsck.
  • Thành phần cơ bản bao gồm trình điều khiển wg hoạt động ở cấp kernel với việc triển khai giao diện mạng cho VPN WireGuard. Để sử dụng các thuật toán mật mã mà trình điều khiển yêu cầu, API của hệ thống con mật mã hạt nhân FreeBSD đã được mở rộng, trong đó một khai thác đã được thêm vào cho phép sử dụng các thuật toán từ thư viện libsodium không được hỗ trợ trong FreeBSD thông qua API mật mã tiêu chuẩn . Trong quá trình phát triển, việc tối ưu hóa cũng được thực hiện để cân bằng đồng đều liên kết giữa các tác vụ mã hóa và giải mã gói với lõi CPU, giúp giảm chi phí hoạt động khi xử lý các gói WireGuard.

    Nỗ lực cuối cùng để đưa WireGuard vào FreeBSD được thực hiện vào năm 2020, nhưng đã kết thúc trong một vụ bê bối, do đó mã đã được thêm vào đã bị xóa do chất lượng thấp, làm việc bất cẩn với bộ đệm, sử dụng sơ khai thay vì kiểm tra, triển khai không đầy đủ của giao thức và vi phạm giấy phép GPL. Việc triển khai mới được các nhóm phát triển FreeBSD và WireGuard cốt lõi cùng chuẩn bị, với sự đóng góp của Jason A. Donenfeld, tác giả của VPN WireGuard và John H. Baldwin, nhà phát triển FreeBSD nổi tiếng. Việc đánh giá đầy đủ các thay đổi đã được thực hiện với sự hỗ trợ của FreeBSD Foundation trước khi mã mới được chấp nhận.

  • Hỗ trợ giao thức truyền thông Netlink (RFC 3549), được sử dụng trong Linux để tổ chức sự tương tác của hạt nhân với các tiến trình trong không gian người dùng, đã được triển khai. Dự án được giới hạn trong việc hỗ trợ nhóm hoạt động NETLINK_ROUTE để quản lý trạng thái của hệ thống con mạng trong kernel, cho phép FreeBSD sử dụng tiện ích ip Linux từ gói iproute2 để quản lý giao diện mạng, đặt địa chỉ IP, định cấu hình định tuyến và thao tác nexthop đối tượng lưu trữ dữ liệu trạng thái được sử dụng để truyền gói đến đích mong muốn.
  • Tất cả các tệp thực thi của hệ thống cơ sở trên nền tảng 64 bit đều được bật Ngẫu nhiên bố cục không gian địa chỉ (ASLR) theo mặc định. Để vô hiệu hóa ASLR có chọn lọc, bạn có thể sử dụng các lệnh “proccontrol -m aslr -s vô hiệu hóa” hoặc “elfctl -e +noaslr”.
  • Trong ipfw, các bảng cơ số được sử dụng để tra cứu địa chỉ MAC, cho phép bạn tạo các bảng có địa chỉ MAC và sử dụng chúng để lọc lưu lượng. Ví dụ: ipfw bảng 1 tạo kiểu mac ipfw bảng 1 add 11:22:33:44:55:66/48 ipfw add Skipto tablearg src-mac 'table(1)' ipfw add denden src-mac 'table(1, 100 )' ipfw thêm từ chối tra cứu dst-mac 1
  • Các mô-đun hạt nhân dpdk_lpm4 và dpdk_lpm6 đã được thêm và có sẵn để tải qua Loader.conf với việc triển khai thuật toán tìm kiếm tuyến đường DIR-24-8 cho IPv4/IPv6, cho phép bạn tối ưu hóa chức năng định tuyến cho máy chủ có bảng định tuyến rất lớn ( trong các thử nghiệm, tốc độ tăng lên 25%). Để định cấu hình các mô-đun, có thể sử dụng tiện ích định tuyến tiêu chuẩn (tùy chọn FIB_ALGO đã được thêm).
  • Việc triển khai hệ thống tệp ZFS đã được cập nhật để phát hành OpenZFS 2.1.9. Tập lệnh khởi động zfskeys cung cấp khả năng tự động tải các khóa được lưu trữ trong hệ thống tệp ZFS. Đã thêm tập lệnh RC mới zpoolreguid để gán GUID cho một hoặc nhiều zpool (ví dụ: hữu ích cho môi trường ảo hóa dữ liệu dùng chung).
  • Trình ảo hóa Bhyve và mô-đun vmm hỗ trợ gắn hơn 15 CPU ảo vào hệ thống khách (được điều chỉnh thông qua sysctl hw.vmm.maxcpu). Tiện ích bhyve triển khai mô phỏng thiết bị đầu vào virtio, nhờ đó bạn có thể thay thế các sự kiện nhập bằng bàn phím và chuột vào hệ thống khách.
  • Trong KTLS, việc triển khai giao thức TLS chạy ở cấp hạt nhân FreeBSD, hỗ trợ tăng tốc phần cứng của TLS 1.3 đã được thêm vào bằng cách giảm tải một số hoạt động liên quan đến xử lý các gói đến được mã hóa vào card mạng. Trước đây, tính năng tương tự đã có sẵn cho TLS 1.1 và TLS 1.2.
  • Trong tập lệnh khởi động Growfs, khi mở rộng hệ thống tệp gốc, có thể thêm phân vùng trao đổi nếu phân vùng đó ban đầu bị thiếu (ví dụ: hữu ích khi cài đặt hình ảnh hệ thống tạo sẵn trên thẻ SD). Để kiểm soát kích thước trao đổi, một tham số mới Growingfs_swap_size đã được thêm vào RC.conf.
  • Tập lệnh khởi động Hostid đảm bảo rằng một UUID ngẫu nhiên được tạo nếu tệp /etc/hostid bị thiếu và không thể lấy được UUID từ phần cứng. Đồng thời đã thêm tệp /etc/machine-id với phần trình bày nhỏ gọn về ID máy chủ (không có dấu gạch nối).
  • Các biến defaultrouter_fibN và ipv6_defaultrouter_fibN đã được thêm vào RC.conf, qua đó bạn có thể thêm các tuyến mặc định vào các bảng FIB ngoài bảng chính.
  • Hỗ trợ băm SHA-512/224 đã được thêm vào thư viện libmd.
  • Thư viện pthread cung cấp hỗ trợ về ngữ nghĩa của các hàm được sử dụng trong Linux.
  • Đã thêm hỗ trợ giải mã các lệnh gọi hệ thống Linux tới kdump. Đã thêm hỗ trợ cho việc theo dõi cuộc gọi hệ thống kiểu Linux tới kdump và sysdecode.
  • Tiện ích killall hiện có khả năng gửi tín hiệu đến các tiến trình được liên kết với một thiết bị đầu cuối cụ thể (ví dụ: “killall -t pts/1”).
  • Đã thêm tiện ích nproc để hiển thị số khối tính toán có sẵn cho quy trình hiện tại.
  • Hỗ trợ giải mã các tham số ACS (Dịch vụ kiểm soát truy cập) đã được thêm vào tiện ích pciconf.
  • Cài đặt SPLIT_KERNEL_DEBUG đã được thêm vào kernel, cho phép bạn lưu thông tin gỡ lỗi cho kernel và mô-đun kernel trong các tệp riêng biệt.
  • Linux ABI gần như hoàn thiện với sự hỗ trợ cho cơ chế vDSO (đối tượng chia sẻ động ảo), cung cấp một tập hợp giới hạn các lệnh gọi hệ thống có sẵn trong không gian người dùng mà không cần chuyển đổi ngữ cảnh. Linux ABI trên hệ thống ARM64 đã ngang bằng với việc triển khai kiến ​​trúc AMD64.
  • Cải thiện hỗ trợ phần cứng. Đã thêm hỗ trợ giám sát hiệu suất (hwpmc) cho CPU Intel Alder Lake. Trình điều khiển iwlwifi cho card không dây Intel đã được cập nhật với sự hỗ trợ cho chip mới và chuẩn 802.11ac. Đã thêm trình điều khiển rtw88 cho thẻ không dây Realtek với giao diện PCI. Các khả năng của lớp linuxkpi đã được mở rộng để sử dụng với trình điều khiển Linux trong FreeBSD.
  • Thư viện OpenSSL đã được cập nhật lên phiên bản 1.1.1t, LLVM/Сlang lên phiên bản 14.0.5, đồng thời máy chủ và máy khách SSH đã được cập nhật lên OpenSSH 9.2p1 (phiên bản trước sử dụng OpenSSH 8.8p1). Cũng được cập nhật là các phiên bản 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.

Ngoài ra, đã có thông báo rằng, bắt đầu với nhánh FreeBSD 14.0, mật khẩu một lần OPIE, trình điều khiển ce và cp, trình điều khiển cho thẻ ISA, tiện ích mergemaster và minigzip, các thành phần ATM trong netgraph (NgATM), quy trình nền telnetd và Lớp VINUM trong geom.

Nguồn: opennet.ru

Thêm một lời nhận xét