Ručno dodavanje čvora Skydive topologiji putem Skydive klijenta

Skydive je open source mrežna topologija i analizator protokola u stvarnom vremenu. Cilj mu je pružiti sveobuhvatan način razumijevanja onoga što se događa u mrežnoj infrastrukturi.

Da vas zainteresiram, dat ću vam nekoliko snimaka zaslona o Skydiveu. Ispod će biti post o uvodu u Skydive.

Ručno dodavanje čvora Skydive topologiji putem Skydive klijenta

Ručno dodavanje čvora Skydive topologiji putem Skydive klijenta

post "Uvod u skydive.network» na Habréu.

Skydive prikazuje mrežnu topologiju primajući mrežne događaje od Skydive agenata. Jeste li se ikada zapitali kako dodati ili prikazati u topološkom dijagramu mrežne komponente koje su izvan Skydive mreže agenta ili ne-mrežne objekte kao što su TOR, pohrana podataka, itd. Ne morate više brinuti o tome zahvaljujući Node rule API-ju.

Od verzije 0.20, Skydive nudi API za pravila čvora koji se može koristiti za stvaranje novih čvorova i rubova te za ažuriranje metapodataka postojećih čvorova. API pravila čvora podijeljen je u dva API-ja: API pravila čvora i API pravila ruba. Node Rule API koristi se za stvaranje novog čvora i ažuriranje metapodataka postojećeg čvora. API rubnog pravila koristi se za stvaranje granice između dva čvora, tj. povezuje dva čvora.

U ovom blogu vidjet ćemo dva slučaja upotrebe, od kojih je jedan mrežna komponenta koja nije dio mreže za skok padobranom. Druga opcija je ne-mrežna komponenta. Prije toga, pogledat ćemo neke osnovne načine korištenja API-ja pravila topologije.

Stvaranje čvora Skydive

Da biste stvorili čvor, morate unijeti jedinstveni naziv čvora i valjanu vrstu čvora. Također možete dati neke dodatne opcije.

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

Ažurirajte metapodatke čvorova Skydive

Da biste ažurirali metapodatke postojećeg čvora, morate unijeti gremlin upit za odabir čvorova na kojima želite ažurirati metapodatke. Prema vašem zahtjevu, možete ažurirati metapodatke jednog ili više čvorova pomoću pravila jednog čvora.

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

Izrada Skydive Edgea

Da biste stvorili rub, morate navesti izvorne i odredišne ​​čvorove i vrstu veze ruba; da biste stvorili podređeni čvor, vrijednost tipa veze mora biti vlasništvo; slično, za stvaranje sloja vrste veze2, vrijednost vrste veze mora biti sloj2. Možete stvoriti više od jedne veze između dva čvora, ali vrsta veze mora biti različita.

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

Prvi slučaj upotrebe

U ovom slučaju, pogledat ćemo kako prikazati ne-mrežni uređaj u topologiji skoka padobranom. Uzmimo u obzir da imamo skladište podataka koje treba prikazati u topološkom dijagramu skoka padobranom s nekim korisnim metapodacima.

Samo trebamo stvoriti pravilo čvora da dodamo uređaj u topologiju. Možemo dodati metapodatke uređaja kao dio naredbe za kreiranje ili kasnije stvoriti jednu ili više naredbi pravila čvora ažuriranja.

Pokrenite sljedeću naredbu pravila hosta da biste dodali uređaj za pohranu topološkom dijagramu.

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"

Pokrenite naredbu ispod rubnog pravila da biste kreirani čvor povezali s čvorom domaćina.

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

Nakon gornjih naredbi, sada možete vidjeti uređaj vidljiv u topološkom dijagramu skoka padobranom s danim metapodacima kao što je prikazano na slici ispod.

Ručno dodavanje čvora Skydive topologiji putem Skydive klijenta

Drugi slučaj upotrebe

U ovom slučaju ćemo vidjeti kako dodati mrežni uređaj koji nije dio skydive mreže. Pogledajmo ovaj primjer. Imamo dva agenta za skok padobranom koji rade na dva različita hosta, za povezivanje ta dva hosta potreban nam je TOR prekidač. Iako to možemo postići definiranjem strukturnih čvorova i veza u konfiguracijskoj datoteci, pogledajmo kako možemo učiniti isto pomoću API-ja Topology Rules.

Bez prekidača TOR, dva agenta će se pojaviti kao dva različita čvora bez ikakvih veza, kao što je prikazano na slici ispod.

Ručno dodavanje čvora Skydive topologiji putem Skydive klijenta

Sada pokrenite sljedeće naredbe Host Rules za kreiranje TOR prekidača i portova.

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"

Kao što vidite, TOR sklopka i priključci su kreirani i dodani u topologiju skoka padobranom, a topologija će sada izgledati kao na slici ispod.

Ručno dodavanje čvora Skydive topologiji putem Skydive klijenta

Sada pokrenite sljedeće naredbe Edge Rule za stvaranje veze između TOR prekidača, porta 1 i javnog sučelja hosta 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"

Pokrenite sljedeće naredbe za stvaranje veze između TOR preklopnika porta 2 i host 2 javnog sučelja

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"

Vlasništvo i asocijacije sloja 2 sada su stvorene između TOR preklopnika i porta, kao i asocijacije sloja 2 između agenata i portova. Sada će konačna topologija izgledati kao na slici ispod.

Ručno dodavanje čvora Skydive topologiji putem Skydive klijenta

Sada su dva hosta/agenta ispravno povezani i možete testirati vezu ili stvoriti snimanje najkraćeg puta između dva hosta.

PS Link na izvorni post

Tražimo ljude koji bi mogli pisati postove o drugim značajkama Skydivea.
Telegram chat putem skydive.network.

Izvor: www.habr.com

Dodajte komentar