Ajout manuel d'un nœud à la topologie Skydive via le client Skydive

Skydive est un analyseur de topologie et de protocole de réseau open source en temps réel. Il vise à fournir un moyen complet de comprendre ce qui se passe dans une infrastructure réseau.

Pour vous intéresser, je vais vous donner quelques captures d'écran sur Skydive. Ci-dessous, il y aura un article sur une introduction au Skydive.

Ajout manuel d'un nœud à la topologie Skydive via le client Skydive

Ajout manuel d'un nœud à la topologie Skydive via le client Skydive

Poste "Présentation de skydive.network» sur Habré.

Skydive affiche la topologie du réseau en recevant les événements réseau des agents Skydive. Vous êtes-vous déjà demandé comment ajouter ou afficher dans un diagramme de topologie des composants réseau qui se trouvent en dehors du réseau d'agents Skydive ou des objets non-réseau tels que TOR, le stockage de données, etc. Plus besoin de vous en soucier grâce à l'API de règle Node.

Depuis la version 0.20, Skydive fournit une API de règle de nœud qui peut être utilisée pour créer de nouveaux nœuds et bords et pour mettre à jour les métadonnées des nœuds existants. L'API des règles de nœud est divisée en deux API : l'API des règles de nœud et l'API des règles de périphérie. L'API Node Rule est utilisée pour créer un nouveau nœud et mettre à jour les métadonnées d'un nœud existant. L'API de règle de bord est utilisée pour créer une frontière entre deux nœuds, c'est-à-dire relie deux nœuds.

Dans ce blog, nous verrons deux cas d'utilisation, dont l'un est un composant réseau qui ne fait pas partie du réseau skydive. La deuxième option est un composant non réseau. Avant cela, nous examinerons quelques méthodes de base pour utiliser l'API des règles de topologie.

Création d'un nœud Skydive

Pour créer un nœud, vous devez fournir un nom de nœud unique et un type de nœud valide. Vous pouvez également proposer des options supplémentaires.

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

Mettre à jour les métadonnées des nœuds Skydive

Pour mettre à jour les métadonnées d'un nœud existant, vous devez fournir une requête Gremlin pour sélectionner les nœuds sur lesquels vous souhaitez mettre à jour les métadonnées. Selon votre demande, vous pouvez mettre à jour les métadonnées d'un ou plusieurs nœuds à l'aide d'une règle de nœud unique.

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

Créer un bord de parachutisme

Pour créer un tronçon, vous devez spécifier les nœuds source et de destination ainsi que le type de lien du tronçon ; pour créer un nœud enfant, la valeur du type de lien doit être la propriété ; de même, pour créer un type de lien layer2, la valeur du type de lien doit être couche2. Vous pouvez créer plusieurs liens entre deux nœuds, mais le type de lien doit être différent.

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

Premier cas d'utilisation

Dans ce cas, nous verrons comment afficher un périphérique non réseau dans la topologie skydive. Considérons que nous disposons d'un entrepôt de données qui doit être affiché dans un diagramme de topologie de saut en parachute avec des métadonnées utiles.

Il nous suffit de créer une règle de nœud pour ajouter l'appareil à la topologie. Nous pouvons ajouter des métadonnées de périphérique dans le cadre de la commande create, ou créer ultérieurement une ou plusieurs commandes de règle de nœud de mise à jour.

Exécutez la commande de règle d'hôte suivante pour ajouter un périphérique de stockage au diagramme de topologie.

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"

Exécutez la commande sous la règle Edge pour associer le nœud créé au nœud hôte.

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

Après les commandes ci-dessus, vous pouvez maintenant voir l'appareil visible dans le diagramme de topologie du parachutisme avec les métadonnées données, comme indiqué dans l'image ci-dessous.

Ajout manuel d'un nœud à la topologie Skydive via le client Skydive

Deuxième cas d'utilisation

Dans ce cas, nous verrons comment ajouter un périphérique réseau qui ne fait pas partie du réseau skydive. Regardons cet exemple. Nous avons deux agents skydive fonctionnant sur deux hôtes différents, pour connecter ces deux hôtes, nous avons besoin d'un commutateur TOR. Même si nous pouvons y parvenir en définissant des nœuds de structure et des liens dans un fichier de configuration, voyons comment nous pouvons faire de même en utilisant l'API des règles de topologie.

Sans commutateur TOR, les deux agents apparaîtront comme deux nœuds différents sans aucun lien, comme le montre l'image ci-dessous.

Ajout manuel d'un nœud à la topologie Skydive via le client Skydive

Exécutez maintenant les commandes Host Rules suivantes pour créer le commutateur et les 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"

Comme vous pouvez le voir, le commutateur et les ports TOR ont été créés et ajoutés à la topologie skydive, et la topologie ressemblera désormais à l'image ci-dessous.

Ajout manuel d'un nœud à la topologie Skydive via le client Skydive

Exécutez maintenant les commandes Edge Rule suivantes pour créer une connexion entre le commutateur TOR, le port 1 et l'interface publique de l'hôte 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"

Exécutez les commandes suivantes pour créer un lien entre le port 2 du commutateur TOR et l'interface publique de l'hôte 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"

Les associations de propriété et de couche 2 sont désormais créées entre le commutateur TOR et le port, ainsi que les associations de couche 2 entre les agents et les ports. La topologie finale ressemblera désormais à l'image ci-dessous.

Ajout manuel d'un nœud à la topologie Skydive via le client Skydive

Les deux hôtes/agents sont désormais correctement connectés et vous pouvez tester la connexion ou créer une capture du chemin le plus court entre les deux hôtes.

PS Lien vers message original

Nous recherchons des personnes susceptibles d'écrire des articles sur d'autres fonctionnalités de Skydive.
Chat par télégramme via skydive.network.

Source: habr.com

Ajouter un commentaire