FreeBSD Linux ядросында қолданылатын Netlink протоколына қолдауды қосады

FreeBSD кодтық базасы Linux жүйесінде ядро ​​мен пайдаланушы кеңістігіндегі процестердің өзара әрекеттесуін ұйымдастыру үшін қолданылатын Netlink байланыс протоколының (RFC 3549) іске асырылуын қабылдайды. Жоба ядродағы желілік ішкі жүйенің күйін басқаруға арналған NETLINK_ROUTE операциялар тобына қолдау көрсетумен шектелген.

Ағымдағы пішінде Netlink қолдау деңгейі FreeBSD жүйесіне желі интерфейстерін басқару, IP мекенжайларын орнату, маршруттауды конфигурациялау және пакетті қажетті тағайындалған орынға жіберу үшін пайдаланылатын күйді сақтайтын келесі жұмыс нысандарын басқару үшін iproute2 бумасындағы Linux ip утилитасын пайдалануға мүмкіндік береді. . Тақырып файлдарын сәл өзгерткеннен кейін Netlink-ті Bird маршруттау пакетінде пайдалануға болады.

FreeBSD үшін Netlink іске асырылуы мүмкін болса, басқа ядролық ішкі жүйелерге әсер етпейтін және хаттама арқылы кіріс хабарларды өңдеу және асинхронды режимде операцияларды орындау үшін бөлек тапсырмалар кезегін (тапсырма кезегін) жасайтын жүктелетін ядро ​​модулі ретінде жинақталған. Netlink-ті тасымалдаудың себебі ядроның ішкі жүйелерімен өзара әрекеттесу үшін стандартты механизмнің жоқтығы болып табылады, бұл әртүрлі ішкі жүйелер мен драйверлердің өздерінің протоколдарын ойлап табуына әкеледі.

Netlink бірыңғай байланыс деңгейін және әртүрлі көздерден алынған әртүрлі деректерді бір сұрауға автоматты түрде біріктіретін делдал ретінде әрекет ете алатын кеңейтілген хабарлама пішімін ұсынады. Мысалы, devd, jail және pfilctl сияқты FreeBSD ішкі жүйелерін қазір өздерінің ioctl қоңырауларын пайдаланып Netlink-ке көшіруге болады, бұл осы ішкі жүйелермен жұмыс істеуге арналған қосымшаларды жасауды айтарлықтай жеңілдетеді. Бұған қоса, маршруттау стекіндегі келесі жұмыс нысандары мен топтарын өзгерту үшін Netlink пайдалану пайдаланушы кеңістігі маршруттау процестерімен тиімдірек әрекеттесуге мүмкіндік береді.

Қазіргі уақытта енгізілген мүмкіндіктер:

  • Бағдарлар, nexthops нысандары мен топтары, желі интерфейстері, мекенжайлар және көрші хосттар (arp/ndp) туралы ақпарат алу.
  • Желілік интерфейстердің пайда болуы және ажыратылуы, мекенжайларды орнату және жою, маршруттарды қосу және жою туралы хабарламаларды қалыптастыру.
  • Маршруттарды, nexthops нысандары мен топтарын, шлюздерді, желі интерфейстерін қосу және жою.
  • Маршруттау кестесін басқару үшін Rtsock интерфейсімен интеграция.

Ақпарат көзі: opennet.ru

пікір қалдыру