Menambah nod pada topologi Skydive secara manual melalui klien Skydive

Skydive ialah sumber terbuka, topologi rangkaian masa nyata dan penganalisis protokol. Ia bertujuan untuk menyediakan cara yang komprehensif untuk memahami perkara yang berlaku dalam infrastruktur rangkaian.

Untuk menarik minat anda, saya akan memberikan anda beberapa tangkapan skrin tentang Skydive. Di bawah akan ada siaran tentang pengenalan kepada Skydive.

Menambah nod pada topologi Skydive secara manual melalui klien Skydive

Menambah nod pada topologi Skydive secara manual melalui klien Skydive

Siarkan "Pengenalan kepada skydive.networkΒ» pada HabrΓ©.

Skydive memaparkan topologi rangkaian dengan menerima acara rangkaian daripada ejen Skydive. Pernahkah anda terfikir cara untuk menambah atau memaparkan dalam komponen rangkaian gambar rajah topologi yang berada di luar rangkaian ejen Skydive atau objek bukan rangkaian seperti TOR, storan data, dll. Tidak perlu risau tentang itu lagi terima kasih kepada API peraturan Node .

Sejak versi 0.20, Skydive menyediakan API peraturan Nod yang boleh digunakan untuk mencipta nod dan tepi baharu serta mengemas kini metadata nod sedia ada. API peraturan nod dibahagikan kepada dua API: API peraturan nod dan API peraturan tepi. API Peraturan Nod digunakan untuk mencipta nod baharu dan mengemas kini metadata nod sedia ada. API peraturan tepi digunakan untuk mencipta sempadan antara dua nod, i.e. menghubungkan dua nod.

Dalam blog ini kita akan melihat dua kes penggunaan, salah satunya adalah komponen rangkaian yang bukan sebahagian daripada rangkaian skydive. Pilihan kedua ialah komponen bukan rangkaian. Sebelum itu, kita akan melihat beberapa cara asas untuk menggunakan API Peraturan Topologi.

Mencipta Nod Skydive

Untuk mencipta nod, anda mesti memberikan nama nod yang unik dan jenis nod yang sah. Anda juga boleh menyediakan beberapa pilihan tambahan.

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

Kemas kini Metadata Skydive Nodes

Untuk mengemas kini metadata nod sedia ada, anda mesti menyediakan pertanyaan gremlin untuk memilih nod yang anda ingin kemas kini metadata. Mengikut permintaan anda, anda boleh mengemas kini metadata satu atau lebih nod menggunakan peraturan nod tunggal.

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

Mencipta Skydive Edge

Untuk mencipta kelebihan, anda mesti menentukan sumber dan nod destinasi serta jenis pautan tepi; untuk mencipta nod anak, nilai jenis pautan mestilah pemilikan; begitu juga, untuk mencipta lapisan jenis pautan2, nilai jenis pautan mestilah lapisan2. Anda boleh membuat lebih daripada satu pautan antara dua nod, tetapi jenis pautan mestilah berbeza.

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

Kes penggunaan pertama

Dalam kes ini, kita akan melihat bagaimana untuk menunjukkan peranti bukan rangkaian dalam topologi skydive. Mari kita pertimbangkan bahawa kita mempunyai gudang data yang perlu dipaparkan dalam rajah topologi skydive dengan beberapa metadata yang berguna.

Kita hanya perlu mencipta peraturan nod untuk menambah peranti pada topologi. Kami boleh menambah metadata peranti sebagai sebahagian daripada perintah cipta, atau kemudian mencipta satu atau lebih perintah peraturan nod kemas kini.

Jalankan arahan peraturan hos berikut untuk menambah peranti storan pada rajah topologi.

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"

Jalankan arahan di bawah peraturan tepi untuk mengaitkan nod yang dibuat dengan nod hos.

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

Selepas arahan di atas, anda kini boleh melihat peranti kelihatan dalam rajah topologi skydive dengan metadata yang diberikan seperti yang ditunjukkan dalam imej di bawah.

Menambah nod pada topologi Skydive secara manual melalui klien Skydive

Kes penggunaan kedua

Dalam kes ini kita akan melihat cara menambah peranti rangkaian yang bukan sebahagian daripada rangkaian skydive. Mari lihat contoh ini. Kami mempunyai dua ejen skydive yang berjalan pada dua hos yang berbeza, untuk menyambungkan dua hos ini kami memerlukan suis TOR. Walaupun kita boleh mencapai ini dengan mentakrifkan nod struktur dan pautan dalam fail konfigurasi, mari lihat bagaimana kita boleh melakukan perkara yang sama menggunakan API Peraturan Topologi.

Tanpa suis TOR, kedua-dua ejen akan muncul sebagai dua nod berbeza tanpa sebarang pautan, seperti yang ditunjukkan dalam imej di bawah.

Menambah nod pada topologi Skydive secara manual melalui klien Skydive

Sekarang jalankan arahan Peraturan Hos berikut untuk mencipta suis dan port 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"

Seperti yang anda lihat, suis dan port TOR telah dibuat dan ditambah pada topologi skydive, dan topologi kini akan kelihatan seperti imej di bawah.

Menambah nod pada topologi Skydive secara manual melalui klien Skydive

Sekarang jalankan perintah Edge Rule berikut untuk membuat sambungan antara suis TOR, port 1 dan antara muka awam hos 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"

Jalankan arahan berikut untuk mencipta pautan antara port suis TOR 2 dan antara muka awam hos 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"

Pemilikan dan persatuan lapisan2 kini dicipta antara suis TOR dan port, serta persatuan lapisan2 antara ejen dan port. Sekarang topologi akhir akan kelihatan seperti imej di bawah.

Menambah nod pada topologi Skydive secara manual melalui klien Skydive

Kini kedua-dua hos/ejen disambungkan dengan betul dan anda boleh menguji sambungan atau membuat tangkapan laluan terpendek antara kedua-dua hos.

PS Pautan ke jawatan asal

Kami sedang mencari orang yang boleh menulis siaran tentang ciri Skydive yang lain.
Sembang telegram melalui skydive.network.

Sumber: www.habr.com

Tambah komen