Ва FreeBSD дададзена падтрымка пратаколу Netlink, які ўжываецца ў ядры Linux

У кодавую базу FreeBSD прынята рэалізацыя камунікацыйнага пратакола Netlink (RFC 3549), які ўжываецца ў Linux для арганізацыі ўзаемадзеяння ядра з працэсамі ў прасторы карыстача. Праект абмяжоўваецца падтрымкай сямейства аперацый NETLINK_ROUTE для кіравання станам сеткавай падсістэмы ў ядры.

У бягучым выглядзе ўзровень падтрымкі Netlink дазваляе выкарыстоўваць ва FreeBSD Linux-ўтыліту ip з пакета iproute2 для кіравання сеткавымі інтэрфейсамі, усталёўкі IP-адрасоў, налады маршрутызацыі і маніпуляцыі аб'ектамі nexthop, якія захоўваюць дадзеныя аб стане, выкарыстоўваным для перадачы пакета ў жаданую кропку прызначэння. Пасля нязначнай змены загалоўкавых файлаў магчыма выкарыстанне Netlink у пакеце маршрутызацыі Bird.

Рэалізацыя Netlink для FreeBSD аформлена ў выглядзе загружанага модуля ядра, па магчымасці не які закранае іншыя падсістэмы ядра і што стварае асобныя чэргі задач (tasqueue) для апрацоўкі якія паступаюць па пратаколе паведамленняў і выкананні аперацый у асінхронным рэжыме. У якасці прычыны партавання Netlink называецца адсутнасць стандартнага механізму для ўзаемадзеяння з падсістэмамі ядра, што прыводзіць да таго, што розныя падсістэмы і драйверы вынаходзяць уласныя пратаколы.

Netlink прапануе ўніфікаваны камунікацыйны пласт і які пашыраецца фармат паведамленняў, які можа выступаць у ролі пасярэдніка, аўтаматычна які аб'ядноўвае ў адным запыце разрозненыя дадзеныя ад розных крыніц. Напрыклад, на Netlink могуць быць перакладзены такія падсістэмы FreeBSD, як devd, jail і pfilctl, цяпер якія выкарыстоўваюць уласныя выклікі ioctl, што значна спросціць стварэнне прыкладанняў для працы з дадзенымі падсістэмамі. Акрамя таго, выкарыстанне Netlink для змены аб'ектаў і груп nexthop у стэку маршрутызацыі дазволіць больш эфектыўна ўзаемадзейнічаць з працэсамі маршрутызацыі ў прасторы карыстача.

Рэалізаваныя ў цяперашні час магчымасці:

  • Атрыманне інфармацыі аб маршрутах, аб'ектах і групах nexthops, сеткавых інтэрфейсах, адрасах і суседніх хастах (arp/ndp).
  • Фарміраванне апавяшчэнняў аб з'яўленні і адключэнні сеткавых інтэрфейсаў, усталёўцы і выдаленні адрасоў, даданні і выдаленні маршрутаў.
  • Даданне і выдаленне маршрутаў, аб'ектаў і груп nexthops, шлюзаў, сеткавых інтэрфейсаў.
  • Інтэграцыя з інтэрфейсам Rtsock для кіравання табліцай маршрутызацыі.

Крыніца: opennet.ru

Дадаць каментар