Adăugarea unui nod în topologia Skydive manual prin intermediul clientului Skydive

Skydive este un analizator de topologie de rețea și protocoale cu sursă deschisă în timp real. Acesta este destinat să ofere o modalitate cuprinzătoare de a înțelege ce se întâmplă în infrastructura de rețea.

Pentru a vă stârni interesul, iată câteva capturi de ecran despre Skydive. Mai jos va fi un articol introdusu în Skydive.

Adăugarea unui nod în topologia Skydive manual prin intermediul clientului Skydive

Adăugarea unui nod în topologia Skydive manual prin intermediul clientului Skydive

Articolul „Introducere în skydive.network” pe Habr.

Skydive afișează topologia rețelei, obținând evenimente de rețea de la agenții Skydive. V-ați întrebat vreodată cum să adăugați sau să afișați pe diagramă componentele rețelei care sunt în afara rețelei agentului Skydive sau obiecte non-rețea, cum ar fi TOR, stocare de date etc.? Nu trebuie să mai fiți îngrijorat de asta, datorită API-ului Node rule.

Începând cu versiunea 0.20, Skydive oferă API-ul Node rule, care poate fi utilizat pentru a crea noduri și margini noi și pentru a actualiza metadatele nodurilor existente. API-urile Node rule sunt împărțite în două interfețe API: API-ul regulilor nodului și API-ul regulilor marginii. API-ul regulilor nodului este utilizat pentru a crea un nou nod și pentru a actualiza metadatele unui nod existent. API-ul regulilor marginii este utilizat pentru a crea o margine între două noduri, adică leagă două noduri.

În acest blog, vom explora două cazuri de utilizare, unul dintre ele fiind un component de rețea care nu face parte din rețeaua Skydive. Celălalt caz este un component non-rețea. Înainte de asta, vom examina câteva moduri de bază de utilizare a API-ului regulilor de topologie.

Crearea unui nod Skydive

Pentru a crea un nod, trebuie să specificați un nume unic al nodului și un tip de nod valid. De asemenea, puteți oferi câteva parametrii suplimentari.

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

Actualizarea Metadatelor Nodurilor Skydive

Pentru a actualiza metadatele unui nod existent, trebuie să furnizați o interogare în limbajul gremlin pentru a selecta nodurile în care doriți să actualizați metadatele. Conform interogării dvs., puteți actualiza metadatele unui sau mai multor noduri folosind regula unui 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 unei arce Skydive

Pentru a crea o arcă, trebuie să specificați nodurile de început și de sfârșit, precum și tipul de relație al arcei. Pentru a crea un nod copil, tipul de relație ar trebui să fie ownership, iar pentru a crea o relație de tip layer2, tipul de relație ar trebui să fie layer2. Puteți crea mai multe relații între două noduri, dar tipul relației 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"
  }
}

Prima variantă de utilizare

În acest caz, vom explora cum să afișăm un dispozitiv non-rețea în topologia Skydive. Să presupunem că avem un sistem de stocare a datelor care trebuie să fie reprezentat în diagrama topologică Skydive cu câteva metadate utile.

Trebuie să creăm o regulă de nod pentru a adăuga dispozitivul în topologie. Putem adăuga metadatele dispozitivului ca parte a comenzii de creare sau ulterior putem crea una sau mai multe comenzi de actualizare a regulii nodului.

Rulați comanda de regulă a nodului de mai jos pentru a adăuga un dispozitiv de stocare în schema 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 de mai jos a regulii arcelor pentru a lega nodul creat de nodul gazdă.

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

După executarea comenzilor de mai sus, acum puteți vedea dispozitivul vizibil în schema topologiei Skydive cu metadatele specificate, așa cum este ilustrat în imaginea de mai jos.

Adăugarea unui nod în topologia Skydive manual prin intermediul clientului Skydive

A doua variantă de utilizare

În acest caz, vom vedea cum să adăugăm un dispozitiv de rețea care nu face parte din rețeaua Skydive. Să luăm acest exemplu. Avem doi agenți Skydive, care funcționează pe două gazde diferite; pentru a conecta aceste două gazde avem nevoie de un switch TOR. Chiar dacă putem realiza acest lucru, definind nodurile structurii și legăturile în fișierul de configurare, să vedem cum putem face același lucru folosind API-ul regulilor de topologie.

Fără switch-ul TOR, cei doi agenți vor apărea ca două noduri diferite fără legături, așa cum este ilustrat în figurile de mai jos.

Adăugarea unui nod în topologia Skydive manual prin intermediul clientului Skydive

Acum executați următoarele comenzi pentru Regulile nodului, pentru a crea switch-ul TOR și porturile.

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, switch-ul TOR și porturile au fost create și adăugate în topologia Skydive, iar acum topologia va arăta astfel, așa cum este ilustrat în figurile de mai jos.

Adăugarea unui nod în topologia Skydive manual prin intermediul clientului Skydive

Acum executați comenzile de mai jos pentru Regulile Edge, pentru a crea o legătură între switch-ul 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"

Executati următoarele comenzi pentru a crea o legătură între switch-ul TOR, portul 2 și interfața publică a gazdei 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"

Acum se creează legăturile ownership și layer2 între switch-ul TOR și port, precum și legăturile layer2 între agenți și porturi. Acum, topologia finală va arăta astfel, așa cum este ilustrat în figurile de mai jos.

Adăugarea unui nod în topologia Skydive manual prin intermediul clientului Skydive

Acum cele două gazde/agenți sunt corect conectate, iar dumneavoastră puteți verifica conexiunea sau crea o captură a celei mai scurte căi între cele două gazde.

P.S. Linkul către postarea originală

Se caută persoane care ar putea scrie postări despre alte posibilități Skydive.
Chatul Telegram pe skydive.network.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster