Shtimi i një nodi në topologjinë Skydive manualisht përmes klientit Skydive

Skydive — është një analizues i topologjisë së rrjetit dhe protokolleve me kod të hapur në kohë reale. Ai synon të ofrojë një mënyrë të plotë për të kuptuar se çfarë po ndodh në infrastrukturën e rrjetit.

Për t'ju interesuar, do të paraqes disa kapje ekranesh për Skydive. Pak më poshtë do të ketë një postim mbi hyrjen në Skydive.

Shtimi i një nodi në topologjinë Skydive manualisht përmes klientit Skydive

Shtimi i një nodi në topologjinë Skydive manualisht përmes klientit Skydive

Postimi "Hyrja në skydive.network" në Habré.

Skydive tregon topologjinë e rrjetit duke marrë ngjarje rrjeti nga agjentët Skydive. A keni ndonjëherë pyetur se si të shtoni ose të shfaqni në diagramin e topologjisë komponentë rrjeti që ndodhen jashtë rrjetit të agjentëve Skydive ose objekte që nuk janë rrjetike, si TOR, depo të dhënash, etj.? Mos u shqetësoni më për këtë, falë Node rule API.

Që nga versioni 0.20, Skydive ofron Node rule API, i cili mund të përdoret për të krijuar nyje dhe skaje të reja dhe për të azhurnuar metadatat e nyjeve ekzistuese. Node rule API ndahen në dy ndërfaqe API: ndërfaqen e rregullit të nyjës dhe ndërfaqen e rregullit të skajit. API i rregullit të nyjës përdoret për të krijuar një nyje të re dhe për të azhurnuar metadatat e një nyje ekzistuese. API i rregullit të skajit përdoret për të krijuar një lidhje midis dy nyjeve, dmth. lidh dy nyje.

Në këtë blog do të shohim dy raste përdorimi, njëri prej të cilëve është një komponent rrjeti që nuk është pjesë e rrjetit skydive. Rasti i dytë është një komponent jashtë rrjetit. Para kësaj, ne do të shqyrtojmë disa mënyra themelore për të përdorur API-të e rregullave të topologjisë.

Krijimi i një nyjeje Skydive

Për të krijuar një nyje, është e nevojshme të jepni një emër unik të nyjës dhe një tip të lejuar të nyjës. Mund të ofroni gjithashtu disa parametra shtesë.

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

Azhurnimi i Metadatat e Nyjeve Skydive

Për të azhurnuar metadatat e një nyjeje ekzistuese, është e domosdoshme të jepni një kërkesë në gjuhën gremlinë për të zgjedhur nyjet, në të cilat dëshiron të azhurnosh metadatat. Sipas kërkesës tuaj, mund të azhurnoni metadatat e një ose disa nyjeve me një rregull të vetëm të nyjës.

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

Krijimi i një skaji Skydive

Për të krijuar një skaj, është e nevojshme të jepni nyjën burim dhe nyjën destinim dhe tipin e lidhjes së skajit, për të krijuar një nyje fëmijë, vlera e tipit të lidhjes duhet të jetë ownership, po ashtu për të krijuar lidhje të tipit layer2, vlera e tipit të lidhjes duhet të jetë layer2. Mund të krijoni më shumë se një lidhje midis dy nyjeve, por tipi i lidhjes duhet të jetë ndryshe.

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

Rasti i parë i përdorimit

Në këtë rast ne do të shqyrtojmë si të tregojmë një pajisje që nuk është rrjetike në topologjinë skydive. Le të shqyrtojmë se kemi një depo të dhënash që duhet të shfaqet në diagramin e topologjisë skydive me disa metadata të dobishme.

Ne thjesht duhet të krijojmë një rregull nyje për të shtuar pajisjen në topologji. Mund të shtojmë metadatat e pajisjes si pjesë e komandës krijuese ose më vonë të krijojmë një ose më shumë komanda për azhurnimin e rregullit të nyjës.

Ekzekutoni komandën e mëposhtme të rregullit të nyjës për të shtuar pajisjen e memorie në diagramin e topologjisë.

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"

Ekzekutoni komandën e mëposhtme të rregullit të skajit për të lidhur nyjen e krijuar me nyjen e hostit.

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

Pas komandave të mësipërme tani mund të shihni pajisjen të duket në diagramin e topologjisë skydive me metadatat e caktuara, siç tregohet në figurën më poshtë.

Shtimi i një nodi në topologjinë Skydive manualisht përmes klientit Skydive

Rasti i dytë i përdorimit

Në këtë rast do të shohim se si të shtojmë një pajisje rrjetike që nuk është pjesë e rrjetit skydive. Le të shqyrtojmë këtë shembull. Kemi dy agjentë skydive që funksionojnë në dy hoste të ndryshme, për të lidhur këto dy hoste na nevojitet një switch TOR. Edhe nëse mund ta arrijmë këtë duke përcaktuar nyjet e strukturës dhe lidhjet në skedarin e konfigurimit, le të shohim se si mund ta bëjmë të njëjtën gjë duke përdorur API-të e rregullave të topologjisë.

Pa pa një komutator TOR, dy agjentë do të duken si dy nyje të ndryshme pa asnjë lidhje, siç ilustrohet në figurën më poshtë.

Shtimi i një nodi në topologjinë Skydive manualisht përmes klientit Skydive

Tani ekzekutoni komandat e mëposhtme për Rregullin e nyjes për të krijuar një komutator TOR dhe porte.

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"

Siç shihni, komutatori TOR dhe portet janë krijuar dhe shtuar në topologjinë skydive, dhe tani topologjia do të duket siç ilustrohet në figurën më poshtë.

Shtimi i një nodi në topologjinë Skydive manualisht përmes klientit Skydive

Tani ekzekutoni komandat e mëposhtme për Rregullin Edge për të krijuar lidhjen midis komutatorit TOR, portit 1 dhe ndërfaqes publike të hostit 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"

Ekzekutoni komandat e mëposhtme për të krijuar lidhjen midis komutatorit TOR, portit 2 dhe ndërfaqes publike të hostit 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"

Tani po krijohen lidhjet e pronës dhe të nivelit 2 midis komutatorit TOR dhe portit, si dhe lidhjet e nivelit 2 midis agjentëve dhe porteve. Tani topologjia përfundimtare do të duket siç ilustrohet në figurën më poshtë.

Shtimi i një nodi në topologjinë Skydive manualisht përmes klientit Skydive

Tani dy hoste / agjentë janë lidhur siç duhet dhe mund të kontrolloni lidhjen ose të krijoni një kapje të rrugës më të shkurtër midis dy hosteve.

P.S. Linku për postin origjinal

Po kërkohet njerëz që mund të shkruajnë postime për mundësi të tjera Skydive.
Telegram chat për skydive.network.

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster