Skydive کلائنٹ کے ذریعے دستی طور پر Skydive ٹوپولوجی میں نوڈ شامل کرنا

Skydive ایک اوپن سورس، ریئل ٹائم نیٹ ورک ٹوپولوجی اور پروٹوکول تجزیہ کار ہے۔ اس کا مقصد نیٹ ورک کے بنیادی ڈھانچے میں کیا ہو رہا ہے اسے سمجھنے کا ایک جامع طریقہ فراہم کرنا ہے۔

آپ کی دلچسپی کے لیے، میں آپ کو Skydive کے بارے میں چند اسکرین شاٹس دوں گا۔ ذیل میں Skydive کے تعارف پر ایک پوسٹ ہوگی۔

Skydive کلائنٹ کے ذریعے دستی طور پر Skydive ٹوپولوجی میں نوڈ شامل کرنا

Skydive کلائنٹ کے ذریعے دستی طور پر Skydive ٹوپولوجی میں نوڈ شامل کرنا

پوسٹ "skydive.network کا تعارف» Habré پر۔

Skydive Skydive ایجنٹس سے نیٹ ورک ایونٹس وصول کر کے نیٹ ورک ٹوپولوجی دکھاتا ہے۔ کیا آپ نے کبھی سوچا ہے کہ ٹوپولوجی ڈایاگرام نیٹ ورک کے اجزاء جو Skydive ایجنٹ نیٹ ورک سے باہر ہیں یا نان نیٹ ورک اشیاء جیسے TOR، ڈیٹا اسٹوریج وغیرہ میں شامل یا ڈسپلے کرنے کا طریقہ۔ نوڈ رول API کی بدولت اب اس کے بارے میں فکر کرنے کی ضرورت نہیں ہے۔

ورژن 0.20 کے بعد سے، Skydive ایک نوڈ رول API فراہم کرتا ہے جسے نئے نوڈس اور ایجز بنانے اور موجودہ نوڈس کے میٹا ڈیٹا کو اپ ڈیٹ کرنے کے لیے استعمال کیا جا سکتا ہے۔ نوڈ رول API کو دو APIs میں تقسیم کیا گیا ہے: نوڈ رول API اور ایج رول API۔ نوڈ رول API کا استعمال ایک نیا نوڈ بنانے اور موجودہ نوڈ کے میٹا ڈیٹا کو اپ ڈیٹ کرنے کے لیے کیا جاتا ہے۔ ایج رول API کا استعمال دو نوڈس کے درمیان باؤنڈری بنانے کے لیے کیا جاتا ہے، یعنی دو نوڈس کو جوڑتا ہے۔

اس بلاگ میں ہم استعمال کے دو کیسز دیکھیں گے، جن میں سے ایک نیٹ ورک کا جزو ہے جو اسکائی ڈائیو نیٹ ورک کا حصہ نہیں ہے۔ دوسرا آپشن ایک نان نیٹ ورک جزو ہے۔ اس سے پہلے، ہم Topology Rules API کو استعمال کرنے کے کچھ بنیادی طریقے دیکھیں گے۔

اسکائی ڈائیو نوڈ بنانا

نوڈ بنانے کے لیے، آپ کو ایک منفرد نوڈ کا نام اور ایک درست نوڈ کی قسم فراہم کرنی ہوگی۔ آپ کچھ اضافی اختیارات بھی فراہم کر سکتے ہیں۔

skydive client node-rule create --action="create" --node-name="node1" --node-type="fabric" --name="node rule1"
{
  "UUID": "ea21c30f-cfaa-4f2d-693d-95159acb71ed",
  "Name": "node rule1",
  "Description": "",
  "Metadata": {
    "Name": "node1",
    "Type": "fabric"
  },
  "Action": "create",
  "Query": ""
}

اسکائی ڈائیو نوڈس میٹا ڈیٹا کو اپ ڈیٹ کریں۔

کسی موجودہ نوڈ کے میٹا ڈیٹا کو اپ ڈیٹ کرنے کے لیے، آپ کو ان نوڈس کو منتخب کرنے کے لیے ایک gremlin استفسار فراہم کرنا چاہیے جس پر آپ میٹا ڈیٹا کو اپ ڈیٹ کرنا چاہتے ہیں۔ آپ کی درخواست کے مطابق، آپ سنگل نوڈ رول کا استعمال کرتے ہوئے ایک یا زیادہ نوڈس کے میٹا ڈیٹا کو اپ ڈیٹ کر سکتے ہیں۔

skydive client node-rule create --action="update" --name="update rule" --query="G.V().Has('Name', 'node1')" --metadata="key1=val1, key2=val2"
{
  "UUID": "3e6c0e15-a863-4583-6345-715053ac47ce",
  "Name": "update rule",
  "Description": "",
  "Metadata": {
    "key1": "val1",
    "key2": "val2"
  },
  "Action": "update",
  "Query": "G.V().Has('Name', 'node1')"
}

اسکائی ڈائیو ایج بنانا

ایک کنارہ بنانے کے لیے، آپ کو منبع اور منزل کے نوڈس اور کنارے کے لنک کی قسم کی وضاحت کرنی ہوگی؛ چائلڈ نوڈ بنانے کے لیے، لنک کی قسم کی قدر ملکیت ہونی چاہیے؛ اسی طرح، ایک لنک کی قسم layer2 بنانے کے لیے، لنک کی قسم کی قدر ہونی چاہیے۔ تہہ 2 آپ دو نوڈس کے درمیان ایک سے زیادہ لنک بنا سکتے ہیں، لیکن لنک کی قسم مختلف ہونی چاہیے۔

skydive client edge-rule create --name="edge" --src="G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')" --dst="G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')" --relationtype="both"
{
  "UUID": "50fec124-c6d0-40c7-42a3-2ed8d5fbd410",
  "Name": "edge",
  "Description": "",
  "Src": "G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')",
  "Dst": "G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')",
  "Metadata": {
    "RelationType": "both"
  }
}

پہلا استعمال کیس

اس صورت میں، ہم دیکھیں گے کہ اسکائی ڈائیو ٹوپولوجی میں غیر نیٹ ورک ڈیوائس کو کیسے دکھایا جائے۔ آئیے غور کریں کہ ہمارے پاس ایک ڈیٹا گودام ہے جسے کچھ مفید میٹا ڈیٹا کے ساتھ اسکائی ڈائیو ٹوپولوجی ڈایاگرام میں ظاہر کرنے کی ضرورت ہے۔

ٹوپولوجی میں ڈیوائس کو شامل کرنے کے لیے ہمیں صرف نوڈ رول بنانے کی ضرورت ہے۔ ہم تخلیق کمانڈ کے حصے کے طور پر ڈیوائس میٹا ڈیٹا شامل کر سکتے ہیں، یا بعد میں ایک یا زیادہ اپ ڈیٹ نوڈ رول کمانڈز بنا سکتے ہیں۔

ٹاپولوجی ڈایاگرام میں اسٹوریج ڈیوائس شامل کرنے کے لیے درج ذیل ہوسٹ رول کمانڈ کو چلائیں۔

skydive client node-rule create --action="create" --node-name="sda" --node-type="persistentvolume" --metadata="DEVNAME=/dev/sda,DEVTYPE=disk,ID.MODEL=SD_MMC, ID.MODEL ID=0316, ID.PATH TAG=pci-0000_00_14_0-usb-0_3_1_0-scsi-0_0_0_0, ID.SERIAL SHORT=20120501030900000, ID.VENDOR=Generic-, ID.VENDOR ID=0bda, MAJOR=8, MINOR=0, SUBSYSTEM=block, USEC_INITIALIZED=104393719727"

تخلیق شدہ نوڈ کو میزبان نوڈ کے ساتھ منسلک کرنے کے لیے ایج رول کے نیچے کمانڈ چلائیں۔

skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"

مندرجہ بالا کمانڈز کے بعد، اب آپ اسکائی ڈائیو ٹوپولوجی ڈائیگرام میں نظر آنے والے ڈیوائس کو دیے گئے میٹا ڈیٹا کے ساتھ دیکھ سکتے ہیں جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے۔

Skydive کلائنٹ کے ذریعے دستی طور پر Skydive ٹوپولوجی میں نوڈ شامل کرنا

دوسرا استعمال کیس

اس صورت میں ہم دیکھیں گے کہ نیٹ ورک ڈیوائس کو کیسے شامل کیا جائے جو اسکائی ڈائیو نیٹ ورک کا حصہ نہیں ہے۔ آئیے اس مثال کو دیکھتے ہیں۔ ہمارے پاس دو اسکائی ڈائیو ایجنٹ دو مختلف میزبانوں پر چل رہے ہیں، ان دو میزبانوں کو جوڑنے کے لیے ہمیں TOR سوئچ کی ضرورت ہے۔ اگرچہ ہم اسے کنفیگریشن فائل میں سٹرکچر نوڈس اور لنکس کی وضاحت کر کے حاصل کر سکتے ہیں، آئیے دیکھتے ہیں کہ ہم Topology Rules API کا استعمال کرتے ہوئے ایسا کیسے کر سکتے ہیں۔

TOR سوئچ کے بغیر، دونوں ایجنٹ بغیر کسی لنک کے دو مختلف نوڈس کے طور پر ظاہر ہوں گے، جیسا کہ ذیل کی تصویر میں دکھایا گیا ہے۔

Skydive کلائنٹ کے ذریعے دستی طور پر Skydive ٹوپولوجی میں نوڈ شامل کرنا

اب ٹی او آر سوئچ اور پورٹس بنانے کے لیے درج ذیل ہوسٹ رولز کمانڈز کو چلائیں۔

skydive client node-rule create --node-name="TOR" --node-type="fabric" --action="create"
skydive client node-rule create --node-name="port1" --node-type="port" --action="create"
skydive client node-rule create --node-name="port2" --node-type="port" --action="create"

جیسا کہ آپ دیکھ سکتے ہیں، ٹی او آر سوئچ اور پورٹس بنائے گئے ہیں اور اسکائی ڈائیو ٹوپولوجی میں شامل کر دیے گئے ہیں، اور ٹاپولوجی اب نیچے دی گئی تصویر کی طرح نظر آئے گی۔

Skydive کلائنٹ کے ذریعے دستی طور پر Skydive ٹوپولوجی میں نوڈ شامل کرنا

اب ٹی او آر سوئچ، پورٹ 1 اور ہوسٹ 1 کے پبلک انٹرفیس کے درمیان کنکشن بنانے کے لیے درج ذیل ایج رول کمانڈز کو چلائیں۔

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('TID', '372c254d-bac9-50c2-4ca9-86dcc6ce8a57')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"

ٹی او آر سوئچ پورٹ 2 اور ہوسٹ 2 پبلک انٹرفیس کے درمیان لنک بنانے کے لیے درج ذیل کمانڈز چلائیں۔

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('TID', '50037073-7862-5234-4996-e58cc067c69c')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"

ملکیت اور لیئر 2 ایسوسی ایشنز اب ٹی او آر سوئچ اور پورٹ کے ساتھ ساتھ ایجنٹوں اور بندرگاہوں کے درمیان لیئر 2 ایسوسی ایشنز کے درمیان بنائی گئی ہیں۔ اب فائنل ٹوپولوجی نیچے دی گئی تصویر کی طرح نظر آئے گی۔

Skydive کلائنٹ کے ذریعے دستی طور پر Skydive ٹوپولوجی میں نوڈ شامل کرنا

اب دونوں میزبان/ایجنٹ صحیح طریقے سے جڑے ہوئے ہیں اور آپ کنکشن کی جانچ کر سکتے ہیں یا دونوں میزبانوں کے درمیان مختصر ترین راستہ کیپچر بنا سکتے ہیں۔

پی ایس کا لنک اصل پوسٹ

ہم ایسے لوگوں کی تلاش کر رہے ہیں جو اسکائی ڈائیو کی دیگر خصوصیات کے بارے میں پوسٹس لکھ سکیں۔
ٹیلیگرام چیٹ skydive.network کے ذریعے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں