Pridanie uzla do topológie Skydive manuálne cez klienta Skydive

Skydive je open source, sieťová topológia a analyzátor protokolov v reálnom čase. Jeho cieľom je poskytnúť komplexný spôsob, ako pochopiť, čo sa deje v sieťovej infraštruktúre.

Aby som vás zaujal, dám vám pár snímok obrazovky o Skydive. Nižšie bude uvedený príspevok o úvode do Skydive.

Pridanie uzla do topológie Skydive manuálne cez klienta Skydive

Pridanie uzla do topológie Skydive manuálne cez klienta Skydive

príspevok "Úvod do skydive.network» na Habré.

Skydive zobrazuje topológiu siete prijímaním sieťových udalostí od agentov Skydive. Premýšľali ste niekedy nad tým, ako pridať alebo zobraziť v topologickom diagrame sieťové komponenty, ktoré sú mimo siete agentov Skydive alebo nesieťové objekty, ako sú TOR, úložisko dát atď. Vďaka API pre pravidlo uzla sa o to už nemusíte starať.

Od verzie 0.20 poskytuje Skydive rozhranie API pre pravidlá uzlov, ktoré možno použiť na vytváranie nových uzlov a hrán a na aktualizáciu metadát existujúcich uzlov. Rozhranie API pre pravidlo uzla je rozdelené na dve rozhrania API: rozhranie API pre pravidlo uzla a rozhranie API pre pravidlo okraja. Rozhranie API pre pravidlo uzla sa používa na vytvorenie nového uzla a aktualizáciu metadát existujúceho uzla. Hranové pravidlo API sa používa na vytvorenie hranice medzi dvoma uzlami, t.j. spája dva uzly.

V tomto blogu uvidíme dva prípady použitia, z ktorých jeden je sieťový komponent, ktorý nie je súčasťou siete skydive. Druhou možnosťou je nesieťový komponent. Predtým sa pozrieme na niekoľko základných spôsobov použitia API pravidiel topológie.

Vytvorenie uzla Skydive

Ak chcete vytvoriť uzol, musíte zadať jedinečný názov uzla a platný typ uzla. Môžete tiež poskytnúť niektoré ďalšie možnosti.

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

Aktualizujte metadáta uzlov Skydive

Ak chcete aktualizovať metaúdaje existujúceho uzla, musíte zadať dotaz gremlin na výber uzlov, na ktorých chcete aktualizovať metaúdaje. Podľa vašej požiadavky môžete aktualizovať metadáta jedného alebo viacerých uzlov pomocou pravidla pre jeden uzol.

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

Vytvorenie Skydive Edge

Ak chcete vytvoriť okraj, musíte určiť zdrojový a cieľový uzol a typ prepojenia okraja; na vytvorenie podriadeného uzla musí byť hodnota typu odkazu vlastníctvo; podobne, ak chcete vytvoriť vrstvu typu odkazu2, hodnota typu odkazu musí byť vrstva2. Môžete vytvoriť viac ako jedno prepojenie medzi dvoma uzlami, ale typ prepojenia musí byť odlišný.

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

Prvý prípad použitia

V tomto prípade sa pozrieme na to, ako zobraziť nesieťové zariadenie v topológii skydive. Uvažujme, že máme dátový sklad, ktorý je potrebné zobraziť v diagrame topológie skydive s niektorými užitočnými metadátami.

Potrebujeme len vytvoriť pravidlo uzla na pridanie zariadenia do topológie. Môžeme pridať metadáta zariadenia ako súčasť príkazu create alebo neskôr vytvoriť jeden alebo viacero príkazov pravidla aktualizácie uzla.

Spustite nasledujúci príkaz hostiteľského pravidla na pridanie úložného zariadenia do diagramu topológie.

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"

Spustite príkaz pod pravidlom okraja na priradenie vytvoreného uzla k hostiteľskému uzlu.

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

Po vyššie uvedených príkazoch môžete teraz vidieť zariadenie viditeľné v diagrame topológie zoskoku s danými metadátami, ako je znázornené na obrázku nižšie.

Pridanie uzla do topológie Skydive manuálne cez klienta Skydive

Druhý prípad použitia

V tomto prípade uvidíme, ako pridať sieťové zariadenie, ktoré nie je súčasťou siete skydive. Pozrime sa na tento príklad. Máme dvoch skydive agentov, ktorí bežia na dvoch rôznych hostiteľoch, na prepojenie týchto dvoch hostiteľov potrebujeme prepínač TOR. Aj keď to môžeme dosiahnuť definovaním štruktúrnych uzlov a odkazov v konfiguračnom súbore, pozrime sa, ako môžeme urobiť to isté pomocou API pre pravidlá topológie.

Bez prepínača TOR sa dvaja agenti objavia ako dva rôzne uzly bez akýchkoľvek prepojení, ako je znázornené na obrázku nižšie.

Pridanie uzla do topológie Skydive manuálne cez klienta Skydive

Teraz spustite nasledujúce príkazy pravidiel hostiteľa na vytvorenie prepínača TOR a portov.

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"

Ako môžete vidieť, prepínač TOR a porty boli vytvorené a pridané do topológie skydive a topológia bude teraz vyzerať ako na obrázku nižšie.

Pridanie uzla do topológie Skydive manuálne cez klienta Skydive

Teraz spustite nasledujúce príkazy Edge Rule na vytvorenie spojenia medzi prepínačom TOR, portom 1 a verejným rozhraním hostiteľa 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"

Spustite nasledujúce príkazy na vytvorenie prepojenia medzi portom 2 prepínača TOR a verejným rozhraním hostiteľa 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"

Vlastníctvo a asociácie vrstvy 2 sa teraz vytvárajú medzi prepínačom TOR a portom, ako aj asociácie vrstvy 2 medzi agentmi a portmi. Teraz bude konečná topológia vyzerať ako na obrázku nižšie.

Pridanie uzla do topológie Skydive manuálne cez klienta Skydive

Teraz sú dvaja hostitelia/agenti správne pripojení a môžete otestovať pripojenie alebo vytvoriť zachytenie najkratšej cesty medzi dvoma hostiteľmi.

PS Odkaz na pôvodný príspevok

Hľadáme ľudí, ktorí by mohli písať príspevky o iných funkciách Skydive.
Telegramový rozhovor cez skydive.network.

Zdroj: hab.com

Pridať komentár