Skydive кардары аркылуу кол менен Skydive топологиясына түйүн кошуу

Skydive бул ачык булак, реалдуу убакыттагы тармак топологиясы жана протокол анализатору. Ал тармактык инфраструктурада эмне болуп жатканын түшүнүүнүн комплекстүү жолун камсыз кылууга багытталган.

Сизди кызыктыруу үчүн, мен сизге Skydive жөнүндө бир нече скриншот берем. Төмөндө Skydive менен таанышуу боюнча пост болот.

Skydive кардары аркылуу кол менен Skydive топологиясына түйүн кошуу

Skydive кардары аркылуу кол менен Skydive топологиясына түйүн кошуу

Пост "skydive.network менен таанышуу» Habré боюнча.

Skydive тармактык окуяларды Skydive агенттеринен кабыл алуу менен тармактын топологиясын көрсөтөт. Skydive агент тармагынан тышкаркы же тармактык эмес объекттерди топология диаграммасына кантип кошууну же көрсөтүүнү ойлонуп көрдүңүз беле, мисалы, TOR, маалыматтарды сактоо ж.б.

0.20 версиясынан бери Skydive жаңы түйүндөрдү жана четтерди түзүү жана учурдагы түйүндөрдүн метаберилиштерин жаңыртуу үчүн колдонула турган Түйүн эрежесинин API'син камсыз кылат. Түйүн эрежесинин API'си эки APIге бөлүнөт: түйүн эрежеси API жана четки эреже API. Node Rule API жаңы түйүн түзүү жана учурдагы түйүндүн метаберилиштерин жаңыртуу үчүн колдонулат. Edge эреже API эки түйүн ортосунда чек түзүү үчүн колдонулат, б.а. эки түйүн байланыштырат.

Бул блогдо биз эки колдонуу учурун көрөбүз, алардын бири парашют менен секирүү тармагына кирбеген тармак компоненти. Экинчи параметр - тармактык эмес компонент. Ага чейин биз Топология эрежелеринин API'син колдонуунун негизги жолдорун карап чыгабыз.

Skydive түйүнүн түзүү

Түйүндү түзүү үчүн сиз уникалдуу түйүн атын жана жарактуу түйүн түрүн беришиңиз керек. Сиз ошондой эле кээ бир кошумча параметрлерди камсыз кыла алат.

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

Skydive түйүндөрүнүн метадайындарын жаңыртыңыз

Учурдагы түйүндүн метаберилиштерин жаңыртуу үчүн, сиз метадайындарды жаңырткыңыз келген түйүндөрдү тандоо үчүн gremlin сурамын беришиңиз керек. Сурамыңыз боюнча, сиз бир же бир нече түйүндөрдүн метадайындарын бир түйүн эрежесин колдонуп жаңырта аласыз.

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 түзүү

Чет түзүү үчүн, сиз булак жана көздөгөн түйүндөрдү жана четтин шилтеме түрүн көрсөтүшүңүз керек; бала түйүн түзүү үчүн шилтеме түрүнүн мааниси менчик болушу керек; ушуга окшош, шилтеме түрүнүн катмарын түзүү үчүн шилтеме түрүнүн мааниси болушу керек. катмар2. Сиз эки түйүн ортосунда бирден ашык шилтеме түзө аласыз, бирок шилтеменин түрү ар кандай болушу керек.

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

Биринчи колдонуу учуру

Бул учурда, биз парашюттан секирүү топологиясында тармактык эмес түзүлүштү кантип көрсөтүүнү карап чыгабыз. Келгиле, бизде кээ бир пайдалуу метадайындар менен парашют топологиясынын диаграммасында көрсөтүлүшү керек болгон маалымат кампасы бар экенин карап көрөлү.

Түзмөктү топологияга кошуу үчүн жөн гана түйүн эрежесин түзүшүбүз керек. Түзмөктүн метадайындарын түзүү буйругунун бөлүгү катары кошо алабыз, же кийинчерээк бир же бир нече жаңыртуу түйүн эреже буйруктарын түзө алабыз.

Топология диаграммасына сактоо түзүлүшүн кошуу үчүн төмөнкү хост эрежеси буйругун иштетиңиз.

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"

Түзүлгөн түйүндү хост түйүнү менен байланыштыруу үчүн четки эреженин астындагы буйрукту иштетиңиз.

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

Жогорудагы буйруктардан кийин, сиз азыр төмөндөгү сүрөттө көрсөтүлгөндөй, парашюттан секирүү топология диаграммасында көрсөтүлгөн метаберилиштер менен түзмөктү көрө аласыз.

Skydive кардары аркылуу кол менен Skydive топологиясына түйүн кошуу

Экинчи колдонуу учуру

Бул учурда биз парашют менен секирүү тармагына кирбеген тармак түзүлүшүн кантип кошууну көрөбүз. Келгиле, бул мисалды карап көрөлү. Бизде эки башка хостто иштеген эки парашюттан секирүү агенти бар, бул эки хостту туташтыруу үчүн бизге TOR которуштуруу керек. Буга конфигурация файлындагы түзүмдүк түйүндөр менен шилтемелерди аныктоо аркылуу жетише алсак да, келгиле, Топология эрежелеринин API'си аркылуу кантип ошондой кыла аларыбызды карап көрөлү.

TOR которгучу жок болсо, эки агент төмөндөгү сүрөттө көрсөтүлгөндөй, эч кандай шилтемеси жок эки башка түйүн катары пайда болот.

Skydive кардары аркылуу кол менен Skydive топологиясына түйүн кошуу

Эми TOR которуштурууну жана портторду түзүү үчүн төмөнкү Хост эрежелеринин буйруктарын аткарыңыз.

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"

Көрүнүп тургандай, TOR которуштуруусу жана порттору түзүлүп, парашюттан секирүү топологиясына кошулду жана топология эми төмөндөгү сүрөттөгүдөй болот.

Skydive кардары аркылуу кол менен Skydive топологиясына түйүн кошуу

Эми TOR которуштуруусу, 1-порт жана 1-хосттун коомдук интерфейсинин ортосунда байланыш түзүү үчүн төмөнкү Edge Rule буйруктарын аткарыңыз.

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"

TOR которуштуруу порт 2 менен хост 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"

Эми TOR которгучу менен порттун ортосунда ээлик жана катмар2 бирикмелери, ошондой эле агенттер менен порттор ортосундагы 2-кабат бирикмелери түзүлөт. Эми акыркы топология төмөндөгү сүрөттөгүдөй болот.

Skydive кардары аркылуу кол менен Skydive топологиясына түйүн кошуу

Эми эки хост/агент туура туташты жана сиз байланышты текшерип же эки хосттун ортосунда эң кыска жолду түзө аласыз.

PS Шилтеме оригиналдуу пост

Биз башка Skydive функциялары жөнүндө пост жаза турган адамдарды издеп жатабыз.
Telegram чат skydive.network аркылуу.

Source: www.habr.com

Комментарий кошуу