Afegir un node a la topologia Skydive manualment mitjançant el client Skydive

Skydive és un analitzador de protocols i topologia de xarxa en temps real de codi obert. Té com a objectiu proporcionar una manera integral d'entendre què està passant en una infraestructura de xarxa.

Per interessar-vos, us donaré un parell de captures de pantalla sobre Skydive. A continuació hi haurà una publicació sobre una introducció a Skydive.

Afegir un node a la topologia Skydive manualment mitjançant el client Skydive

Afegir un node a la topologia Skydive manualment mitjançant el client Skydive

Publica "Introducció a skydive.network» a Habré.

Skydive mostra la topologia de la xarxa rebent esdeveniments de xarxa dels agents de Skydive. Alguna vegada us heu preguntat com afegir o mostrar en un diagrama de topologia components de xarxa que es troben fora de la xarxa de l'agent Skydive o objectes que no són de xarxa, com ara TOR, emmagatzematge de dades, etc. Ja no us heu de preocupar per això gràcies a l'API de regla Node.

Des de la versió 0.20, Skydive proporciona una API de regles de nodes que es pot utilitzar per crear nous nodes i vores i per actualitzar les metadades dels nodes existents. L'API de regla de node es divideix en dues API: l'API de regla de node i l'API de regla de vora. L'API Node Rule s'utilitza per crear un node nou i actualitzar les metadades d'un node existent. L'API de regla de vora s'utilitza per crear un límit entre dos nodes, és a dir. connecta dos nodes.

En aquest bloc veurem dos casos d'ús, un dels quals és un component de xarxa que no forma part de la xarxa de paracaigudisme. La segona opció és un component que no és de xarxa. Abans d'això, veurem algunes maneres bàsiques d'utilitzar l'API de regles de topologia.

Creació d'un node de paracaigudisme

Per crear un node, heu de proporcionar un nom de node únic i un tipus de node vàlid. També podeu proporcionar algunes opcions addicionals.

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

Actualitza les metadades de Skydive Nodes

Per actualitzar les metadades d'un node existent, heu de proporcionar una consulta gremlin per seleccionar els nodes en què voleu actualitzar les metadades. Segons la vostra sol·licitud, podeu actualitzar les metadades d'un o més nodes mitjançant una regla de node únic.

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

Creació d'un paracaigudisme Edge

Per crear una vora, heu d'especificar els nodes d'origen i de destinació i el tipus d'enllaç de la vora; per crear un node fill, el valor del tipus d'enllaç ha de ser propietat; de la mateixa manera, per crear un tipus d'enllaç layer2, el valor del tipus d'enllaç ha de ser capa 2. Podeu crear més d'un enllaç entre dos nodes, però el tipus d'enllaç ha de ser diferent.

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 cas d'ús

En aquest cas, veurem com mostrar un dispositiu que no és de xarxa a la topologia de paracaigudisme. Considerem que tenim un magatzem de dades que s'ha de mostrar en un diagrama de topologia de paracaigudisme amb algunes metadades útils.

Només hem de crear una regla de node per afegir el dispositiu a la topologia. Podem afegir metadades del dispositiu com a part de l'ordre create o, més tard, crear una o més ordres de regla de node d'actualització.

Executeu l'ordre de regla de l'amfitrió següent per afegir un dispositiu d'emmagatzematge al diagrama de 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"

Executeu l'ordre a sota de la regla de vora per associar el node creat amb el node amfitrió.

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

Després de les ordres anteriors, ara podeu veure el dispositiu visible al diagrama de topologia de paracaigudisme amb les metadades proporcionades, tal com es mostra a la imatge següent.

Afegir un node a la topologia Skydive manualment mitjançant el client Skydive

Segon cas d'ús

En aquest cas veurem com afegir un dispositiu de xarxa que no forma part de la xarxa de paracaigudisme. Vegem aquest exemple. Tenim dos agents de paracaigudisme que funcionen en dos amfitrions diferents, per connectar aquests dos amfitrions necessitem un interruptor TOR. Tot i que ho podem aconseguir definint nodes d'estructura i enllaços en un fitxer de configuració, vegem com podem fer el mateix amb l'API de regles de topologia.

Sense un interruptor TOR, els dos agents apareixeran com a dos nodes diferents sense cap enllaç, tal com es mostra a la imatge següent.

Afegir un node a la topologia Skydive manualment mitjançant el client Skydive

Ara executeu les ordres de Regles de l'amfitrió següents per crear l'interruptor i els ports 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"

Com podeu veure, l'interruptor i els ports TOR s'han creat i afegit a la topologia de paracaigudisme, i la topologia ara semblarà a la imatge següent.

Afegir un node a la topologia Skydive manualment mitjançant el client Skydive

Ara executeu les següents ordres Edge Rule per crear una connexió entre l'interruptor TOR, el port 1 i la interfície pública de l'amfitrió 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"

Executeu les ordres següents per crear un enllaç entre el port 2 del commutador TOR i la interfície pública de l'amfitrió 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"

Ara es creen associacions de propietat i capa 2 entre l'interruptor TOR i el port, així com associacions de capa 2 entre agents i ports. Ara la topologia final s'assemblarà a la imatge següent.

Afegir un node a la topologia Skydive manualment mitjançant el client Skydive

Ara els dos amfitrions/agents estan connectats correctament i podeu provar la connexió o crear una captura del camí més curt entre els dos amfitrions.

PS Enllaç a publicació original

Estem buscant persones que puguin escriure publicacions sobre altres funcions de Skydive.
Xat de Telegram a través de skydive.network.

Font: www.habr.com

Afegeix comentari