Engadir un nodo á topoloxía Skydive manualmente a través do cliente Skydive

Skydive é un analizador de protocolos e topoloxía de rede de código aberto en tempo real. Pretende proporcionar unha forma integral de comprender o que está a suceder nunha infraestrutura de rede.

Para interesarche, vouche dar un par de capturas de pantalla sobre Skydive. A continuación haberá unha publicación sobre unha introdución ao Skydive.

Engadir un nodo á topoloxía Skydive manualmente a través do cliente Skydive

Engadir un nodo á topoloxía Skydive manualmente a través do cliente Skydive

Publicar "Introdución a skydive.network» sobre Habré.

Skydive mostra a topoloxía da rede recibindo eventos de rede dos axentes de Skydive. Algunha vez preguntácheste como engadir ou mostrar nun diagrama de topoloxía compoñentes de rede que estean fóra da rede do axente Skydive ou obxectos que non pertencen á rede, como TOR, almacenamento de datos, etc. Xa non hai que preocuparse por iso grazas á API de regras Node .

Desde a versión 0.20, Skydive ofrece unha API de regras de nodos que se pode usar para crear novos nodos e bordos e para actualizar os metadatos dos nodos existentes. A API de regra de nodo divídese en dúas API: a API de regra de nodo e a API de regra de borde. A API Node Rule úsase para crear un novo nodo e actualizar os metadatos dun nodo existente. A API de regras de borde úsase para crear un límite entre dous nós, é dicir. conecta dous nodos.

Neste blog veremos dous casos de uso, un dos cales é un compoñente de rede que non forma parte da rede de paracaidismo. A segunda opción é un compoñente que non pertence á rede. Antes diso, analizaremos algunhas formas básicas de usar a API de regras de topoloxía.

Creando un nodo de paracaidismo

Para crear un nodo, debes proporcionar un nome de nodo único e un tipo de nodo válido. Tamén pode proporcionar algunhas opcións adicionais.

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

Actualizar os metadatos de Skydive Nodes

Para actualizar os metadatos dun nodo existente, debes proporcionar unha consulta gremlin para seleccionar os nodos nos que queres actualizar os metadatos. Segundo a túa solicitude, podes actualizar os metadatos dun ou máis nodos mediante unha regra dun só 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')"
}

Creando un Skydive Edge

Para crear un borde, debes especificar os nodos orixe e destino e o tipo de ligazón do borde; para crear un nodo fillo, o valor do tipo de ligazón debe ser propiedade; do mesmo xeito, para crear un tipo de ligazón layer2, o valor do tipo de ligazón debe ser capa 2. Podes crear máis dunha ligazón entre dous nodos, pero o tipo de ligazón debe ser diferente.

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

Primeiro caso de uso

Neste caso, veremos como mostrar un dispositivo que non é de rede na topoloxía de paracaidismo. Consideremos que temos un almacén de datos que debe mostrarse nun diagrama de topoloxía de paracaidismo con algúns metadatos útiles.

Só necesitamos crear unha regra de nodo para engadir o dispositivo á topoloxía. Podemos engadir metadatos do dispositivo como parte do comando create ou máis tarde crear un ou máis comandos de regra de nodo de actualización.

Execute o seguinte comando de regras de host para engadir un dispositivo de almacenamento ao diagrama de topoloxía.

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"

Executa o comando debaixo da regra de borde para asociar o nodo creado co nodo host.

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

Despois dos comandos anteriores, agora podes ver o dispositivo visible no diagrama de topoloxía de paracaidismo cos metadatos proporcionados como se mostra na imaxe de abaixo.

Engadir un nodo á topoloxía Skydive manualmente a través do cliente Skydive

Segundo caso de uso

Neste caso veremos como engadir un dispositivo de rede que non forme parte da rede de paracaidismo. Vexamos este exemplo. Temos dous axentes de paracaidismo funcionando en dous hosts diferentes, para conectar estes dous host necesitamos un interruptor TOR. Aínda que podemos conseguilo definindo nodos de estrutura e ligazóns nun ficheiro de configuración, vexamos como podemos facer o mesmo usando a API de regras de topoloxía.

Sen un interruptor TOR, os dous axentes aparecerán como dous nós diferentes sen ningunha ligazón, como se mostra na imaxe de abaixo.

Engadir un nodo á topoloxía Skydive manualmente a través do cliente Skydive

Agora executa os seguintes comandos de Regras de anfitrión para crear o interruptor e os portos 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"

Como podes ver, o conmutador e os portos TOR foron creados e engadidos á topoloxía de paracaidismo, e a topoloxía agora parecerase á imaxe de abaixo.

Engadir un nodo á topoloxía Skydive manualmente a través do cliente Skydive

Agora execute os seguintes comandos da regra Edge para crear unha conexión entre o conmutador TOR, o porto 1 e a interface pública do 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"

Executa os seguintes comandos para crear unha ligazón entre o porto 2 do conmutador TOR e a interface pública do 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"

Agora créanse asociacións de propiedade e capa 2 entre o switch TOR e o porto, así como asociacións de capa 2 entre axentes e portos. Agora a topoloxía final parecerase á imaxe de abaixo.

Engadir un nodo á topoloxía Skydive manualmente a través do cliente Skydive

Agora os dous hosts/axentes están conectados correctamente e podes probar a conexión ou crear unha captura de camiño máis curto entre os dous hosts.

PS Ligazón a publicación orixinal

Buscamos persoas que poidan escribir publicacións sobre outras funcións de Skydive.
Chat de Telegram a través de skydive.network.

Fonte: www.habr.com

Engadir un comentario