క్లౌడ్‌ఫ్లేర్ XDP సబ్‌సిస్టమ్ ఆధారంగా xdpcap అనే ట్రాఫిక్ ఎనలైజర్‌ను ప్రచురించింది

క్లౌడ్‌ఫ్లేర్ కంపెనీ సమర్పించారు ఓపెన్ ప్రాజెక్ట్ xdpcap, tcpdump లాంటి నెట్‌వర్క్ ప్యాకెట్ ఎనలైజర్ అభివృద్ధి చేయబడుతోంది, ఇది సబ్‌సిస్టమ్ ఆధారంగా నిర్మించబడింది XDP (eXpress డేటా పాత్). ప్రాజెక్ట్ కోడ్ గో మరియులో వ్రాయబడింది ద్వారా పంపిణీ చేయబడింది BSD లైసెన్స్ కింద. ప్రాజెక్ట్ కూడా సిద్ధం Go అప్లికేషన్ల నుండి eBPF ట్రాఫిక్ హ్యాండ్లర్‌లను బైండింగ్ చేయడానికి లైబ్రరీ.

xdpcap యుటిలిటీ tcpdump/libpcap ఫిల్టరింగ్ ఎక్స్‌ప్రెషన్‌లకు అనుకూలంగా ఉంటుంది మరియు అదే హార్డ్‌వేర్‌పై గణనీయంగా ఎక్కువ ట్రాఫిక్‌ను ప్రాసెస్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. Linux కెర్నల్ XDP సబ్‌సిస్టమ్‌ని ఉపయోగించే ఫిల్టరింగ్, DoS ప్రొటెక్షన్ మరియు లోడ్ బ్యాలెన్సింగ్ సిస్టమ్‌లు వంటి సాధారణ tcpdump వర్తించని పరిసరాలలో డీబగ్గింగ్ కోసం Xdpcap కూడా ఉపయోగించబడుతుంది, ఇది Linux కెర్నల్ నెట్‌వర్కింగ్ స్టాక్ (tcpdump) ద్వారా ప్రాసెస్ చేయబడే ముందు ప్యాకెట్‌లను ప్రాసెస్ చేస్తుంది. XDP హ్యాండ్లర్ ద్వారా పడిపోయిన ప్యాకెట్లను చూడలేదు).

eBPF మరియు XDP సబ్‌సిస్టమ్‌లను ఉపయోగించడం ద్వారా అధిక పనితీరు సాధించబడుతుంది. eBPF అనేది Linux కెర్నల్‌లో నిర్మించిన బైట్‌కోడ్ ఇంటర్‌ప్రెటర్, ఇది ఇన్‌కమింగ్/అవుట్‌గోయింగ్ ప్యాకెట్‌లను ఫార్వార్డ్ చేయడం లేదా విస్మరించడం గురించి నిర్ణయాలతో అధిక-పనితీరు గల హ్యాండ్లర్‌లను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తుంది. JIT కంపైలర్‌ని ఉపయోగించి, eBPF బైట్‌కోడ్ మెషిన్ సూచనలలోకి అనువదించబడుతుంది మరియు స్థానిక కోడ్ పనితీరుతో అమలు చేయబడుతుంది. XDP (eXpress Data Path) సబ్‌సిస్టమ్ eBPFని నెట్‌వర్క్ డ్రైవర్ స్థాయిలో BPF ప్రోగ్రామ్‌లను అమలు చేయగల సామర్థ్యంతో పూర్తి చేస్తుంది, DMA ప్యాకెట్ బఫర్‌కు నేరుగా యాక్సెస్‌కు మద్దతు ఇస్తుంది మరియు నెట్‌వర్క్ స్టాక్ ద్వారా skbuff బఫర్ కేటాయించబడే ముందు దశలో పని చేస్తుంది.

tcpdump వలె, xdpcap యుటిలిటీ మొదట ప్రామాణిక libpcap లైబ్రరీని ఉపయోగించి అధిక-స్థాయి ట్రాఫిక్ ఫిల్టరింగ్ నియమాలను క్లాసిక్ BPF ప్రాతినిధ్యం (cBPF)లోకి అనువదిస్తుంది, ఆపై వాటిని కంపైలర్ ఉపయోగించి eBPF రొటీన్‌ల రూపంలోకి మారుస్తుంది. cbpfc, LLVM/క్లాంగ్ డెవలప్‌మెంట్‌లను ఉపయోగించడం. అవుట్‌పుట్ వద్ద, ట్రాఫిక్ సమాచారం ప్రామాణిక pcap ఆకృతిలో సేవ్ చేయబడుతుంది, ఇది tcpdump మరియు ఇప్పటికే ఉన్న ఇతర ట్రాఫిక్ ఎనలైజర్‌లలో తదుపరి అధ్యయనం కోసం xdpcapలో సిద్ధం చేయబడిన ట్రాఫిక్ డంప్‌ను ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, DNS ట్రాఫిక్ సమాచారాన్ని క్యాప్చర్ చేయడానికి, "tcpdump ip మరియు udp పోర్ట్ 53" కమాండ్‌ని ఉపయోగించకుండా, మీరు "xdpcap /path/to/hook catchept.pcap 'ip మరియు udp పోర్ట్ 53′"ని అమలు చేసి, ఆపై క్యాప్చర్‌ని ఉపయోగించవచ్చు. .pcap ఫైల్, ఉదా. "tcpdump -r" కమాండ్‌తో లేదా వైర్‌షార్క్‌లో.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి