FreeBSD menambah sokongan untuk protokol Netlink yang digunakan dalam kernel Linux

Pangkalan kod FreeBSD mengguna pakai pelaksanaan protokol komunikasi Netlink (RFC 3549), yang digunakan dalam Linux untuk mengatur interaksi kernel dengan proses dalam ruang pengguna. Projek ini terhad kepada menyokong keluarga operasi NETLINK_ROUTE untuk mengurus keadaan subsistem rangkaian dalam kernel.

Dalam bentuk semasa, sokongan Netlink membenarkan FreeBSD menggunakan utiliti ip Linux daripada pakej iproute2 untuk mengurus antara muka rangkaian, menetapkan alamat IP, mengkonfigurasi penghalaan dan memanipulasi objek nexthop yang menyimpan data keadaan yang digunakan untuk memajukan paket ke destinasi yang dikehendaki. Selepas perubahan kecil pada fail pengepala, adalah mungkin untuk menggunakan Netlink dalam pakej penghalaan Burung.

Pelaksanaan Netlink untuk FreeBSD direka bentuk sebagai modul kernel boleh dimuatkan, yang, jika boleh, tidak menjejaskan subsistem kernel lain dan mencipta baris gilir tugas yang berasingan (tasqueues) untuk memproses mesej yang tiba melalui protokol dan melaksanakan operasi dalam mod tak segerak. Sebab untuk mengalihkan Netlink adalah kekurangan mekanisme standard untuk berinteraksi dengan subsistem kernel, yang membawa kepada subsistem dan pemacu yang berbeza mencipta protokol mereka sendiri.

Netlink menawarkan lapisan komunikasi bersatu dan format mesej yang boleh diperluaskan yang boleh bertindak sebagai perantara yang secara automatik menggabungkan data yang berbeza daripada sumber yang berbeza ke dalam satu permintaan. Contohnya, subsistem FreeBSD seperti devd, jail dan pfilctl, yang pada masa ini menggunakan panggilan ioctl mereka sendiri, boleh dipindahkan ke Netlink, yang akan memudahkan penciptaan aplikasi untuk bekerja dengan subsistem ini. Selain itu, menggunakan Netlink untuk mengubah suai objek dan kumpulan nexthop dalam timbunan penghalaan akan membolehkan interaksi yang lebih cekap dengan proses penghalaan ruang pengguna.

Ciri yang sedang dilaksanakan:

  • Mendapatkan maklumat tentang laluan, objek dan kumpulan nexthops, antara muka rangkaian, alamat dan hos jiran (arp/ndp).
  • Menjana pemberitahuan tentang penampilan dan pemotongan antara muka rangkaian, menetapkan dan memadam alamat, menambah dan memadam laluan.
  • Menambah dan mengalih keluar laluan, objek dan kumpulan nexthops, get laluan, antara muka rangkaian.
  • Integrasi dengan antara muka Rtsock untuk pengurusan jadual penghalaan.

Sumber: opennet.ru

Tambah komen