Trong FreeBSD, họ đã thêm hỗ trợ cho giao thức Netlink được sử dụng trong Linux

FreeBSD

FreeBSD được thiết lập tốt như một hệ thống xây dựng các máy chủ Internet và Intranet. Nó cung cấp các dịch vụ mạng khá đáng tin cậy và quản lý bộ nhớ hiệu quả.

Vài ngày trước tin tức đã được phát hành rằng mã cơ sở của FreeBSD đã thông qua một triển khai mới của giao thức truyền thông netlink (RFC 3549) được sử dụng trong Linux để giao tiếp giữa hạt nhân và các quy trình trong không gian người dùng.

Họ ổ cắm netlink là một giao diện nhân Linux được sử dụng để giao tiếp giữa các quá trình (IPC) giữa các quá trình hạt nhân và không gian người dùng và giữa các quy trình không gian người dùng khác nhau, tương tự như các ổ cắm miền Unix.

Tương tự như ổ cắm miền Unix và không giống như ổ cắm INET, giao tiếp Netlink không thể vượt qua ranh giới máy chủ. Tuy nhiên, trong khi các ổ cắm miền Unix sử dụng không gian tên hệ thống tệp, các quy trình Netlink thường được giải quyết bằng các mã định danh quy trình (PID).

Netlink được thiết kế và sử dụng để truyền thông tin mạng linh tinh giữa không gian nhân và các tiến trình không gian người dùng. Các tiện ích mạng, chẳng hạn như họ iproute2 và các tiện ích được sử dụng để định cấu hình trình điều khiển không dây dựa trên mac80211, sử dụng Netlink để giao tiếp với nhân Linux từ không gian người dùng. Netlink cung cấp một giao diện dựa trên socket tiêu chuẩn cho các quy trình không gian người dùng và một API phía hạt nhân để sử dụng nội bộ bởi các mô-đun hạt nhân. Netlink ban đầu sử dụng họ ổ cắm AF_NETLINK.

Cho đến nay ở dạng hiện tại, Lớp hỗ trợ Netlink cho phép FreeBSD sử dụng tiện ích ip Linux của gói iproute2 để quản lý các giao diện mạng, đặt địa chỉ IP, cấu hình định tuyến và thao tác với các đối tượng nexthop lưu trữ trạng thái được sử dụng để chuyển tiếp một gói đến đích mong muốn. Sau khi thay đổi một chút các tệp tiêu đề, có thể sử dụng Netlink trong gói định tuyến của Bird.

Triển khai Netlink cho FreeBSD được đóng gói dưới dạng một mô-đun nhân có thể tải được rằng, nếu có thể, không ảnh hưởng đến các hệ thống con hạt nhân khác và tạo ra các hàng đợi tác vụ riêng biệt (nhiệm vụ) để xử lý các tin nhắn đến thông qua giao thức và thực hiện các hoạt động ở chế độ không đồng bộ. Lý do chuyển Netlink là thiếu cơ chế tiêu chuẩn để tương tác với các hệ thống con nhân hạt nhân, dẫn đến các hệ thống con và trình điều khiển khác nhau phát minh ra các giao thức riêng của chúng.

netlink cung cấp một lớp giao tiếp thống nhất và một định dạng tin nhắn có thể mở rộng có thể hoạt động như một người trung gian tự động kết hợp dữ liệu khác nhau từ các nguồn khác nhau thành một yêu cầu duy nhất. Ví dụ: các hệ thống con của FreeBSD như devd, jail và pfilctl có thể được chuyển sang Netlink, hiện đang sử dụng các lệnh gọi ioctl của riêng chúng, điều này sẽ giúp đơn giản hóa việc xây dựng các ứng dụng để hoạt động với các hệ thống con này. Ngoài ra, việc sử dụng Netlink để sửa đổi các đối tượng và nhóm nexthop trong ngăn xếp định tuyến sẽ cho phép tương tác hiệu quả hơn với các quy trình định tuyến không gian người dùng.

Giao diện, địa chỉ, tuyến đường, tường lửa, fibs, vnets, v.v. được điều khiển thông qua netlink. Nó là một giao thức không đồng bộ dựa trên TLV cung cấp giao tiếp 1-1 và 1-nhiều. Việc triển khai hiện tại hỗ trợ tập con của họ NETLINK_ROUTE. Việc triển khai cũng tương thích với khung họ NETLINK_GENERIC.

Các tính năng hiện được triển khai:

  • Nhận thông tin về các tuyến đường, các đối tượng và nhóm nexthops, giao diện mạng, địa chỉ và các máy chủ lân cận (arp / ndp).
  • Hình thành các thông báo về sự xuất hiện và ngắt kết nối của các giao diện mạng, cấu hình và loại bỏ địa chỉ, bổ sung và loại bỏ các tuyến đường.
  • Thêm và loại bỏ các tuyến đường, các đối tượng và nhóm tiếp theo, các cổng, giao diện mạng.
  • Tích hợp với giao diện Rtsock để quản lý bảng định tuyến.

Điều đáng nói là cho đến nay dự án chỉ giới hạn trong việc hỗ trợ họ NETLINK_ROUTE hoạt động để quản lý trạng thái của hệ thống con mạng trong hạt nhân.

Cuối cùng, nếu bạn quan tâm có thể biết thêm về nó, bạn có thể tham khảo chi tiết tại liên kết sau.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.