Aggiungere un nodo alla topologia di Skydive manualmente tramite il client di Skydive.

Skydive è un analizzatore di topologie di rete e protocolli open source in tempo reale. È progettato per fornire un modo completo per comprendere cosa sta accadendo nell'infrastruttura di rete.

Per attirare la vostra attenzione, vi presenterò un paio di screenshot su Skydive. Poco più in basso troverete un post introduttivo su Skydive.

Aggiungere un nodo alla topologia di Skydive manualmente tramite il client di Skydive.

Aggiungere un nodo alla topologia di Skydive manualmente tramite il client di Skydive.

Il post «Introduzione a skydive.network» su Habr.

Skydive visualizza la topologia di rete ricevendo eventi di rete dagli agenti di Skydive. Vi siete mai chiesti come aggiungere o visualizzare nella mappa della topologia componenti di rete che si trovano al di fuori della rete degli agenti Skydive o oggetti non di rete come TOR, storage, ecc.? Non dovrete più preoccuparvene, grazie all'API delle regole dei nodi.

A partire dalla versione 0.20, Skydive fornisce l'API delle regole dei nodi, che può essere utilizzata per creare nuovi nodi e archi e per aggiornare i metadati dei nodi esistenti. L'API delle regole dei nodi è divisa in due interfacce: l'API delle regole dei nodi e l'API delle regole degli archi. L'API delle regole dei nodi viene utilizzata per creare un nuovo nodo e aggiornare i metadati di un nodo esistente. L'API delle regole degli archi viene utilizzata per creare un confine tra due nodi, ossia collegare due nodi.

In questo blog vedremo due casi d'uso, uno dei quali riguarda un componente di rete che non fa parte della rete Skydive. Il secondo caso riguarda un componente non di rete. Prima di questo, esamineremo alcuni modi fondamentali per utilizzare l'API delle regole topologiche.

Creazione di un nodo Skydive

Per creare un nodo, è necessario specificare un nome unico per il nodo e un tipo di nodo valido. È possibile fornire anche alcuni parametri aggiuntivi.

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

Aggiornamento dei metadati dei nodi Skydive

Per aggiornare i metadati di un nodo esistente, è necessario fornire una query in linguaggio gremlin per selezionare i nodi nei quali si desidera aggiornare i metadati. In base alla propria query, è possibile aggiornare i metadati di uno o più nodi utilizzando la regola di un 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 arco Skydive

Per creare un arco è necessario specificare il nodo sorgente e quello di destinazione e il tipo di relazione dell'arco; per creare un nodo figlio, il tipo di relazione deve essere ownership, mentre per una relazione di tipo layer2, il valore del tipo di relazione deve essere layer2. È possibile creare più di una relazione tra due nodi, ma il tipo di relazione 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 di Skydive. Immaginiamo di avere uno storage da visualizzare nella mappa topologica di Skydive con alcuni metadati utili.

Dobbiamo semplicemente creare una regola di nodo per aggiungere il dispositivo alla topologia. Possiamo aggiungere i metadati del dispositivo come parte del comando di creazione oppure successivamente creare uno o più comandi di aggiornamento della regola del nodo.

Esegui il comando di seguito per la regola del nodo per aggiungere il dispositivo di archiviazione alla mappa topologica.

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 di seguito per la regola dell'arco per collegare 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 sopra, ora puoi vedere il dispositivo visualizzato nella mappa topologica di Skydive con i metadati forniti, come mostrato nell'immagine sottostante.

Aggiungere un nodo alla topologia di Skydive manualmente tramite il client di Skydive.

Secondo caso d'uso

In questo caso vedremo come aggiungere un dispositivo di rete che non fa parte della rete Skydive. Consideriamo questo esempio. Abbiamo due agenti Skydive che lavorano su due host diversi; per collegare questi due host abbiamo bisogno di uno switch TOR. Anche se possiamo raggiungere questo obiettivo definendo nodi e collegamenti nel file di configurazione, vediamo come possiamo fare lo stesso usando l'API delle regole topologiche.

Senza uno switch TOR, due agenti appariranno come due nodi separati senza alcun collegamento, come mostrato nell'immagine sottostante.

Aggiungere un nodo alla topologia di Skydive manualmente tramite il client di Skydive.

Ora esegui i seguenti comandi delle Regole del nodo per creare uno switch TOR e le porte.

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, lo switch TOR e le porte sono stati creati e aggiunti alla topologia di skydive, e ora la topologia apparirà come mostrato nell'immagine sottostante.

Aggiungere un nodo alla topologia di Skydive manualmente tramite il client di Skydive.

Ora esegui i seguenti comandi delle Edge Rule per creare un collegamento 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"

Esegui i seguenti comandi per creare un collegamento tra lo switch TOR, la porta 2 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 creati i collegamenti ownership e layer2 tra lo switch TOR e la porta, così come i collegamenti layer2 tra gli agenti e le porte. Ora la topologia finale apparirà come mostrato nell'immagine sottostante.

Aggiungere un nodo alla topologia di Skydive manualmente tramite il client di Skydive.

Ora due host / agenti sono correttamente collegati e puoi controllare la connessione o creare una cattura del percorso più breve tra i due host.

P.S. Link a originale del post

Si cercano persone che possano scrivere post su altre possibilità di Skydive.
Chat di Telegram su skydive.network.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster