Manu-manong pagdaragdag ng node sa Skydive topology sa pamamagitan ng Skydive client

Ang Skydive ay isang open source, real-time na topology ng network at protocol analyzer. Nilalayon nitong magbigay ng komprehensibong paraan upang maunawaan kung ano ang nangyayari sa isang imprastraktura ng network.

Para interesado ka, bibigyan kita ng ilang screenshot tungkol sa Skydive. Sa ibaba ay magkakaroon ng isang post sa isang pagpapakilala sa Skydive.

Manu-manong pagdaragdag ng node sa Skydive topology sa pamamagitan ng Skydive client

Manu-manong pagdaragdag ng node sa Skydive topology sa pamamagitan ng Skydive client

Post "Panimula sa skydive.network»sa Habré.

Ipinapakita ng Skydive ang topology ng network sa pamamagitan ng pagtanggap ng mga kaganapan sa network mula sa mga ahente ng Skydive. Naisip mo na ba kung paano magdagdag o magpapakita sa isang topology diagram ng mga bahagi ng network na nasa labas ng Skydive agent network o mga bagay na hindi network gaya ng TOR, data storage, atbp. Hindi na kailangang mag-alala tungkol doon salamat sa Node rule API .

Mula noong bersyon 0.20, nagbibigay ang Skydive ng Node rule API na magagamit para gumawa ng mga bagong node at gilid at para i-update ang metadata ng mga kasalukuyang node. Ang Node rule API ay nahahati sa dalawang API: ang node rule API at ang edge rule API. Ginagamit ang Node Rule API para gumawa ng bagong node at i-update ang metadata ng isang umiiral nang node. Ginagamit ang edge rule API para gumawa ng hangganan sa pagitan ng dalawang node, i.e. nag-uugnay sa dalawang node.

Sa blog na ito makikita natin ang dalawang kaso ng paggamit, ang isa ay bahagi ng network na hindi bahagi ng skydive network. Ang pangalawang opsyon ay isang non-network na bahagi. Bago iyon, titingnan natin ang ilang pangunahing paraan upang magamit ang Topology Rules API.

Paglikha ng Skydive Node

Upang lumikha ng isang node, dapat kang magbigay ng isang natatanging pangalan ng node at isang wastong uri ng node. Maaari ka ring magbigay ng ilang karagdagang mga opsyon.

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

I-update ang Skydive Nodes Metadata

Upang i-update ang metadata ng isang umiiral na node, dapat kang magbigay ng gremlin query para piliin ang mga node kung saan mo gustong i-update ang metadata. Alinsunod sa iyong kahilingan, maaari mong i-update ang metadata ng isa o higit pang mga node gamit ang isang panuntunan ng node.

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

Paglikha ng Skydive Edge

Upang lumikha ng isang gilid, dapat mong tukuyin ang pinagmulan at patutunguhan na mga node at ang uri ng link ng gilid; upang lumikha ng isang child node, ang halaga ng uri ng link ay dapat na pagmamay-ari; gayundin, upang lumikha ng isang uri ng link na layer2, ang halaga ng uri ng link ay dapat na layer2. Maaari kang lumikha ng higit sa isang link sa pagitan ng dalawang node, ngunit ang uri ng link ay dapat na iba.

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

Unang kaso ng paggamit

Sa kasong ito, titingnan natin kung paano magpapakita ng isang non-network device sa skydive topology. Isaalang-alang natin na mayroon tayong data warehouse na kailangang ipakita sa isang skydive topology diagram na may ilang kapaki-pakinabang na metadata.

Kailangan lang nating gumawa ng node rule para idagdag ang device sa topology. Maaari kaming magdagdag ng metadata ng device bilang bahagi ng utos ng paggawa, o sa ibang pagkakataon ay lumikha ng isa o higit pang mga utos ng panuntunan sa pag-update ng node.

Patakbuhin ang sumusunod na command ng host rule para magdagdag ng storage device sa topology 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"

Patakbuhin ang command sa ibaba ng edge rule para iugnay ang ginawang node sa host node.

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

Pagkatapos ng mga command sa itaas, makikita mo na ngayon ang device na makikita sa skydive topology diagram na may ibinigay na metadata tulad ng ipinapakita sa larawan sa ibaba.

Manu-manong pagdaragdag ng node sa Skydive topology sa pamamagitan ng Skydive client

Pangalawang kaso ng paggamit

Sa kasong ito, makikita natin kung paano magdagdag ng network device na hindi bahagi ng skydive network. Tingnan natin ang halimbawang ito. Mayroon kaming dalawang skydive agent na tumatakbo sa dalawang magkaibang host, para ikonekta ang dalawang host na ito kailangan namin ng TOR switch. Kahit na makakamit natin ito sa pamamagitan ng pagtukoy ng mga structure node at link sa isang configuration file, tingnan natin kung paano natin ito magagawa gamit ang Topology Rules API.

Kung walang switch ng TOR, lalabas ang dalawang ahente bilang dalawang magkaibang node nang walang anumang mga link, tulad ng ipinapakita sa larawan sa ibaba.

Manu-manong pagdaragdag ng node sa Skydive topology sa pamamagitan ng Skydive client

Ngayon, patakbuhin ang sumusunod na mga utos ng Host Rules para gawin ang TOR switch at port.

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"

Tulad ng nakikita mo, ang TOR switch at mga port ay nilikha at idinagdag sa skydive topology, at ang topology ay magiging katulad na ngayon ng imahe sa ibaba.

Manu-manong pagdaragdag ng node sa Skydive topology sa pamamagitan ng Skydive client

Ngayon patakbuhin ang sumusunod na mga utos ng Edge Rule upang lumikha ng koneksyon sa pagitan ng TOR switch, port 1 at ang pampublikong interface ng host 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"

Patakbuhin ang mga sumusunod na command upang lumikha ng isang link sa pagitan ng TOR switch port 2 at host 2 pampublikong interface

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"

Ginagawa na ngayon ang pagmamay-ari at mga asosasyon ng layer2 sa pagitan ng switch ng TOR at ng port, pati na rin ng mga asosasyon ng layer2 sa pagitan ng mga ahente at port. Ngayon ang huling topology ay magiging hitsura ng imahe sa ibaba.

Manu-manong pagdaragdag ng node sa Skydive topology sa pamamagitan ng Skydive client

Ngayon ang dalawang host/ahente ay konektado nang tama at maaari mong subukan ang koneksyon o lumikha ng isang pinakamaikling pagkuha ng landas sa pagitan ng dalawang host.

PS Link sa orihinal na post

Naghahanap kami ng mga taong maaaring magsulat ng mga post tungkol sa iba pang feature ng Skydive.
Telegram chat sa pamamagitan ng skydive.network.

Pinagmulan: www.habr.com

Magdagdag ng komento