FreeBSD нь Линуксийн цөмд хэрэглэгддэг Netlink протоколын дэмжлэгийг нэмдэг

FreeBSD кодын сан нь Linux-д цөм болон хэрэглэгчийн орон зай дахь процессуудын хоорондын харилцан үйлчлэлийг зохион байгуулахад ашигладаг Netlink холбооны протоколын (RFC 3549) хэрэгжилтийг ашигладаг. Уг төсөл нь цөм дэх сүлжээний дэд системийн төлөвийг удирдах NETLINK_ROUTE гэр бүлийн үйлдлүүдийг дэмжихээр хязгаарлагддаг.

Netlink дэмжлэгийн давхарга нь одоогийн хэлбэрээрээ FreeBSD-д iproute2 багцын Linux ip хэрэгслийг ашиглан сүлжээний интерфэйсүүдийг удирдах, IP хаягийг тохируулах, чиглүүлэлт хийх, багцыг хүссэн газар руу дамжуулахад ашигласан төлөвийг хадгалдаг nexthop объектуудыг удирдах боломжийг олгодог. . Толгой файлуудыг бага зэрэг өөрчилсний дараа Netlink-ийг Bird routing багцад ашиглах боломжтой.

FreeBSD-д зориулсан Netlink хэрэгжүүлэлт нь ачаалагдах боломжтой цөмийн модуль хэлбэрээр багцлагдсан бөгөөд боломжтой бол бусад цөмийн дэд системд нөлөөлөхгүй бөгөөд протоколоор дамжуулан ирж буй мессежийг боловсруулах, асинхрон горимд үйлдлүүдийг гүйцэтгэхийн тулд тусдаа ажлын дараалал (tasqueue) үүсгэдэг. Netlink-ийг зөөвөрлөх болсон шалтгаан нь цөмийн дэд системүүдтэй харилцах стандарт механизм байхгүйгээс болж өөр өөр дэд системүүд болон драйверууд өөрсдийн протоколуудыг зохион бүтээхэд хүргэдэг.

Netlink нь өөр өөр эх сурвалжаас өөр өөр өгөгдлийг автоматаар нэг хүсэлт болгон нэгтгэдэг зуучлагчийн үүрэг гүйцэтгэх нэгдсэн холбооны давхарга болон өргөтгөх боломжтой мессежийн форматыг санал болгодог. Жишээлбэл, devd, jail, pfilctl зэрэг FreeBSD дэд системүүдийг одоо өөрсдийн ioctl дуудлагуудыг ашиглан Netlink руу шилжүүлж болох бөгөөд энэ нь эдгээр дэд системүүдтэй ажиллахад зориулсан програмуудыг үүсгэхэд ихээхэн хялбарчлах болно. Нэмж дурдахад, чиглүүлэлтийн стек дэх nexthop объект болон бүлгүүдийг өөрчлөхийн тулд Netlink-ийг ашиглах нь хэрэглэгчийн орон зайн чиглүүлэлтийн процессуудтай илүү үр дүнтэй харилцах боломжийг олгоно.

Одоогоор хэрэгжиж байгаа онцлогууд:

  • Маршрут, nexthops объект ба бүлгүүд, сүлжээний интерфэйсүүд, хаягууд болон хөрш зэргэлдээх хостуудын (arp/ndp) тухай мэдээлэл авах.
  • Сүлжээний интерфэйсүүдийн харагдах байдал, салгах, хаягийг тохируулах, устгах, чиглүүлэлт нэмэх, устгах тухай мэдэгдэл үүсгэх.
  • Маршрут, nexthops объект ба бүлгүүд, гарцууд, сүлжээний интерфейсүүдийг нэмэх, хасах.
  • Чиглүүлэлтийн хүснэгтийг удирдахын тулд Rtsock интерфейстэй нэгтгэх.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх