Aghjunghjendu un node à a topologia Skydive manualmente via u cliente Skydive

Skydive hè una fonte aperta, topologia di rete in tempu reale è analizzatore di protokollu. U scopu di furnisce un modu cumpletu per capisce ciò chì succede in una infrastruttura di rete.

Per interessà vi, vi daraghju un paru di screenshots nantu à Skydive. Quì sottu ci sarà un post nantu à una introduzione à Skydive.

Aghjunghjendu un node à a topologia Skydive manualmente via u cliente Skydive

Aghjunghjendu un node à a topologia Skydive manualmente via u cliente Skydive

Post "Introduzione à skydive.network» nantu à Habré.

Skydive mostra a topologia di a rete ricevendu avvenimenti di rete da l'agenti Skydive. Avete mai dumandatu cumu aghjunghje o vede in un diagramma di topulugia cumpunenti di a rete chì sò fora di a reta di l'agenti Skydive o l'uggetti non-reti cum'è TOR, almacenamiento di dati, etc. Ùn ci hè bisognu di preoccupassi di questu più grazia à a regula Node API .

Dapoi a versione 0.20, Skydive furnisce una API di regula Node chì pò esse usata per creà novi nodi è bordi è per aghjurnà a metadata di i nodi esistenti. L'API Node rule hè divisa in duie API: l'API di regula di node è l'API di edge rule. L'API Node Rule hè aduprata per creà un novu node è aghjurnà a metadata di un node esistenti. L'API edge rule hè aduprata per creà un cunfini trà dui nodi, i.e. cunnetta dui nodi.

In questu blog vedemu dui casi d'usu, unu di i quali hè un cumpunente di rete chì ùn hè micca parte di a reta di skydive. A seconda opzione hè un cumpunente senza rete. Prima di quessa, guardemu qualchi modi basi per utilizà l'API di Reguli di Topulugia.

Crià un Node Skydive

Per creà un nodu, deve furnisce un nome di nodu unicu è un tipu di nodu validu. Pudete ancu furnisce alcune opzioni supplementari.

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

Aghjurnate i metadati di Skydive Nodes

Per aghjurnà a metadata di un node esistente, deve furnisce una query gremlin per selezziunà i nodi nantu à quale vulete aghjurnà a metadata. Sicondu a vostra dumanda, pudete aghjurnà i metadati di unu o più nodi utilizendu una regula di nodu unicu.

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

Crià un Skydive Edge

Per creà un bordu, deve specificà i nodi di fonte è di destinazione è u tipu di ligame di u bordu; per creà un node di u zitellu, u valore di u tipu di ligame deve esse a pruprietà; in modu simile, per creà un tipu di ligame layer2, u valore di u tipu di ligame deve esse stratu 2. Pudete creà più di un ligame trà dui nodi, ma u tipu di ligame deve esse diversu.

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

U primu casu d'usu

In questu casu, avemu da guardà cumu fà vede un dispositivu senza rete in a topologia di skydive. Cunsideremu chì avemu un magazzinu di dati chì deve esse affissatu in un diagramma di topologia di skydive cù qualchì metadata utile.

Avemu bisognu di creà una regula di node per aghjunghje u dispusitivu à a topologia. Pudemu aghjunghje i metadati di u dispositivu cum'è parte di u cumandamentu di creazione, o più tardi creanu unu o più cumandamenti di regula di node d'aghjurnamentu.

Eseguite u seguitu cumandamentu di regula di l'ospiti per aghjunghje un dispositivu di almacenamiento à u diagramma di topologia.

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"

Eseguite u cumandimu sottu à a regula di u bordu per associà u node creatu cù u node host.

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

Dopu à i cumandamenti sopra, pudete avà vede u dispusitivu visibile in u diagramma di topologia di skydive cù i metadati dati cum'è mostra in l'imaghjini sottu.

Aghjunghjendu un node à a topologia Skydive manualmente via u cliente Skydive

Secondu casu d'usu

In questu casu, avemu da vede cumu aghjunghje un dispositivu di rete chì ùn hè micca parte di a reta di skydive. Fighjemu stu esempiu. Avemu dui agenti di skydive in esecuzione nantu à dui ospiti diffirenti, per cunnette sti dui ospiti avemu bisognu di un switch TOR. Ancu s'ellu pudemu ottene questu definendu nodi di struttura è ligami in un schedariu di cunfigurazione, vedemu cumu pudemu fà u stessu utilizendu l'API di Regoli di Topologia.

Senza un switch TOR, i dui agenti appariscenu cum'è dui nodi diffirenti senza alcunu ligame, cum'è mostra in l'imaghjini sottu.

Aghjunghjendu un node à a topologia Skydive manualmente via u cliente Skydive

Avà eseguite i seguenti cumandamenti di Regule di Host per creà u switch TOR è i porti.

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"

Comu pudete vede, l'interruttore TOR è i porti sò stati creati è aghjuntu à a topulugia di skydive, è a topulugia avà s'assumiglia à l'imaghjini sottu.

Aghjunghjendu un node à a topologia Skydive manualmente via u cliente Skydive

Avà eseguite i seguenti cumandamenti Edge Rule per creà una cunnessione trà u switch TOR, u portu 1 è l'interfaccia publica di l'ospite 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"

Eseguite i seguenti cumandamenti per creà un ligame trà u portu di switch TOR 2 è l'interfaccia publica di host 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"

A pruprietà è l'associazioni layer2 sò avà create trà u switch TOR è u portu, è ancu l'associazioni layer2 trà l'agenti è i porti. Avà a topologia finale serà cum'è l'imaghjini sottu.

Aghjunghjendu un node à a topologia Skydive manualmente via u cliente Skydive

Avà i dui ospiti / agenti sò cunnessi currettamente è pudete pruvà a cunnessione o creà una cattura più corta trà i dui ospiti.

PS Link à post originale

Cerchemu persone chì puderanu scrive posti nantu à altre funzioni di Skydive.
Chat di Telegram via skydive.network.

Source: www.habr.com

Add a comment