Добавяне на възел към топологията Skydive ръчно чрез Skydive клиент

Skydive е мрежова топология и анализатор на протоколи с отворен код в реално време. Той има за цел да предостави цялостен начин за разбиране на случващото се в мрежовата инфраструктура.

За да ви заинтересувам, ще ви дам няколко екранни снимки за Skydive. По-долу ще има публикация за въведение в Skydive.

Добавяне на възел към топологията Skydive ръчно чрез Skydive клиент

Добавяне на възел към топологията Skydive ръчно чрез Skydive клиент

публикация "Въведение в skydive.network» на Хабре.

Skydive показва топологията на мрежата, като получава мрежови събития от агентите на Skydive. Чудили ли сте се някога как да добавите или покажете в топологична диаграма мрежови компоненти, които са извън мрежата на агента на Skydive или не-мрежови обекти, като TOR, съхранение на данни и т.н. Вече няма нужда да се тревожите за това благодарение на API за правила за възли.

От версия 0.20 Skydive предоставя API за правила за възли, който може да се използва за създаване на нови възли и ръбове и за актуализиране на метаданните на съществуващи възли. API за правила за възли е разделен на два API: API за правила за възли и API за правила за граници. API за правило за възел се използва за създаване на нов възел и актуализиране на метаданните на съществуващ възел. API за крайно правило се използва за създаване на граница между два възела, т.е. свързва два възела.

В този блог ще видим два случая на използване, единият от които е мрежов компонент, който не е част от мрежата за скачане с парашут. Вторият вариант е не-мрежов компонент. Преди това ще разгледаме някои основни начини за използване на 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": ""
}

Актуализирайте метаданните на Skydive Nodes

За да актуализирате метаданните на съществуващ възел, трябва да предоставите заявка за 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

За да създадете ръб, трябва да посочите възлите източник и местоназначение и типа на връзката на ръба; за да създадете дъщерен възел, стойността на типа на връзката трябва да бъде собственост; по същия начин, за да създадете слой на тип връзка 2, стойността на типа връзка трябва да бъде слой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 превключвател. Въпреки че можем да постигнем това чрез дефиниране на структурни възли и връзки в конфигурационен файл, нека да видим как можем да направим същото с помощта на 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 клиент

Сега изпълнете следните команди на 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"

Изпълнете следните команди, за да създадете връзка между порт 2 на TOR превключвател и публичен интерфейс на хост 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 клиент

Сега двата хоста/агента са свързани правилно и можете да тествате връзката или да създадете улавяне на най-краткия път между двата хоста.

PS Линк към оригинален пост

Търсим хора, които биха могли да пишат публикации за други функции на Skydive.
Чат в телеграма чрез skydive.network.

Източник: www.habr.com

Добавяне на нов коментар