منصوبے کے بارے میں
pktc ایک CLI ٹول اور ٹری-ٹائلنگ کمپائلر ہے جو آپ کو نیٹ ورک وائر پر توقع کی جانے والی پیکٹ ساخت بیان کرنے کی اجازت دیتا ہے اور خودکار طور پر متعلقہ لینکس کرنل ٹنل ڈیوائس کنفیگریشن اخذ کرتا ہے۔
نیٹ پلین، سسٹم ڈی-نیٹ ورکڈ، اور نیٹ ورک مینیجر کی طرح پہلے ڈیوائس کی قسم کا نام دے کر پیرامیٹرز بھرنا، pktc مخالف طریقہ اختیار کرتا ہے: آپ ان کیپسولیشن اسٹیک کو ایک درخت کے طور پر بیان کرتے ہیں، اور ٹول یہ طے کرتا ہے کہ کون سا کرنل اصل اسے پیدا کرتا ہے۔
بنیادی خیال ٹری ٹائلنگ سے ہدایت انتخاب ہے۔ ایک ان کیپسولیشن اسٹیک ایک رگڑ میں سیدھا ہو جاتا ہے — پروٹوکول تہوں کی خطی فہرست — جسے پھر ڈیوائس کے شکل والے ٹائلز سے ڈھانپ دیا جاتا ہے۔ یہ تکنیک اس طرح سے ملتی ہے کہ کمپائلر بیک اینڈس مشین ہدایات منتخب کرتے ہیں، سوائے اس کے کہ ٹائلز لینکس ٹنل ڈیوائسز ہیں اور خارج شدہ کوڈ iproute2 کمانڈز ہیں۔
مددگار ٹائلز میں IPIP (ipv4 · ipv4)، GRE (ipv4 · gre · ipv4)، GRE ٹیپ (ipv4 · gre · ethernet)، اور VXLAN (ipv4 · udp · vxlan · ethernet) شامل ہیں۔ نیسٹڈ ٹنلز قدرتی طور پر متعدد ٹائلز کے طور پر مرکب بناتے ہیں بغیر خصوصی منطق کے۔
اہم کمانڈز:
- pktc lower — ڈیوائس بنانے کے لیے ip link / ip addr کمانڈز چھاپتا ہے
- pktc mirror — دور آخر کے لیے متوازن کنفیگریشن چھاپتا ہے
- pktc expect — تصدیق کے لیے اندرونی ٹریفک کیسا نظر آنا چاہیے وہ چھاپتا ہے
- pktc parse — ایک تفصیل فائل سے ان کیپسولیشن سپائن چھاپتا ہے
ایک ممتاز خصوصیت لوپ بند کرنے والا ٹیسٹ موڈ ہے: make netns ایک veth جوڑے پر دو نیٹ ورک نیم اسپیسز بناتا ہے، دونوں سروں کو اسی تفصیل سے ترتیب دیتا ہے، ٹریفک بھیجتا ہے، اور اندرونی کو پکڑتا ہے۔ ایک سنہری ٹیسٹ ثابت کرتا ہے کہ ارادہ کمانڈز خارج ہوئے؛ ایک کرنل ٹیسٹ ثابت کرتا ہے کہ ڈیوائس بنائی گئی؛ پکڑ ثابت کرتی ہے کہ ڈیوائس وہ لے جاتی ہے جسے درخت نے دعویٰ کیا تھا۔
go install github.com/vinodhalaharvi/pktc/cmd/pktc@latest کے ذریعے انسٹال کریں یا make check، make demo، اور make netns کے ساتھ ماخذ سے تعمیر کریں۔
منصوبہ ابتدائی مرحلے میں ہے جس میں چار ٹائلز اور ایک بیک اینڈ ہے۔ Geneve، VLAN، XFRM، اور WireGuard کا عمدہ طور پر اضافہ نہیں کیا گیا کیونکہ ان کے کرنل ماڈیولز ترقی کے دوران دستیاب نہیں تھے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.