Skydive mijozi orqali Skydive topologiyasiga tugunni qo'lda qo'shish

Skydive ochiq manba, real vaqtda tarmoq topologiyasi va protokol analizatoridir. U tarmoq infratuzilmasida nima sodir bo'layotganini tushunishning keng qamrovli usulini taqdim etishga qaratilgan.

Sizni qiziqtirish uchun men sizga Skydive haqida bir nechta skrinshotlarni beraman. Quyida "Skydive" bilan tanishish haqidagi post bo'ladi.

Skydive mijozi orqali Skydive topologiyasiga tugunni qo'lda qo'shish

Skydive mijozi orqali Skydive topologiyasiga tugunni qo'lda qo'shish

Post "skydive.network ga kirish» Habré-da.

Skydive, Skydive agentlaridan tarmoq hodisalarini qabul qilish orqali tarmoq topologiyasini ko'rsatadi. Skydive agent tarmog'idan tashqarida bo'lgan tarmoq komponentlarini yoki TOR, ma'lumotlarni saqlash va boshqalar kabi tarmoqdan tashqari ob'ektlarni topologiya diagrammasida qanday qo'shish yoki ko'rsatish haqida hech o'ylab ko'rganmisiz. Tugun qoidasi API tufayli endi bu haqda tashvishlanishga hojat yo'q.

0.20 versiyasidan boshlab, Skydive yangi tugunlar va qirralarni yaratish va mavjud tugunlarning metama'lumotlarini yangilash uchun ishlatilishi mumkin bo'lgan tugun qoidalari API-ni taqdim etadi. Tugun qoidasi API’si ikkita API’ga bo‘lingan: tugun qoidasi API’si va chekka qoidasi API’si. Node Rule API yangi tugun yaratish va mavjud tugunning metamaʼlumotlarini yangilash uchun ishlatiladi. Kengay qoida API ikki tugun o'rtasida chegara yaratish uchun ishlatiladi, ya'ni. ikkita tugunni birlashtiradi.

Ushbu blogda biz ikkita foydalanish holatlarini ko'ramiz, ulardan biri skydive tarmog'ining bir qismi bo'lmagan tarmoq komponentidir. Ikkinchi variant esa tarmoqdan tashqari komponent hisoblanadi. Undan oldin biz Topology Rules API dan foydalanishning asosiy usullarini ko‘rib chiqamiz.

Skydive tugunini yaratish

Tugun yaratish uchun siz noyob tugun nomini va yaroqli tugun turini kiritishingiz kerak. Bundan tashqari, ba'zi qo'shimcha variantlarni taqdim etishingiz mumkin.

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 tugunlari metamaʼlumotlarini yangilang

Mavjud tugunning metamaʼlumotlarini yangilash uchun metadata yangilanmoqchi boʻlgan tugunlarni tanlash uchun gremlin soʻrovini taqdim etishingiz kerak. Sizning so'rovingizga ko'ra, bitta tugun qoidasi yordamida bir yoki bir nechta tugunlarning metama'lumotlarini yangilashingiz mumkin.

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 yaratish

Chet yaratish uchun siz manba va maqsad tugunlarini va chekka havola turini belgilashingiz kerak; bola tugunni yaratish uchun havola turi qiymati egalik bo'lishi kerak; xuddi shunday, havola turi qatlamini yaratish uchun havola turi qiymati bo'lishi kerak. qatlam 2. Siz ikkita tugun o'rtasida bir nechta havola yaratishingiz mumkin, lekin ulanish turi boshqacha bo'lishi kerak.

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

Birinchi foydalanish holati

Bunday holda, biz paraşyut topologiyasida tarmoq bo'lmagan qurilmani qanday ko'rsatishni ko'rib chiqamiz. Keling, bizda ba'zi foydali metama'lumotlar bilan skydive topologiyasi diagrammasida ko'rsatilishi kerak bo'lgan ma'lumotlar omborimiz borligini ko'rib chiqaylik.

Biz faqat qurilmani topologiyaga qo'shish uchun tugun qoidasini yaratishimiz kerak. Biz qurilma metamaʼlumotlarini yaratish buyrugʻining bir qismi sifatida qoʻshishimiz yoki keyinroq bir yoki bir nechta yangilash tugun qoidasi buyruqlarini yaratishimiz mumkin.

Topologiya diagrammasiga saqlash qurilmasini qo'shish uchun quyidagi xost qoida buyrug'ini bajaring.

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"

Yaratilgan tugunni xost tuguniga bog'lash uchun chekka qoidasi ostidagi buyruqni bajaring.

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

Yuqoridagi buyruqlardan so'ng, siz quyidagi rasmda ko'rsatilganidek, berilgan metama'lumotlar bilan parashyut topologiyasi diagrammasida ko'rinadigan qurilmani ko'rishingiz mumkin.

Skydive mijozi orqali Skydive topologiyasiga tugunni qo'lda qo'shish

Ikkinchi foydalanish holati

Bu holda biz parashyut tarmog'iga kirmaydigan tarmoq qurilmasini qanday qo'shishni ko'rib chiqamiz. Keling, ushbu misolni ko'rib chiqaylik. Ikki xil xostda ishlaydigan ikkita skydive agentimiz bor, bu ikki xostni ulash uchun bizga TOR kaliti kerak. Bunga konfiguratsiya faylida struktura tugunlari va havolalarini aniqlash orqali erisha olsak ham, keling, Topologiya qoidalari API yordamida qanday qilib shunday qilish mumkinligini ko'rib chiqamiz.

TOR kaliti bo'lmasa, ikkita agent quyidagi rasmda ko'rsatilganidek, hech qanday havolalarsiz ikki xil tugun sifatida paydo bo'ladi.

Skydive mijozi orqali Skydive topologiyasiga tugunni qo'lda qo'shish

Endi TOR kaliti va portlarini yaratish uchun quyidagi Xost qoidalari buyruqlarini bajaring.

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"

Ko'rib turganingizdek, TOR kaliti va portlari yaratilgan va skydive topologiyasiga qo'shilgan va topologiya endi quyidagi rasmga o'xshaydi.

Skydive mijozi orqali Skydive topologiyasiga tugunni qo'lda qo'shish

Endi TOR kaliti, 1-port va 1-hostning umumiy interfeysi o'rtasida ulanishni yaratish uchun quyidagi Edge Rule buyruqlarini bajaring.

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 va xost 2 umumiy interfeysi o'rtasida havola yaratish uchun quyidagi buyruqlarni bajaring

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"

Endi TOR kaliti va port o'rtasida egalik va qatlam2 assotsiatsiyalari, shuningdek agentlar va portlar o'rtasidagi qatlam 2 assotsiatsiyasi yaratiladi. Endi yakuniy topologiya quyidagi rasmga o'xshaydi.

Skydive mijozi orqali Skydive topologiyasiga tugunni qo'lda qo'shish

Endi ikkita xost/agent to'g'ri ulangan va siz ulanishni sinab ko'rishingiz yoki ikkita xost o'rtasida eng qisqa yo'lni yaratishingiz mumkin.

PS havolasi original post

Biz boshqa Skydive funksiyalari haqida post yoza oladigan odamlarni qidirmoqdamiz.
Telegram chat skydive.network orqali.

Manba: www.habr.com

a Izoh qo'shish