Aggiunta manuale di un nodo alla topologia Skydive tramite il client Skydive

Skydive è un analizzatore di topologia di rete e protocollo open source in tempo reale. Ha lo scopo di fornire un modo completo per comprendere cosa sta succedendo in un'infrastruttura di rete.

Per interessarti, ti darò un paio di screenshot su Skydive. Di seguito ci sarà un post su un'introduzione allo Skydive.

Aggiunta manuale di un nodo alla topologia Skydive tramite il client Skydive

Aggiunta manuale di un nodo alla topologia Skydive tramite il client Skydive

Inviare "Introduzione a skydive.network» su Habré.

Skydive mostra la topologia della rete ricevendo eventi di rete dagli agenti Skydive. Ti sei mai chiesto come aggiungere o visualizzare in un diagramma topologico componenti di rete che si trovano al di fuori della rete dell'agente Skydive o oggetti non di rete come TOR, archiviazione dati, ecc. Non devi più preoccuparti di questo grazie all'API delle regole del nodo.

Dalla versione 0.20, Skydive fornisce un'API delle regole dei nodi che può essere utilizzata per creare nuovi nodi e bordi e per aggiornare i metadati dei nodi esistenti. L'API delle regole del nodo è divisa in due API: l'API delle regole dei nodi e l'API delle regole dei bordi. L'API Node Rule viene utilizzata per creare un nuovo nodo e aggiornare i metadati di un nodo esistente. L'API delle regole edge viene utilizzata per creare un confine tra due nodi, ad es. collega due nodi.

In questo blog vedremo due casi d'uso, uno dei quali è un componente di rete che non fa parte della rete di paracadutismo. La seconda opzione è un componente non di rete. Prima di ciò, esamineremo alcuni modi di base per utilizzare l'API delle regole di topologia.

Creazione di un nodo di paracadutismo

Per creare un nodo, è necessario fornire un nome nodo univoco e un tipo di nodo valido. Puoi anche fornire alcune opzioni aggiuntive.

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

Aggiorna i metadati dei nodi Skydive

Per aggiornare i metadati di un nodo esistente, devi fornire una query gremlin per selezionare i nodi su cui desideri aggiornare i metadati. Secondo la tua richiesta, puoi aggiornare i metadati di uno o più nodi utilizzando una regola del singolo nodo.

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

Creazione di un bordo Skydive

Per creare un bordo è necessario specificare i nodi sorgente e destinazione e il tipo di collegamento del bordo; per creare un nodo figlio, il valore del tipo di collegamento deve essere possesso; analogamente, per creare un tipo di collegamento layer2, il valore del tipo di collegamento deve essere strato2. È possibile creare più di un collegamento tra due nodi, ma il tipo di collegamento deve essere diverso.

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

Primo caso d'uso

In questo caso, vedremo come mostrare un dispositivo non di rete nella topologia del paracadutismo. Consideriamo di avere un data warehouse che deve essere visualizzato in un diagramma della topologia di paracadutismo con alcuni metadati utili.

Dobbiamo solo creare una regola del nodo per aggiungere il dispositivo alla topologia. Possiamo aggiungere metadati del dispositivo come parte del comando create o successivamente creare uno o più comandi delle regole del nodo di aggiornamento.

Esegui il seguente comando della regola host per aggiungere un dispositivo di archiviazione al diagramma della 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"

Esegui il comando sotto la regola edge per associare il nodo creato al nodo host.

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

Dopo i comandi precedenti, ora puoi vedere il dispositivo visibile nel diagramma della topologia del paracadutismo con i metadati forniti, come mostrato nell'immagine seguente.

Aggiunta manuale di un nodo alla topologia Skydive tramite il client Skydive

Secondo caso d'uso

In questo caso vedremo come aggiungere un dispositivo di rete che non faccia parte della rete di paracadutismo. Diamo un'occhiata a questo esempio. Abbiamo due agenti di paracadutismo in esecuzione su due host diversi, per connettere questi due host abbiamo bisogno di un interruttore TOR. Anche se possiamo raggiungere questo obiettivo definendo i nodi e i collegamenti della struttura in un file di configurazione, vediamo come possiamo fare lo stesso utilizzando l'API Topology Rules.

Senza uno switch TOR, i due agenti appariranno come due nodi diversi senza alcun collegamento, come mostrato nell'immagine seguente.

Aggiunta manuale di un nodo alla topologia Skydive tramite il client Skydive

Ora esegui i seguenti comandi delle regole host per creare lo switch e le porte 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"

Come puoi vedere, l'interruttore e le porte TOR sono stati creati e aggiunti alla topologia del paracadutismo e la topologia ora sarà simile all'immagine seguente.

Aggiunta manuale di un nodo alla topologia Skydive tramite il client Skydive

Ora esegui i seguenti comandi Edge Rule per creare una connessione tra lo switch TOR, la porta 1 e l'interfaccia pubblica dell'host 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"

Eseguire i seguenti comandi per creare un collegamento tra la porta 2 dello switch TOR e l'interfaccia pubblica dell'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"

Ora vengono create associazioni di proprietà e di livello 2 tra lo switch TOR e la porta, nonché associazioni di livello 2 tra agenti e porte. Ora la topologia finale sarà simile all'immagine seguente.

Aggiunta manuale di un nodo alla topologia Skydive tramite il client Skydive

Ora i due host/agenti sono connessi correttamente ed è possibile testare la connessione o creare un'acquisizione del percorso più breve tra i due host.

PS Collegamento a posta originale

Cerchiamo persone che possano scrivere post su altre funzionalità di Skydive.
Chatta su Telegram tramite skydive.network.

Fonte: habr.com

Aggiungi un commento