Μη αυτόματη προσθήκη ενός κόμβου στην τοπολογία Skydive μέσω του προγράμματος-πελάτη Skydive

Το Skydive είναι ένας αναλυτής τοπολογίας δικτύου και πρωτοκόλλου ανοιχτού κώδικα σε πραγματικό χρόνο. Στόχος του είναι να παρέχει έναν ολοκληρωμένο τρόπο κατανόησης του τι συμβαίνει σε μια δικτυακή υποδομή.

Για να σας ενδιαφέρω, θα σας δώσω μερικά στιγμιότυπα οθόνης για το Skydive. Παρακάτω θα υπάρχει μια ανάρτηση για μια εισαγωγή στο Skydive.

Μη αυτόματη προσθήκη ενός κόμβου στην τοπολογία Skydive μέσω του προγράμματος-πελάτη Skydive

Μη αυτόματη προσθήκη ενός κόμβου στην τοπολογία Skydive μέσω του προγράμματος-πελάτη Skydive

Θέση "Εισαγωγή στο skydive.network» στο Habré.

Το Skydive εμφανίζει την τοπολογία του δικτύου λαμβάνοντας συμβάντα δικτύου από πράκτορες Skydive. Έχετε αναρωτηθεί ποτέ πώς μπορείτε να προσθέσετε ή να εμφανίσετε σε ένα διάγραμμα τοπολογίας στοιχεία δικτύου που βρίσκονται εκτός του δικτύου πρακτόρων Skydive ή αντικείμενα εκτός δικτύου, όπως TOR, αποθήκευση δεδομένων κ.λπ. Δεν χρειάζεται πλέον να ανησυχείτε για αυτό χάρη στο API κανόνα Node .

Από την έκδοση 0.20, το Skydive παρέχει ένα API κανόνα κόμβου που μπορεί να χρησιμοποιηθεί για τη δημιουργία νέων κόμβων και ακμών και για την ενημέρωση των μεταδεδομένων των υπαρχόντων κόμβων. Το API κανόνα κόμβου χωρίζεται σε δύο API: το API κανόνα κόμβου και το API κανόνα ακμής. Το Node Rule API χρησιμοποιείται για τη δημιουργία ενός νέου κόμβου και την ενημέρωση των μεταδεδομένων ενός υπάρχοντος κόμβου. Το API κανόνα άκρης χρησιμοποιείται για τη δημιουργία ορίου μεταξύ δύο κόμβων, π.χ. συνδέει δύο κόμβους.

Σε αυτό το blog θα δούμε δύο περιπτώσεις χρήσης, η μία από τις οποίες είναι ένα στοιχείο δικτύου που δεν αποτελεί μέρος του δικτύου skydive. Η δεύτερη επιλογή είναι ένα μη δικτυακό στοιχείο. Πριν από αυτό, θα δούμε μερικούς βασικούς τρόπους χρήσης του Topology Rules API.

Δημιουργία κόμβου Skydive

Για να δημιουργήσετε έναν κόμβο, πρέπει να δώσετε ένα μοναδικό όνομα κόμβου και έναν έγκυρο τύπο κόμβου. Μπορείτε επίσης να παρέχετε ορισμένες πρόσθετες επιλογές.

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

Ενημερώστε τα μεταδεδομένα του Skydive Nodes

Για να ενημερώσετε τα μεταδεδομένα ενός υπάρχοντος κόμβου, πρέπει να δώσετε ένα ερώτημα gremlin για να επιλέξετε τους κόμβους στους οποίους θέλετε να ενημερώσετε τα μεταδεδομένα. Σύμφωνα με το αίτημά σας, μπορείτε να ενημερώσετε τα μεταδεδομένα ενός ή περισσότερων κόμβων χρησιμοποιώντας έναν κανόνα μεμονωμένου κόμβου.

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

Δημιουργία Skydive Edge

Για να δημιουργήσετε μια άκρη, πρέπει να καθορίσετε τους κόμβους προέλευσης και προορισμού και τον τύπο σύνδεσης της άκρης· για να δημιουργήσετε έναν θυγατρικό κόμβο, η τιμή του τύπου συνδέσμου πρέπει να είναι ιδιοκτησία· ομοίως, για να δημιουργήσετε ένα επίπεδο τύπου σύνδεσης2, η τιμή τύπου σύνδεσης πρέπει να είναι στρώμα 2. Μπορείτε να δημιουργήσετε περισσότερους από έναν συνδέσμους μεταξύ δύο κόμβων, αλλά ο τύπος σύνδεσης πρέπει να είναι διαφορετικός.

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

θήκη πρώτης χρήσης

Σε αυτήν την περίπτωση, θα δούμε πώς να εμφανίσουμε μια μη δικτυακή συσκευή στην τοπολογία skydive. Ας θεωρήσουμε ότι έχουμε μια αποθήκη δεδομένων που πρέπει να εμφανιστεί σε ένα διάγραμμα τοπολογίας skydive με μερικά χρήσιμα μεταδεδομένα.

Απλά πρέπει να δημιουργήσουμε έναν κανόνα κόμβου για να προσθέσουμε τη συσκευή στην τοπολογία. Μπορούμε να προσθέσουμε μεταδεδομένα συσκευής ως μέρος της εντολής δημιουργίας ή αργότερα να δημιουργήσουμε μία ή περισσότερες εντολές κανόνα κόμβου ενημέρωσης.

Εκτελέστε την ακόλουθη εντολή κανόνα κεντρικού υπολογιστή για να προσθέσετε μια συσκευή αποθήκευσης στο διάγραμμα τοπολογίας.

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"

Εκτελέστε την εντολή κάτω από τον κανόνα της άκρης για να συσχετίσετε τον κόμβο που δημιουργήθηκε με τον κόμβο κεντρικού υπολογιστή.

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

Μετά τις παραπάνω εντολές, μπορείτε τώρα να δείτε τη συσκευή ορατή στο διάγραμμα τοπολογίας skydive με τα δεδομένα μεταδεδομένα όπως φαίνεται στην παρακάτω εικόνα.

Μη αυτόματη προσθήκη ενός κόμβου στην τοπολογία Skydive μέσω του προγράμματος-πελάτη Skydive

Δεύτερη περίπτωση χρήσης

Σε αυτή την περίπτωση θα δούμε πώς να προσθέσουμε μια συσκευή δικτύου που δεν είναι μέρος του δικτύου skydive. Ας δούμε αυτό το παράδειγμα. Έχουμε δύο πράκτορες skydive που τρέχουν σε δύο διαφορετικούς κεντρικούς υπολογιστές, για να συνδέσουμε αυτούς τους δύο κεντρικούς υπολογιστές χρειαζόμαστε έναν διακόπτη TOR. Παρόλο που μπορούμε να το πετύχουμε αυτό ορίζοντας κόμβους δομής και συνδέσμους σε ένα αρχείο διαμόρφωσης, ας δούμε πώς μπορούμε να κάνουμε το ίδιο χρησιμοποιώντας το Topology Rules API.

Χωρίς διακόπτη TOR, οι δύο πράκτορες θα εμφανίζονται ως δύο διαφορετικοί κόμβοι χωρίς συνδέσμους, όπως φαίνεται στην παρακάτω εικόνα.

Μη αυτόματη προσθήκη ενός κόμβου στην τοπολογία Skydive μέσω του προγράμματος-πελάτη Skydive

Τώρα εκτελέστε τις ακόλουθες εντολές Host Rules για να δημιουργήσετε τον διακόπτη 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"

Όπως μπορείτε να δείτε, ο διακόπτης TOR και οι θύρες έχουν δημιουργηθεί και προστεθεί στην τοπολογία skydive, και η τοπολογία θα μοιάζει τώρα με την παρακάτω εικόνα.

Μη αυτόματη προσθήκη ενός κόμβου στην τοπολογία Skydive μέσω του προγράμματος-πελάτη Skydive

Τώρα εκτελέστε τις ακόλουθες εντολές Edge Rule για να δημιουργήσετε μια σύνδεση μεταξύ του διακόπτη TOR, της θύρας 1 και της δημόσιας διεπαφής του κεντρικού υπολογιστή 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"

Εκτελέστε τις ακόλουθες εντολές για να δημιουργήσετε μια σύνδεση μεταξύ της θύρας 2 μεταγωγέα TOR και της δημόσιας διεπαφής του κεντρικού υπολογιστή 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"

Τώρα δημιουργούνται συσχετίσεις ιδιοκτησίας και layer2 μεταξύ του μεταγωγέα TOR και της θύρας, καθώς και συσχετίσεις επιπέδου 2 μεταξύ των πρακτόρων και των θυρών. Τώρα η τελική τοπολογία θα μοιάζει με την παρακάτω εικόνα.

Μη αυτόματη προσθήκη ενός κόμβου στην τοπολογία Skydive μέσω του προγράμματος-πελάτη Skydive

Τώρα οι δύο κεντρικοί υπολογιστές/πράκτορες έχουν συνδεθεί σωστά και μπορείτε να δοκιμάσετε τη σύνδεση ή να δημιουργήσετε μια καταγραφή συντομότερης διαδρομής μεταξύ των δύο κεντρικών υπολογιστών.

ΥΓ Σύνδεσμος προς αρχική ανάρτηση

Αναζητούμε άτομα που θα μπορούσαν να γράφουν δημοσιεύσεις για άλλες λειτουργίες του Skydive.
Συνομιλία μέσω Telegram μέσω skydive.network.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο