Adăugarea manuală a unui nod la topologia Skydive prin clientul Skydive

Skydive este un analizor de topologie și protocol de rețea open source, în timp real. Acesta își propune să ofere o modalitate cuprinzătoare de a înțelege ce se întâmplă într-o infrastructură de rețea.

Pentru a vă interesa, vă voi oferi câteva capturi de ecran despre Skydive. Mai jos va fi o postare despre o introducere în Skydive.

Adăugarea manuală a unui nod la topologia Skydive prin clientul Skydive

Adăugarea manuală a unui nod la topologia Skydive prin clientul Skydive

Post "Introducere în skydive.network» pe Habré.

Skydive afișează topologia rețelei primind evenimente de rețea de la agenții Skydive. V-ați întrebat vreodată cum să adăugați sau să afișați într-o diagramă de topologie componente de rețea care se află în afara rețelei agentului Skydive sau obiecte din afara rețelei, cum ar fi TOR, stocarea datelor etc. Nu mai trebuie să vă faceți griji pentru asta datorită API-ului Node rule .

Începând cu versiunea 0.20, Skydive oferă un API de reguli de noduri care poate fi utilizat pentru a crea noduri și margini noi și pentru a actualiza metadatele nodurilor existente. API-ul Node rule este împărțit în două API: node rule API și edge rule API. API-ul Node Rule este folosit pentru a crea un nou nod și pentru a actualiza metadatele unui nod existent. API-ul edge rule este folosit pentru a crea o graniță între două noduri, de exemplu. conectează două noduri.

În acest blog vom vedea două cazuri de utilizare, dintre care unul este o componentă de rețea care nu face parte din rețeaua de parașutism. A doua opțiune este o componentă non-rețea. Înainte de aceasta, vom analiza câteva modalități de bază de a utiliza API-ul Reguli de topologie.

Crearea unui Nod Skydive

Pentru a crea un nod, trebuie să furnizați un nume de nod unic și un tip de nod valid. De asemenea, puteți oferi câteva opțiuni suplimentare.

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

Actualizați metadatele Skydive Nodes

Pentru a actualiza metadatele unui nod existent, trebuie să furnizați o interogare gremlin pentru a selecta nodurile pe care doriți să actualizați metadatele. Conform solicitării dvs., puteți actualiza metadatele unuia sau mai multor noduri folosind o regulă pentru un singur nod.

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

Crearea unui Skydive Edge

Pentru a crea o margine, trebuie să specificați nodurile sursă și destinație și tipul de legătură al marginii; pentru a crea un nod copil, valoarea tipului de legătură trebuie să fie proprietate; în mod similar, pentru a crea un tip de legătură layer2, valoarea tipului de legătură trebuie să fie stratul 2. Puteți crea mai mult de o legătură între două noduri, dar tipul de legătură trebuie să fie diferit.

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

Primul caz de utilizare

În acest caz, ne vom uita la cum să arătăm un dispozitiv non-rețea în topologia parașutismului. Să considerăm că avem un depozit de date care trebuie afișat într-o diagramă de topologie de parașutism cu câteva metadate utile.

Trebuie doar să creăm o regulă de nod pentru a adăuga dispozitivul la topologie. Putem adăuga metadatele dispozitivului ca parte a comenzii create sau, ulterior, putem crea una sau mai multe comenzi pentru regulile nodului de actualizare.

Rulați următoarea comandă de regulă gazdă pentru a adăuga un dispozitiv de stocare la diagrama topologiei.

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"

Rulați comanda sub regula de margine pentru a asocia nodul creat cu nodul gazdă.

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

După comenzile de mai sus, acum puteți vedea dispozitivul vizibil în diagrama topologiei parașutismului cu metadatele date, așa cum se arată în imaginea de mai jos.

Adăugarea manuală a unui nod la topologia Skydive prin clientul Skydive

Al doilea caz de utilizare

În acest caz, vom vedea cum să adăugați un dispozitiv de rețea care nu face parte din rețeaua de parașutism. Să ne uităm la acest exemplu. Avem doi agenți de parașutism care rulează pe două gazde diferite, pentru a conecta aceste două gazde avem nevoie de un comutator TOR. Chiar dacă putem realiza acest lucru prin definirea nodurilor de structură și a legăturilor într-un fișier de configurare, să vedem cum putem face același lucru folosind API-ul Reguli de topologie.

Fără un comutator TOR, cei doi agenți vor apărea ca două noduri diferite fără nicio legătură, așa cum se arată în imaginea de mai jos.

Adăugarea manuală a unui nod la topologia Skydive prin clientul Skydive

Acum rulați următoarele comenzi Reguli gazdă pentru a crea comutatorul și porturile 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"

După cum puteți vedea, comutatorul TOR și porturile au fost create și adăugate la topologia parașutismului, iar topologia va arăta acum ca în imaginea de mai jos.

Adăugarea manuală a unui nod la topologia Skydive prin clientul Skydive

Acum rulați următoarele comenzi Edge Rule pentru a crea o conexiune între comutatorul TOR, portul 1 și interfața publică a gazdei 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"

Rulați următoarele comenzi pentru a crea o legătură între portul 2 al comutatorului TOR și interfața publică gazdă 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"

Proprietatea și asocierile layer2 sunt acum create între comutatorul TOR și port, precum și asocierile layer2 între agenți și porturi. Acum topologia finală va arăta ca imaginea de mai jos.

Adăugarea manuală a unui nod la topologia Skydive prin clientul Skydive

Acum, cei doi gazde/agenți sunt conectați corect și puteți testa conexiunea sau puteți crea o captură pe calea cea mai scurtă între cele două gazde.

PS Link către postarea originală

Căutăm persoane care ar putea scrie postări despre alte funcții Skydive.
Chat Telegram prin skydive.network.

Sursa: www.habr.com

Adauga un comentariu