Neautomatinis mazgo įtraukimas į „Skydive“ topologiją per „Skydive“ klientą

Skydive yra atvirojo kodo, realaus laiko tinklo topologijos ir protokolų analizatorius. Juo siekiama visapusiškai suprasti, kas vyksta tinklo infrastruktūroje.

Kad jus sudomintų, pateiksiu keletą ekrano kopijų apie šokinėjimą su parašiutu. Žemiau bus įrašas apie įvadą į parašiutu.

Neautomatinis mazgo įtraukimas į „Skydive“ topologiją per „Skydive“ klientą

Neautomatinis mazgo įtraukimas į „Skydive“ topologiją per „Skydive“ klientą

Paskelbti "Įvadas į skydive.network» apie Habré.

Skydive rodo tinklo topologiją, gaudama tinklo įvykius iš Skydive agentų. Ar kada nors susimąstėte, kaip pridėti arba parodyti topologijos diagramoje tinklo komponentus, esančius už Skydive agento tinklo, arba ne tinklo objektus, pvz., TOR, duomenų saugyklą ir kt. Dėl mazgo taisyklės API nebereikia dėl to jaudintis.

Nuo 0.20 versijos Skydive teikia mazgo taisyklės API, kurią galima naudoti kuriant naujus mazgus ir kraštus bei atnaujinti esamų mazgų metaduomenis. Mazgo taisyklės API yra padalintas į dvi API: mazgo taisyklės API ir krašto taisyklės API. Mazgo taisyklės API naudojama sukurti naują mazgą ir atnaujinti esamo mazgo metaduomenis. Krašto taisyklės API naudojama ribai tarp dviejų mazgų sukurti, t.y. jungia du mazgus.

Šiame tinklaraštyje pamatysime du naudojimo atvejus, iš kurių vienas yra tinklo komponentas, kuris nėra šuolio parašiutu tinklo dalis. Antrasis variantas yra ne tinklo komponentas. Prieš tai apžvelgsime keletą pagrindinių Topologijos taisyklių API naudojimo būdų.

Šuolių su parašiutu mazgo kūrimas

Norėdami sukurti mazgą, turite pateikti unikalų mazgo pavadinimą ir galiojantį mazgo tipą. Taip pat galite pateikti keletą papildomų parinkčių.

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

Atnaujinkite parašiutinio šokinėjimo mazgų metaduomenis

Norėdami atnaujinti esamo mazgo metaduomenis, turite pateikti gremlin užklausą, kad pasirinktumėte mazgus, kuriuose norite atnaujinti metaduomenis. Pagal jūsų užklausą galite atnaujinti vieno ar kelių mazgų metaduomenis naudodami vieno mazgo taisyklę.

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 kūrimas

Norėdami sukurti kraštą, turite nurodyti šaltinio ir paskirties mazgus bei krašto nuorodos tipą; norėdami sukurti antrinį mazgą, nuorodos tipo reikšmė turi būti nuosavybės teisė; panašiai, norint sukurti nuorodos tipo layer2, nuorodos tipo reikšmė turi būti sluoksnis2. Galite sukurti daugiau nei vieną nuorodą tarp dviejų mazgų, tačiau nuorodos tipas turi skirtis.

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

Pirmasis naudojimo atvejis

Šiuo atveju pažiūrėsime, kaip parašiutinio šuolio topologijoje parodyti ne tinklo įrenginį. Įsivaizduokime, kad turime duomenų saugyklą, kuri turi būti rodoma šuolio parašiutu topologijos diagramoje su naudingais metaduomenimis.

Mums tereikia sukurti mazgo taisyklę, kad įtrauktume įrenginį į topologiją. Įrenginio metaduomenis galime įtraukti kaip kūrimo komandos dalį arba vėliau sukurti vieną ar daugiau atnaujinimo mazgo taisyklės komandų.

Vykdykite šią pagrindinio kompiuterio taisyklės komandą, kad pridėtumėte saugojimo įrenginį į topologijos diagramą.

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"

Vykdykite komandą po krašto taisykle, kad susietumėte sukurtą mazgą su pagrindiniu mazgu.

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

Po pirmiau pateiktų komandų dabar galite pamatyti įrenginį, matomą parašiutinio šuolio topologijos diagramoje su nurodytais metaduomenimis, kaip parodyta paveikslėlyje žemiau.

Neautomatinis mazgo įtraukimas į „Skydive“ topologiją per „Skydive“ klientą

Antras naudojimo atvejis

Tokiu atveju pamatysime, kaip pridėti tinklo įrenginį, kuris nėra parašiutininkų tinklo dalis. Pažiūrėkime į šį pavyzdį. Turime du parašiutinio šuolio agentus, veikiančius dviejuose skirtinguose pagrindiniuose kompiuteriuose. Norėdami sujungti šiuos du pagrindinius kompiuterius, mums reikia TOR jungiklio. Nors mes galime tai pasiekti konfigūracijos faile apibrėžę struktūros mazgus ir nuorodas, pažiūrėkime, kaip galime padaryti tą patį naudodami topologijos taisyklių API.

Be TOR jungiklio, du agentai bus rodomi kaip du skirtingi mazgai be jokių nuorodų, kaip parodyta paveikslėlyje žemiau.

Neautomatinis mazgo įtraukimas į „Skydive“ topologiją per „Skydive“ klientą

Dabar paleiskite šias Host Rules komandas, kad sukurtumėte TOR jungiklį ir prievadus.

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"

Kaip matote, TOR jungiklis ir prievadai buvo sukurti ir įtraukti į parašiutinio šokinėjimo topologiją, o topologija dabar atrodys taip, kaip paveikslėlyje žemiau.

Neautomatinis mazgo įtraukimas į „Skydive“ topologiją per „Skydive“ klientą

Dabar paleiskite šias Edge Rule komandas, kad sukurtumėte ryšį tarp TOR jungiklio, 1 prievado ir 1 pagrindinio kompiuterio viešosios sąsajos.

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"

Vykdykite šias komandas, kad sukurtumėte ryšį tarp TOR jungiklio 2 prievado ir 2 pagrindinio kompiuterio viešosios sąsajos

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"

Dabar tarp TOR jungiklio ir prievado sukuriamos nuosavybės ir 2 sluoksnio sąsajos, taip pat agentų ir prievadų 2 sluoksnio asociacijos. Dabar galutinė topologija atrodys taip, kaip paveikslėlyje žemiau.

Neautomatinis mazgo įtraukimas į „Skydive“ topologiją per „Skydive“ klientą

Dabar du pagrindiniai kompiuteriai / agentai yra tinkamai prijungti ir galite išbandyti ryšį arba sukurti trumpiausio kelio tarp dviejų kompiuterių fiksavimą.

PS Nuoroda į originalus įrašas

Ieškome žmonių, kurie galėtų parašyti žinutes apie kitas šuolio parašiutu ypatybes.
Telegramos pokalbis per skydive.network.

Šaltinis: www.habr.com

Добавить комментарий