Skydive on avoimen lähdekoodin reaaliaikainen verkkotopologia ja protokolla-analysaattori. Sen tavoitteena on tarjota kattava tapa ymmärtää, mitä verkkoinfrastruktuurissa tapahtuu.
Kiinnostaakseni sinua annan sinulle muutaman kuvakaappauksen Skydivestä. Alla on viesti Skydive-esittelystä.
Lähetä "
Skydive näyttää verkon topologian vastaanottamalla verkkotapahtumat Skydive-agenteista. Oletko koskaan miettinyt, kuinka lisätä tai näyttää topologiakaaviossa verkkokomponentteja, jotka ovat Skydive-agenttiverkon ulkopuolella, tai ei-verkkoobjekteja, kuten TOR, tietotallennus jne. Node rule API:n ansiosta siitä ei tarvitse enää huolehtia.
Versiosta 0.20 lähtien Skydive tarjoaa Node rule API:n, jota voidaan käyttää uusien solmujen ja reunojen luomiseen sekä olemassa olevien solmujen metatietojen päivittämiseen. Node rule API on jaettu kahteen sovellusliittymään: node rule API ja reunasäännön API. Node Rule API:a käytetään uuden solmun luomiseen ja olemassa olevan solmun metatietojen päivittämiseen. Reunasäännön API:lla luodaan raja kahden solmun välille, ts. yhdistää kaksi solmua.
Tässä blogissa näemme kaksi käyttötapausta, joista toinen on verkkokomponentti, joka ei kuulu laskuvarjohypyn verkkoon. Toinen vaihtoehto on ei-verkkokomponentti. Sitä ennen tarkastellaan joitain perus tapoja käyttää Topology Rules API:ta.
Skydive-solmun luominen
Solmun luomiseksi sinun on annettava yksilöllinen solmun nimi ja kelvollinen solmutyyppi. Voit myös tarjota joitain lisävaihtoehtoja.
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": ""
}
Päivitä Skydive Nodesin metatiedot
Jos haluat päivittää olemassa olevan solmun metatiedot, sinun on annettava gremlin-kysely valitaksesi solmut, joiden metatiedot haluat päivittää. Pyynnösi mukaan voit päivittää yhden tai useamman solmun metatiedot käyttämällä yhden solmun sääntöä.
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 Edgen luominen
Reunan luomiseksi sinun on määritettävä lähde- ja kohdesolmut sekä reunan linkkityyppi; lapsisolmun luomiseksi linkin tyypin arvon on oltava omistajuus; samoin linkkityypin layer2 luomiseksi linkin tyypin arvon on oltava kerros 2. Voit luoda useamman kuin yhden linkin kahden solmun välille, mutta linkin tyypin on oltava erilainen.
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"
}
}
Ensimmäinen käyttötapaus
Tässä tapauksessa tarkastellaan, kuinka verkkoon kuulumaton laite näytetään laskuvarjohypyn topologiassa. Ajatellaanpa, että meillä on tietovarasto, joka on näytettävä laskuvarjohypyn topologiakaaviossa hyödyllisten metatietojen kera.
Meidän on vain luotava solmusääntö laitteen lisäämiseksi topologiaan. Voimme lisätä laitteen metatiedot osana Create-komentoa tai luoda myöhemmin yhden tai useamman päivityssolmun sääntökomennon.
Suorita seuraava isäntäsääntökomento lisätäksesi tallennuslaitteen topologiakaavioon.
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"
Suorita reunasäännön alla oleva komento yhdistääksesi luotu solmu isäntäsolmuun.
skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"
Yllä olevien komentojen jälkeen voit nyt nähdä laitteen näkyvissä laskuvarjohypyn topologiakaaviossa annetuilla metatiedoilla alla olevan kuvan mukaisesti.
Toinen käyttötapaus
Tässä tapauksessa näemme kuinka lisätä verkkolaite, joka ei ole osa laskuvarjohypyn verkkoa. Katsotaanpa tätä esimerkkiä. Meillä on kaksi laskuvarjohypyn agenttia, jotka toimivat kahdella eri isännällä, näiden kahden isäntäkoneen yhdistämiseksi tarvitsemme TOR-kytkimen. Vaikka voimme saavuttaa tämän määrittämällä rakennesolmut ja linkit konfigurointitiedostoon, katsotaanpa, kuinka voimme tehdä saman käyttämällä Topology Rules API:ta.
Ilman TOR-kytkintä nämä kaksi agenttia näkyvät kahtena eri solmuna ilman linkkejä, kuten alla olevassa kuvassa näkyy.
Luo nyt TOR-kytkin ja portit suorittamalla seuraavat Host Rules -komennot.
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"
Kuten näet, TOR-kytkin ja portit on luotu ja lisätty laskuvarjohypyn topologiaan, ja topologia näyttää nyt alla olevan kuvan kalta.
Suorita nyt seuraavat Edge Rule -komennot luodaksesi yhteyden TOR-kytkimen, portin 1 ja isäntä 1:n julkisen käyttöliittymän välille.
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"
Suorita seuraavat komennot luodaksesi linkin TOR-kytkimen portin 2 ja isäntä 2 julkisen liitännän välille
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"
TOR-kytkimen ja portin välille luodaan nyt omistajuus- ja kerros2-assosiaatiot sekä agenttien ja porttien välille kerros2-yhteydet. Nyt lopullinen topologia näyttää alla olevalta kuvalta.
Nyt kaksi isäntää/agenttia on yhdistetty oikein ja voit testata yhteyttä tai luoda lyhimmän polun kaappauksen kahden isännän välille.
PS Linkki
Etsimme ihmisiä, jotka voisivat kirjoittaa viestejä muista Skydive-ominaisuuksista.
Lähde: will.com