Agregar un nodo a la topología de Skydive manualmente a través del cliente Skydive

Skydive es un analizador de protocolos y topología de red en tiempo real y de código abierto. Su objetivo es proporcionar una forma integral de comprender lo que sucede en una infraestructura de red.

Para interesarte, te daré un par de capturas de pantalla sobre Skydive. A continuación habrá una publicación sobre una introducción a Skydive.

Agregar un nodo a la topología de Skydive manualmente a través del cliente Skydive

Agregar un nodo a la topología de Skydive manualmente a través del cliente Skydive

Correo "Introducción a skydive.network» en Habré.

Skydive muestra la topología de la red al recibir eventos de red de los agentes de Skydive. ¿Alguna vez se ha preguntado cómo agregar o mostrar en un diagrama de topología componentes de red que están fuera de la red del agente Skydive u objetos que no pertenecen a la red, como TOR, almacenamiento de datos, etc. Ya no necesita preocuparse por eso gracias a la API de regla de nodo?

Desde la versión 0.20, Skydive proporciona una API de reglas de nodos que se puede utilizar para crear nuevos nodos y bordes y para actualizar los metadatos de los nodos existentes. La API de reglas de nodo se divide en dos API: la API de reglas de nodo y la API de reglas de borde. La API de regla de nodo se utiliza para crear un nuevo nodo y actualizar los metadatos de un nodo existente. La API de regla de borde se utiliza para crear un límite entre dos nodos, es decir, conecta dos nodos.

En este blog veremos dos casos de uso, uno de los cuales es un componente de red que no forma parte de la red de paracaidismo. La segunda opción es un componente fuera de la red. Antes de eso, veremos algunas formas básicas de utilizar la API de reglas de topología.

Creando un nodo de paracaidismo

Para crear un nodo, debe proporcionar un nombre de nodo único y un tipo de nodo válido. También puede proporcionar algunas opciones adicionales.

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 metadatos de nodos de paracaidismo

Para actualizar los metadatos de un nodo existente, debe proporcionar una consulta gremlin para seleccionar los nodos en los que desea actualizar los metadatos. Según su solicitud, puede actualizar los metadatos de uno o más nodos utilizando una regla de un solo 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 borde de paracaidismo

Para crear un borde, debe especificar los nodos de origen y destino y el tipo de vínculo del borde; para crear un nodo secundario, el valor del tipo de vínculo debe ser propiedad; de manera similar, para crear un tipo de vínculo capa2, el valor del tipo de vínculo debe ser capa2. Puede crear más de un vínculo entre dos nodos, pero el tipo de vínculo 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"
  }
}

Primer caso de uso

En este caso, veremos cómo mostrar un dispositivo que no es de red en la topología de paracaidismo. Consideremos que tenemos un almacén de datos que debe mostrarse en un diagrama de topología de paracaidismo con algunos metadatos útiles.

Solo necesitamos crear una regla de nodo para agregar el dispositivo a la topología. Podemos agregar metadatos del dispositivo como parte del comando de creación o, posteriormente, crear uno o más comandos de regla de nodo de actualización.

Ejecute el siguiente comando de regla de host para agregar un dispositivo de almacenamiento al diagrama de topologí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"

Ejecute el comando debajo de la regla perimetral para asociar el nodo creado con el nodo host.

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

Después de los comandos anteriores, ahora puede ver el dispositivo visible en el diagrama de topología de paracaidismo con los metadatos proporcionados, como se muestra en la imagen a continuación.

Agregar un nodo a la topología de Skydive manualmente a través del cliente Skydive

Segundo caso de uso

En este caso veremos cómo agregar un dispositivo de red que no forma parte de la red de skydive. Veamos este ejemplo. Tenemos dos agentes de paracaidismo ejecutándose en dos hosts diferentes; para conectar estos dos hosts necesitamos un conmutador TOR. Aunque podemos lograr esto definiendo nodos de estructura y enlaces en un archivo de configuración, veamos cómo podemos hacer lo mismo usando la API de reglas de topología.

Sin un conmutador TOR, los dos agentes aparecerán como dos nodos diferentes sin ningún vínculo, como se muestra en la imagen siguiente.

Agregar un nodo a la topología de Skydive manualmente a través del cliente Skydive

Ahora ejecute los siguientes comandos de Reglas de host para crear el conmutador y los puertos 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 puede ver, el conmutador TOR y los puertos se crearon y agregaron a la topología de paracaidismo, y la topología ahora se verá como la imagen a continuación.

Agregar un nodo a la topología de Skydive manualmente a través del cliente Skydive

Ahora ejecute los siguientes comandos de Edge Rule para crear una conexión entre el conmutador TOR, el puerto 1 y la interfaz pública del 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"

Ejecute los siguientes comandos para crear un enlace entre el puerto 2 del conmutador TOR y la interfaz pública del 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"

Ahora se crean asociaciones de propiedad y de capa 2 entre el conmutador TOR y el puerto, así como asociaciones de capa 2 entre agentes y puertos. Ahora la topología final se verá como la imagen a continuación.

Agregar un nodo a la topología de Skydive manualmente a través del cliente Skydive

Ahora los dos hosts/agentes están conectados correctamente y puede probar la conexión o crear una captura de ruta más corta entre los dos hosts.

PD Enlace a publicación original

Buscamos personas que puedan escribir publicaciones sobre otras funciones de Skydive.
chat de telegrama a través de skydive.network.

Fuente: habr.com

Añadir un comentario