FreeBSD ကုဒ်ဘေ့စ်သည် အသုံးပြုသူနေရာရှိ kernel နှင့် လုပ်ငန်းစဉ်များကြား အပြန်အလှန်ဆက်သွယ်မှုကို စုစည်းရန် Linux တွင် အသုံးပြုထားသည့် Netlink ဆက်သွယ်ရေးပရိုတိုကော (RFC 3549) ကို အကောင်အထည်ဖော်မှုကို လက်ခံပါသည်။ ပရောဂျက်သည် kernel ရှိ ကွန်ရက်ချိတ်ဆက်မှုခွဲစနစ်၏ အခြေအနေကို စီမံခန့်ခွဲရန်အတွက် NETLINK_ROUTE မိသားစု၏ လုပ်ငန်းဆောင်ရွက်မှုမိသားစုကို ပံ့ပိုးပေးရန်အတွက် ကန့်သတ်ထားသည်။
၎င်း၏လက်ရှိပုံစံတွင်၊ Netlink ပံ့ပိုးမှုအလွှာသည် FreeBSD သည် ကွန်ရက်အင်တာဖေ့စ်များကိုစီမံခန့်ခွဲရန်၊ IP လိပ်စာများသတ်မှတ်ရန်၊ လမ်းကြောင်းသတ်မှတ်ခြင်းနှင့် ပက်ကတ်တစ်ခုပေးပို့ရန်အသုံးပြုသည့်ပြည်နယ်ကို သိမ်းဆည်းထားသည့်နောက်ထပ်အရာဝတ္ထုများကို ကိုင်တွယ်ရန် iproute2 ပက်ကေ့ချ်မှ Linux ip utility ကို အသုံးပြုခွင့်ပေးထားသည်။ ခေါင်းစီးဖိုင်များကို အနည်းငယ်ပြောင်းပြီးနောက်၊ Bird routing package တွင် Netlink ကိုသုံးနိုင်သည်။
FreeBSD အတွက် Netlink အကောင်အထည်ဖော်မှုကို ဖြစ်နိုင်ပါက အခြား kernel ခွဲစနစ်များကို မထိခိုက်စေဘဲ ပရိုတိုကောမှတစ်ဆင့် ဝင်လာသောမက်ဆေ့ချ်များကို လုပ်ဆောင်ရန် သီးခြားလုပ်ဆောင်စရာတန်းစီများ (tasqueue) ကို ဖန်တီးကာ ဖြစ်နိုင်လျှင် သယ်ဆောင်နိုင်သော kernel module တစ်ခုအဖြစ် ထုပ်ပိုးထားသည်။ Netlink ကို တင်ပို့ရခြင်း၏ အကြောင်းရင်းမှာ kernel ခွဲစနစ်များနှင့် အပြန်အလှန် တုံ့ပြန်ခြင်းအတွက် စံယန္တရားမရှိခြင်းဖြစ်ပြီး၊ မတူညီသော စနစ်ခွဲများနှင့် ယာဉ်မောင်းများသည် ၎င်းတို့၏ ကိုယ်ပိုင်ပရိုတိုကောများကို တီထွင်နိုင်စေသည်။
Netlink သည် ကွဲပြားနေသော အရင်းအမြစ်များမှ အချက်အလက်များကို တောင်းဆိုချက်တစ်ခုတည်းသို့ အလိုအလျောက် ပေါင်းစပ်ပေးသည့် ကြားခံတစ်ခုအဖြစ် လုပ်ဆောင်နိုင်သည့် ပေါင်းစည်းဆက်သွယ်ရေးအလွှာနှင့် တိုးချဲ့နိုင်သော မက်ဆေ့ချ်ဖော်မတ်တစ်ခု ပေးပါသည်။ ဥပမာအားဖြင့်၊ devd၊ jail နှင့် pfilctl ကဲ့သို့သော FreeBSD စနစ်ခွဲများသည် ၎င်းတို့၏ကိုယ်ပိုင် ioctl ခေါ်ဆိုမှုများကို အသုံးပြု၍ ယခု Netlink သို့ ရွှေ့ပြောင်းနိုင်သည်၊ ၎င်းသည် ဤစနစ်ခွဲများနှင့် အလုပ်လုပ်ရန်အတွက် အပလီကေးရှင်းများဖန်တီးမှုကို များစွာရိုးရှင်းစေမည်ဖြစ်သည်။ ထို့အပြင်၊ Netlink ကိုအသုံးပြုခြင်းဖြင့် routing stack ရှိ nexthop အရာဝတ္ထုများနှင့် အုပ်စုများကို မွမ်းမံပြင်ဆင်ခြင်းသည် user-space routing လုပ်ငန်းစဉ်များနှင့် ပိုမိုထိရောက်သော အပြန်အလှန်တုံ့ပြန်မှုကို ခွင့်ပြုပေးမည်ဖြစ်ပါသည်။
လက်ရှိအသုံးပြုနေသော အင်္ဂါရပ်များ-
- လမ်းကြောင်းများ၊ nexthops အရာဝတ္ထုများနှင့် အုပ်စုများ၊ ကွန်ရက်ကြားခံများ၊ လိပ်စာများနှင့် အိမ်နီးချင်း hosts (arp/ndp) အကြောင်း အချက်အလက်များ ရယူခြင်း။
- ကွန်ရက်အင်တာဖေ့စ်များ၏ အသွင်အပြင်နှင့် ချိတ်ဆက်မှုပြတ်တောက်ခြင်းအကြောင်း အကြောင်းကြားချက်များ ဖွဲ့စည်းခြင်း၊ လိပ်စာများကို ဆက်တင်နှင့် ဖျက်ခြင်း၊ လမ်းကြောင်းများ ပေါင်းထည့်ခြင်းနှင့် ဖျက်ခြင်းတို့အကြောင်း အကြောင်းကြားချက်များ ပြုလုပ်ခြင်း။
- လမ်းကြောင်းများ၊ Nexthops အရာဝတ္ထုများနှင့် အုပ်စုများ၊ ဂိတ်ဝေးများ၊ ကွန်ရက်ချိတ်ဆက်မှုများကို ထည့်သွင်းခြင်းနှင့် ဖယ်ရှားခြင်း
- လမ်းကြောင်းဇယားကို စီမံခန့်ခွဲရန် Rtsock အင်တာဖေ့စ်နှင့် ပေါင်းစည်းခြင်း။
source: opennet.ru