Skydive client မှတစ်ဆင့် Skydive topology သို့ node တစ်ခုကို ကိုယ်တိုင်ထည့်ခြင်း။

Skydive သည် open source၊ real-time network topology နှင့် protocol ခွဲခြမ်းစိတ်ဖြာသူဖြစ်သည်။ ၎င်းသည် ကွန်ရက်အခြေခံအဆောက်အအုံတစ်ခုတွင် ဖြစ်ပျက်နေသည့်အရာများကို နားလည်ရန် ကျယ်ကျယ်ပြန့်ပြန့်သောနည်းလမ်းကို ပေးစွမ်းရန် ရည်ရွယ်သည်။

မင်းကိုစိတ်ဝင်စားဖို့ Skydive အကြောင်း စခရင်ရှော့အချို့ကို ငါပေးမယ်။ အောက်တွင် Skydive အကြောင်းကို နိဒါန်းတစ်ပုဒ်တင်ပါမည်။

Skydive client မှတစ်ဆင့် Skydive topology သို့ node တစ်ခုကို ကိုယ်တိုင်ထည့်ခြင်း။

Skydive client မှတစ်ဆင့် Skydive topology သို့ node တစ်ခုကို ကိုယ်တိုင်ထည့်ခြင်း။

“ပို့စ်၊skydive.network ကို မိတ်ဆက်ခြင်း။» Habré တွင်

Skydive သည် Skydive အေးဂျင့်များထံမှ ကွန်ရက်ဖြစ်ရပ်များကို လက်ခံရရှိခြင်းဖြင့် ကွန်ရက် topology ကိုပြသသည်။ Skydive အေးဂျင့်ကွန်ရက်အပြင်ဘက်ရှိ သို့မဟုတ် TOR၊ ဒေတာသိုလှောင်မှုစသည်ဖြင့် ကွန်ရက်မဟုတ်သော အရာဝတ္ထုများဖြစ်သည့် topology diagram တွင် ကွန်ရက်အစိတ်အပိုင်းများကို ပေါင်းထည့်ရန် သို့မဟုတ် ပြသရန် တွေးဖူးပါသလား။ Node rule API ကြောင့် ၎င်းအတွက် စိတ်ပူစရာမလိုတော့ပါ။

ဗားရှင်း 0.20 မှစတင်၍ Skydive သည် node များနှင့် edges အသစ်များဖန်တီးရန်နှင့် ရှိပြီးသား node များ၏ metadata ကို update လုပ်ရန်အတွက် Node rule API ကို ပံ့ပိုးပေးပါသည်။ Node rule API ကို API နှစ်ခု ခွဲခြားထားသည်- node rule API နှင့် edge rule API တို့။ Node Rule API ကို node အသစ်တစ်ခုဖန်တီးပြီး ရှိပြီးသား node တစ်ခု၏ metadata ကို update လုပ်ရန် အသုံးပြုပါသည်။ edge rule API ကို node နှစ်ခုကြား နယ်နိမိတ်တစ်ခုဖန်တီးရန် အသုံးပြုသည်။ node နှစ်ခုကို ချိတ်ဆက်သည်။

ဤဘလော့ဂ်တွင် ကျွန်ုပ်တို့သည် skydive network ၏မပါဝင်သည့် ကွန်ရက်အစိတ်အပိုင်းဖြစ်သည့် အသုံးပြုမှုကိစ္စနှစ်ခုကို တွေ့ရပါမည်။ ဒုတိယရွေးချယ်မှုမှာ ကွန်ရက်မဟုတ်သော အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ ယင်းမတိုင်မီတွင်၊ Topology Rules API ကိုအသုံးပြုရန် အခြေခံနည်းလမ်းအချို့ကို လေ့လာပါမည်။

Skydive Node ဖန်တီးခြင်း။

node တစ်ခုဖန်တီးရန်၊ သင်သည် သီးခြား node အမည်နှင့် မှန်ကန်သော node အမျိုးအစားကို ပေးရပါမည်။ နောက်ထပ်ရွေးချယ်စရာအချို့ကိုလည်း ပေးနိုင်ပါသည်။

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": ""
}

Skydive Nodes မက်တာဒေတာကို အပ်ဒိတ်လုပ်ပါ။

ရှိပြီးသား node တစ်ခု၏ မက်တာဒေတာကို အပ်ဒိတ်လုပ်ရန်၊ သင်သည် မက်တာဒေတာကို အပ်ဒိတ်လုပ်လိုသော node များကို ရွေးချယ်ရန် gremlin query တစ်ခု ပေးရပါမည်။ သင့်တောင်းဆိုချက်အရ၊ node စည်းမျဉ်းတစ်ခုတည်းကို အသုံးပြု၍ node တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော node များ၏ metadata ကို update လုပ်နိုင်ပါသည်။

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')"
}

Skydive Edge ဖန်တီးခြင်း။

အစွန်းတစ်ခုဖန်တီးရန်၊ ရင်းမြစ်နှင့် ဦးတည်ရာ ဆုံမှတ်များနှင့် အစွန်း၏ လင့်ခ်အမျိုးအစားကို သတ်မှတ်ရပါမည်၊ ကလေး node တစ်ခုဖန်တီးရန်၊ လင့်ခ်အမျိုးအစားတန်ဖိုးသည် ပိုင်ဆိုင်မှုဖြစ်ရမည်၊ အလားတူပင်၊ လင့်အမျိုးအစား layer2 တစ်ခုကို ဖန်တီးရန်၊ လင့်အမျိုးအစားတန်ဖိုးသည် ဖြစ်ရပါမည်။ အလွှာ၂။ node နှစ်ခုကြားတွင် လင့်ခ်တစ်ခုထက်ပို၍ ဖန်တီးနိုင်သော်လည်း လင့်ခ်အမျိုးအစားသည် ကွဲပြားရပါမည်။

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"
  }
}

ပထမဆုံးအသုံးပြုတဲ့ case ပါ။

ဤကိစ္စတွင်၊ ကျွန်ုပ်တို့သည် skydive topology တွင် ကွန်ရက်မဟုတ်သောစက်ပစ္စည်းကို မည်သို့ပြသရမည်ကို ကြည့်ရှုပါမည်။ ကျွန်ုပ်တို့တွင် အသုံးဝင်သော မက်တာဒေတာအချို့ပါသည့် skydive topology diagram တွင် ပြသရန်လိုအပ်သည့် ဒေတာသိုလှောင်ရုံတစ်ခုရှိကြောင်း သုံးသပ်ကြည့်ကြပါစို့။

စက်ပစ္စည်းကို topology တွင်ထည့်ရန် node စည်းမျဉ်းတစ်ခုဖန်တီးရန်သာလိုသည်။ ဖန်တီးမှု ကွပ်ကဲမှု၏ တစ်စိတ်တစ်ပိုင်းအဖြစ် စက်ပစ္စည်း မက်တာဒေတာကို ပေါင်းထည့်နိုင်သည်၊ သို့မဟုတ် နောက်ပိုင်းတွင် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော အပ်ဒိတ် node စည်းမျဉ်း ညွှန်ကြားချက်များကို ဖန်တီးနိုင်သည်။

သိုလှောင်မှုကိရိယာကို topology diagram သို့ထည့်ရန် အောက်ပါ host rule command ကိုဖွင့်ပါ။

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"

ဖန်တီးထားသော node ကို host node နှင့် ချိတ်ဆက်ရန် edge rule အောက်တွင်ရှိသော command ကို run ပါ။

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

အထက်ဖော်ပြပါအမိန့်များပြီးနောက်၊ အောက်ဖော်ပြပါပုံတွင်ပြထားသည့်အတိုင်း ပေးထားသောမက်တာဒေတာဖြင့် skydive topology diagram တွင်မြင်ရသော device ကို ယခုမြင်နိုင်ပါပြီ။

Skydive client မှတစ်ဆင့် Skydive topology သို့ node တစ်ခုကို ကိုယ်တိုင်ထည့်ခြင်း။

ဒုတိယအသုံးပြုမှုကိစ္စ

ဤအခြေအနေတွင် skydive network ၏အစိတ်အပိုင်းမဟုတ်သော ကွန်ရက်စက်ပစ္စည်းကို မည်သို့ထည့်ရမည်ကို ကျွန်ုပ်တို့တွေ့ရပါမည်။ ဒီဥပမာကိုကြည့်ရအောင်။ ကျွန်ုပ်တို့တွင် မတူညီသော host နှစ်ခုတွင် လုပ်ဆောင်နေသော skydive အေးဂျင့်နှစ်ခုရှိသည်၊ ဤ host နှစ်ခုကိုချိတ်ဆက်ရန်အတွက် TOR switch တစ်ခုလိုအပ်ပါသည်။ configuration file တစ်ခုတွင် တည်ဆောက်ပုံ ဆုံမှတ်များနှင့် လင့်ခ်များကို သတ်မှတ်ခြင်းဖြင့် ၎င်းကို အောင်မြင်နိုင်သော်လည်း Topology Rules API ကို အသုံးပြု၍ ကျွန်ုပ်တို့ မည်သို့လုပ်ဆောင်နိုင်သည်ကို ကြည့်ကြပါစို့။

TOR ခလုတ်မပါဘဲ၊ အောက်ဖော်ပြပါပုံတွင်ပြထားသည့်အတိုင်း လင့်ခ်များမပါဘဲ မတူညီသော node နှစ်ခုအဖြစ် ပေါ်လာပါမည်။

Skydive client မှတစ်ဆင့် Skydive topology သို့ node တစ်ခုကို ကိုယ်တိုင်ထည့်ခြင်း။

TOR ခလုတ်နှင့် ပို့တ်များကို ဖန်တီးရန်အတွက် ယခု အောက်ပါ Host Rules ညွှန်ကြားချက်များကို လုပ်ဆောင်ပါ။

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"

သင်တွေ့မြင်ရသည့်အတိုင်း TOR ခလုတ်နှင့် ဆိပ်ကမ်းများကို ဖန်တီးပြီး skydive topology သို့ ပေါင်းထည့်ထားပြီး topology သည် ယခုအောက်ပါပုံနှင့်တူပါမည်။

Skydive client မှတစ်ဆင့် Skydive topology သို့ node တစ်ခုကို ကိုယ်တိုင်ထည့်ခြင်း။

TOR switch၊ port 1 နှင့် host 1 ၏ အများသူငှာ အင်တာဖေ့စ်အကြား ချိတ်ဆက်မှုကို ဖန်တီးရန်အတွက် ယခု အောက်ပါ Edge Rule ညွှန်ကြားချက်များကို လုပ်ဆောင်ပါ။

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"

TOR switch port 2 နှင့် host 2 public interface အကြား လင့်ခ်တစ်ခုကို ဖန်တီးရန် အောက်ပါ command များကို လုပ်ဆောင်ပါ။

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"

ယခုအခါ ပိုင်ဆိုင်မှုနှင့် layer2 လင့်ခ်များကို TOR switch နှင့် port အကြား၊ အေးဂျင့်များနှင့် port များကြား layer2 လင့်ခ်များကို ဖန်တီးထားပါသည်။ ယခုနောက်ဆုံး topology သည်အောက်ပါပုံနှင့်တူလိမ့်မည်။

Skydive client မှတစ်ဆင့် Skydive topology သို့ node တစ်ခုကို ကိုယ်တိုင်ထည့်ခြင်း။

ယခု host/agent နှစ်ခုကို မှန်ကန်စွာချိတ်ဆက်ထားပြီး၊ သင်သည် ချိတ်ဆက်မှုကို စမ်းသပ်နိုင်သည် သို့မဟုတ် host နှစ်ခုကြားတွင် အတိုဆုံးလမ်းကြောင်းကို ဖန်တီးနိုင်သည်။

PS Link မှ မူရင်းပို့စ်

ကျွန်ုပ်တို့သည် အခြားသော Skydive အင်္ဂါရပ်များအကြောင်း ပို့စ်များရေးသားနိုင်သူများကို ရှာဖွေနေပါသည်။
Telegram chat skydive.network မှတဆင့်။

source: www.habr.com

မှတ်ချက် Add