Cloudflare သည် XDP စနစ်ခွဲကို အခြေခံ၍ လမ်းကြောင်းခွဲခြမ်းစိတ်ဖြာသည့် xdpcap ကိုထုတ်ဝေခဲ့သည်။

Cloudflare ကုမ္ပဏီ တင်ဆက် စီမံကိန်းကိုဖွင့်ပါ။ xdpcaptcpdump နှင့်ဆင်တူသော network packet ခွဲခြမ်းစိတ်ဖြာသူအား တီထွင်ထားသည့်အထဲမှာ၊ စနစ်ခွဲ၏အခြေခံဖြင့်တည်ဆောက်ထားသည်။ XDP (eXpress Data Path)။ ပရောဂျက်ကုဒ်ကို Go and ဖြင့်ရေးထားသည်။ ဖြန့်ဝေသည် BSD လိုင်စင်အောက်တွင်။ ပရောဂျက်လည်း ပါတယ်။ ပြင်ဆင် Go အပလီကေးရှင်းများမှ eBPF အသွားအလာကိုင်တွယ်သူများကို စည်းနှောင်ရန်အတွက် စာကြည့်တိုက်။

xdpcap utility သည် tcpdump/libpcap filtering expressions များနှင့် သဟဇာတဖြစ်ပြီး တူညီသော hardware တွင် သိသိသာသာ ပိုကြီးသော traffic များကို လုပ်ဆောင်နိုင်စေပါသည်။ Xdpcap သည် ပုံမှန် tcpdump ကို အသုံးမပြုနိုင်သော ပတ်ဝန်းကျင်များတွင်လည်း အသုံးပြုနိုင်ပြီး၊ စစ်ထုတ်ခြင်း၊ DoS ကာကွယ်ခြင်းနှင့် Load Balancing စနစ်များကို Linux kernel XDP စနစ်ခွဲကို အသုံးပြုသည့် ပက်ကေ့ဂျ်များကို Linux kernel networking stack (tcpdump) မှ မလုပ်ဆောင်မီ ၎င်းတို့ကို လုပ်ဆောင်ပေးသည့် ချိန်ခွင်လျှာစနစ် (tcpdump XDP handler မှချထားသည့် packets များကိုမတွေ့ပါ။)

eBPF နှင့် XDP စနစ်ခွဲများကို အသုံးပြုခြင်းဖြင့် မြင့်မားသောစွမ်းဆောင်ရည်ကို ရရှိသည်။ eBPF သည် Linux kernel တွင် တည်ဆောက်ထားသော bytecode စကားပြန်တစ်ခုဖြစ်ပြီး ၎င်းတို့ကို ထပ်ဆင့်ပို့ခြင်း သို့မဟုတ် စွန့်ပစ်ခြင်းဆိုင်ရာ ဆုံးဖြတ်ချက်များနှင့်အတူ အဝင်/အထွက် packet များ၏ စွမ်းဆောင်ရည်မြင့်မားသော ကိုင်တွယ်သူများကို ဖန်တီးခွင့်ပြုသည်။ JIT compiler ကို အသုံးပြု၍ eBPF bytecode ကို စက်ညွှန်ကြားချက်များအဖြစ် ပျံသန်းပြီး မူရင်းကုဒ်၏ စွမ်းဆောင်ရည်ဖြင့် လုပ်ဆောင်ပါသည်။ XDP (eXpress Data Path) စနစ်ခွဲသည် ကွန်ရက်ဒရိုင်ဘာအဆင့်တွင် BPF ပရိုဂရမ်များကို လည်ပတ်နိုင်စွမ်းနှင့် eBPF အား DMA ပက်ကက်ကြားခံသို့ တိုက်ရိုက်ဝင်ရောက်ခွင့်အတွက် ပံ့ပိုးပေးကာ skbuff ကြားခံကို ကွန်ရက်စတက်မှ မခွဲဝေမီ အဆင့်တွင် လုပ်ဆောင်သည်။

tcpdump ကဲ့သို့ပင်၊ xdpcap utility သည် high-level traffic filtering rules များကို standard libpcap စာကြည့်တိုက်ကို အသုံးပြု၍ classic BPF ကိုယ်စားပြုမှု (cBPF) သို့ ဘာသာပြန်ပေးကာ ၎င်းတို့ကို compiler သုံးပြီး eBPF လုပ်ရိုးလုပ်စဉ်ပုံစံသို့ ပြောင်းပေးသည် cbpfcLLVM/Clang တိုးတက်မှုများကို အသုံးပြုခြင်း။ အထွက်တွင်၊ ယာဉ်အသွားအလာအချက်အလက်ကို tcpdump နှင့် အခြားရှိပြီးသား traffic ခွဲခြမ်းစိတ်ဖြာသူများတွင် နောက်ဆက်တွဲလေ့လာမှုအတွက် xdpcap တွင် ပြင်ဆင်ထားသော traffic dump ကို အသုံးပြုရန် ခွင့်ပြုသည့် ပုံမှန် pcap ဖော်မတ်တွင် သိမ်းဆည်းထားသည်။ ဥပမာအားဖြင့်၊ DNS အသွားအလာ အချက်အလက်ကို ဖမ်းယူရန် "tcpdump ip နှင့် udp port 53" အမိန့်ကို အသုံးပြုမည့်အစား၊ သင်သည် "xdpcap /path/to/hook capture.pcap 'ip and udp port 53′" ကို အသုံးပြု၍ ဖမ်းယူမှုကို အသုံးပြုနိုင်သည်။ .pcap ဖိုင်၊ ဥပမာ "tcpdump -r" သို့မဟုတ် Wireshark တွင်။

source: opennet.ru

မှတ်ချက် Add