Yandex သည် Linux ရှိ ကွန်ရက်လည်ပတ်မှုများကို ခြေရာခံရန် အသုံးဝင်သည့် skbtrace ကို ထုတ်ဝေခဲ့သည်။

Yandex သည် network stack ၏လည်ပတ်မှုကိုစောင့်ကြည့်ရန်နှင့် Linux တွင်ကွန်ရက်လုပ်ဆောင်မှုများကိုခြေရာခံရန်အတွက်ကိရိယာများထောက်ပံ့ပေးသည့် skbtrace utility ၏အရင်းအမြစ်ကုဒ်ကိုထုတ်ဝေခဲ့သည်။ အသုံးဝင်မှုကို BPFtrace dynamic debugging စနစ်တွင် အပိုပရိုဂရမ်တစ်ခုအဖြစ် လုပ်ဆောင်ထားသည်။ ကုဒ်ကို Go တွင်ရေးထားပြီး MIT လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။ Linux kernels 4.14+ နှင့် BPFTrace 0.9.2+ ကိရိယာအစုံဖြင့် လုပ်ဆောင်မှုကို ပံ့ပိုးပေးသည်။

လုပ်ဆောင်နေစဉ်တွင်၊ skbtrace utility သည် Linux network stack နှင့် network sockets များနှင့်ဆက်စပ်သော လုပ်ဆောင်မှုများ၏လုပ်ဆောင်မှုအချိန်ကို dynamically ခြေရာခံပြီး ခွဲခြမ်းစိတ်ဖြာသည့်အဆင့်မြင့် BPFtrace ဘာသာစကားဖြင့် script များကိုထုတ်ပေးပါသည်။ ထို့နောက် script များကို eBPF လျှောက်လွှာပုံစံသို့ ဘာသာပြန်ပြီး kernel အဆင့်တွင် လုပ်ဆောင်သည်။

skbtrace ၏ တိကျသောစွမ်းရည်များထဲတွင်၊ အဝင်နှင့်အထွက် ကွန်ရက်ကြားခံများကြား packet များ ပေးပို့သည့်အချိန်၊ SYN လက်ခံရရှိခြင်းမှ FIN/RST ရောက်ရှိလာခြင်းအထိ TCP ချိတ်ဆက်မှု၏ သက်တမ်း၊ မတူညီသော packet လုပ်ငန်းစဉ်များအကြား နှောင့်နှေးမှုများ၊ TCP ချိတ်ဆက်မှုကို ညှိနှိုင်းရန်အတွက် မှတ်သားထားသည်။ Skbtrace သည် အခြား packets များတွင် ထုပ်ပိုးထားသော်လည်း၊ TCP ပက်ကေ့ဂျ်များ ပြန်လည်ပေးပို့ခြင်းကို သိရှိရန်အတွက်လည်း အသုံးပြုနိုင်ပြီး၊ kfree_skb ကို အခမဲ့ memory သို့ kfree_skb ဟုခေါ်ဆိုခြင်းကဲ့သို့သော kfree_skb ဟုခေါ်သည့် မှတ်ဉာဏ်လွတ်ရန် tcpdump utility ၏ ရိုးရှင်းသော analogue တစ်ခုအနေဖြင့် လုပ်ဆောင်နိုင်သည်။ အထုပ်တွေကို လွှင့်ပစ်တဲ့အခါ။

source: opennet.ru

မှတ်ချက် Add