การเพิ่มโหนดให้กับโทโพโลยี Skydive ด้วยตนเองผ่านไคลเอนต์ Skydive

Skydive เป็นโทโพโลยีเครือข่ายแบบเรียลไทม์แบบโอเพ่นซอร์สและตัววิเคราะห์โปรโตคอล โดยมีจุดมุ่งหมายเพื่อให้มีวิธีที่ครอบคลุมในการทำความเข้าใจสิ่งที่เกิดขึ้นในโครงสร้างพื้นฐานเครือข่าย

เพื่อทำให้คุณสนใจ ฉันจะให้ภาพหน้าจอเกี่ยวกับ Skydive สองสามภาพแก่คุณ ด้านล่างจะมีโพสต์เกี่ยวกับ Skydive

การเพิ่มโหนดให้กับโทโพโลยี Skydive ด้วยตนเองผ่านไคลเอนต์ Skydive

การเพิ่มโหนดให้กับโทโพโลยี Skydive ด้วยตนเองผ่านไคลเอนต์ Skydive

โพสต์ "ข้อมูลเบื้องต้นเกี่ยวกับ skydive.network» บนฮาเบร

Skydive แสดงโทโพโลยีเครือข่ายโดยรับกิจกรรมเครือข่ายจากตัวแทน Skydive คุณเคยสงสัยบ้างไหมว่าจะเพิ่มหรือแสดงในส่วนประกอบเครือข่ายไดอะแกรมโทโพโลยีที่อยู่นอกเครือข่ายตัวแทน Skydive หรือออบเจ็กต์ที่ไม่ใช่เครือข่าย เช่น TOR ที่จัดเก็บข้อมูล ฯลฯ ได้อย่างไร ไม่ต้องกังวลอีกต่อไปด้วย Node Rule API

ตั้งแต่เวอร์ชัน 0.20 Skydive มี Node Rule API ที่สามารถใช้เพื่อสร้างโหนดและ Edge ใหม่ และเพื่ออัปเดตข้อมูลเมตาของโหนดที่มีอยู่ API กฎของโหนดแบ่งออกเป็น XNUMX API ได้แก่ API กฎของโหนดและ API กฎของ Edge Node Rule API ใช้เพื่อสร้างโหนดใหม่และอัปเดตข้อมูลเมตาของโหนดที่มีอยู่ Edge Rule API ใช้เพื่อสร้างขอบเขตระหว่างสองโหนด กล่าวคือ เชื่อมต่อสองโหนด

ในบล็อกนี้ เราจะเห็นกรณีการใช้งานสองกรณี หนึ่งในนั้นคือส่วนประกอบเครือข่ายที่ไม่ได้เป็นส่วนหนึ่งของเครือข่าย skydive ตัวเลือกที่สองคือส่วนประกอบที่ไม่ใช่เครือข่าย ก่อนหน้านั้น เราจะดูวิธีพื้นฐานบางประการในการใช้ Topology Rules API

การสร้างโหนด Skydive

ในการสร้างโหนด คุณต้องระบุชื่อโหนดที่ไม่ซ้ำกันและประเภทโหนดที่ถูกต้อง คุณยังสามารถระบุตัวเลือกเพิ่มเติมได้

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

หากต้องการอัปเดตข้อมูลเมตาของโหนดที่มีอยู่ คุณต้องจัดเตรียมแบบสอบถาม 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')"
}

การสร้าง Skydive Edge

ในการสร้าง Edge คุณต้องระบุโหนดต้นทางและปลายทางและประเภทลิงก์ของ Edge ในการสร้างโหนดลูก ค่าประเภทลิงก์จะต้องเป็นเจ้าของ ในทำนองเดียวกัน หากต้องการสร้างประเภทลิงก์ 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 พร้อมข้อมูลเมตาที่เป็นประโยชน์

เราเพียงแค่ต้องสร้างกฎโหนดเพื่อเพิ่มอุปกรณ์ลงในโทโพโลยี เราสามารถเพิ่มข้อมูลเมตาของอุปกรณ์เป็นส่วนหนึ่งของคำสั่ง create หรือสร้างคำสั่งกฎโหนดอัปเดตตั้งแต่หนึ่งคำสั่งขึ้นไปในภายหลัง

รันคำสั่งกฎโฮสต์ต่อไปนี้เพื่อเพิ่มอุปกรณ์เก็บข้อมูลลงในไดอะแกรมทอพอโลยี

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 ด้วยตนเองผ่านไคลเอนต์ Skydive

กรณีการใช้งานครั้งที่สอง

ในกรณีนี้ เราจะดูวิธีการเพิ่มอุปกรณ์เครือข่ายที่ไม่ได้เป็นส่วนหนึ่งของเครือข่าย skydive ลองดูตัวอย่างนี้ เรามีเจ้าหน้าที่ดิ่งพสุธาสองคนที่ทำงานบนโฮสต์สองแห่งที่แตกต่างกัน เพื่อเชื่อมต่อโฮสต์ทั้งสองนี้ เราจำเป็นต้องมีสวิตช์ TOR แม้ว่าเราจะบรรลุเป้าหมายนี้ได้ด้วยการกำหนดโหนดโครงสร้างและลิงก์ในไฟล์การกำหนดค่า มาดูกันว่าเราจะทำสิ่งเดียวกันนี้ได้อย่างไรโดยใช้ Topology Rules API

หากไม่มีสวิตช์ TOR เอเจนต์ทั้งสองจะปรากฏเป็นสองโหนดที่แตกต่างกันโดยไม่มีลิงก์ใดๆ ดังที่แสดงในภาพด้านล่าง

การเพิ่มโหนดให้กับโทโพโลยี Skydive ด้วยตนเองผ่านไคลเอนต์ Skydive

ตอนนี้รันคำสั่งกฎโฮสต์ต่อไปนี้เพื่อสร้างสวิตช์ TOR และพอร์ต

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 และโทโพโลยีจะมีลักษณะเหมือนภาพด้านล่าง

การเพิ่มโหนดให้กับโทโพโลยี Skydive ด้วยตนเองผ่านไคลเอนต์ Skydive

ตอนนี้ให้รันคำสั่ง Edge Rule ต่อไปนี้เพื่อสร้างการเชื่อมต่อระหว่างสวิตช์ TOR, พอร์ต 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"

รันคำสั่งต่อไปนี้เพื่อสร้างลิงก์ระหว่างพอร์ตสวิตช์ TOR 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 ถูกสร้างขึ้นระหว่างสวิตช์ TOR และพอร์ต เช่นเดียวกับการเชื่อมโยงเลเยอร์ 2 ระหว่างเอเจนต์และพอร์ต ตอนนี้โทโพโลยีสุดท้ายจะมีลักษณะเหมือนภาพด้านล่าง

การเพิ่มโหนดให้กับโทโพโลยี Skydive ด้วยตนเองผ่านไคลเอนต์ Skydive

ขณะนี้โฮสต์/เอเจนต์ทั้งสองเชื่อมต่อกันอย่างถูกต้องแล้ว และคุณสามารถทดสอบการเชื่อมต่อหรือสร้างการจับเส้นทางที่สั้นที่สุดระหว่างทั้งสองโฮสต์ได้

ป.ล. ลิงค์ไปที่ โพสต์ต้นฉบับ

เรากำลังมองหาผู้ที่สามารถเขียนโพสต์เกี่ยวกับคุณสมบัติอื่นๆ ของ Skydive ได้
แชทโทรเลข ผ่านทาง skydive.network

ที่มา: will.com

เพิ่มความคิดเห็น