Skydive-ի տոպոլոգիայում հանգույց ավելացնելը ձեռքով Skydive հաճախորդի միջոցով

Skydive-ը բաց կոդով, իրական ժամանակի ցանցի տոպոլոգիա և արձանագրության անալիզատոր է: Այն նպատակ ունի ապահովելու համապարփակ ճանապարհ՝ հասկանալու, թե ինչ է կատարվում ցանցային ենթակառուցվածքում:

Ձեզ հետաքրքրելու համար ես ձեզ մի քանի սքրինշոթ կտամ Skydive-ի մասին: Ստորև կլինի մի գրառում Skydive-ի ներածության մասին:

Skydive-ի տոպոլոգիայում հանգույց ավելացնելը ձեռքով Skydive հաճախորդի միջոցով

Skydive-ի տոպոլոգիայում հանգույց ավելացնելը ձեռքով Skydive հաճախորդի միջոցով

գրառում»Ծանոթացում skydive.network-ին» Habré-ում:

Skydive-ը ցուցադրում է ցանցի տոպոլոգիան՝ ստանալով ցանցային իրադարձություններ Skydive գործակալներից: Երբևէ մտածե՞լ եք, թե ինչպես ավելացնել կամ ցուցադրել տոպոլոգիայի դիագրամում ցանցային բաղադրիչներ, որոնք գտնվում են Skydive գործակալական ցանցից դուրս կամ ոչ ցանցային օբյեկտներ, ինչպիսիք են TOR-ը, տվյալների պահեստը և այլն: Այդ մասին այլևս անհանգստանալու կարիք չկա՝ շնորհիվ Node rule API-ի:

0.20 տարբերակից ի վեր Skydive-ը տրամադրում է Node կանոնի API, որը կարող է օգտագործվել նոր հանգույցներ և եզրեր ստեղծելու և գոյություն ունեցող հանգույցների մետատվյալները թարմացնելու համար: Node կանոնի API-ն բաժանված է երկու API-ի՝ հանգույցի կանոնների API-ի և եզրային կանոնների API-ի: Node Rule API-ն օգտագործվում է նոր հանգույց ստեղծելու և գոյություն ունեցող հանգույցի մետատվյալները թարմացնելու համար։ Edge կանոն API-ն օգտագործվում է երկու հանգույցների միջև սահման ստեղծելու համար, այսինքն. միացնում է երկու հանգույց:

Այս բլոգում մենք կտեսնենք երկու օգտագործման դեպքեր, որոնցից մեկը ցանցային բաղադրիչ է, որը skydive ցանցի մաս չէ: Երկրորդ տարբերակը ոչ ցանցային բաղադրիչն է: Մինչ այդ, մենք կանդրադառնանք Topology Rules 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 ստեղծելու համար, հղումի տեսակի արժեքը պետք է լինի. շերտ 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 տոպոլոգիայում: Համարենք, որ մենք ունենք տվյալների պահեստ, որը պետք է ցուցադրվի skydive տոպոլոգիայի դիագրամում՝ որոշ օգտակար մետատվյալներով:

Մենք պարզապես պետք է ստեղծենք հանգույցի կանոն՝ սարքը տոպոլոգիայում ավելացնելու համար: Մենք կարող ենք սարքի մետատվյալներ ավելացնել որպես ստեղծել հրամանի մաս, կամ հետագայում ստեղծել մեկ կամ մի քանի թարմացման հանգույցի կանոնների հրամաններ:

Տոպոլոգիայի դիագրամում պահեստավորման սարք ավելացնելու համար գործարկեք հյուրընկալող կանոնի հետևյալ հրամանը:

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-ի տոպոլոգիայում հանգույց ավելացնելը ձեռքով Skydive հաճախորդի միջոցով

Երկրորդ օգտագործման դեպք

Այս դեպքում մենք կտեսնենք, թե ինչպես ավելացնել ցանցային սարք, որը skydive ցանցի մաս չէ: Եկեք նայենք այս օրինակին: Մենք ունենք երկու skydive գործակալներ, որոնք աշխատում են երկու տարբեր հոսթների վրա, այս երկու հոսթները միացնելու համար մեզ անհրաժեշտ է TOR անջատիչ: Թեև մենք կարող ենք հասնել դրան՝ սահմանելով կառուցվածքային հանգույցներ և հղումներ կազմաձևման ֆայլում, եկեք տեսնենք, թե ինչպես կարող ենք նույնն անել՝ օգտագործելով Topology Rules API-ն:

Առանց TOR անջատիչի, երկու գործակալները կհայտնվեն որպես երկու տարբեր հանգույցներ՝ առանց որևէ կապի, ինչպես ցույց է տրված ստորև նկարում:

Skydive-ի տոպոլոգիայում հանգույց ավելացնելը ձեռքով Skydive հաճախորդի միջոցով

Այժմ գործարկեք հետևյալ Host Rules հրամանները՝ 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-ի տոպոլոգիայում հանգույց ավելացնելը ձեռքով Skydive հաճախորդի միջոցով

Այժմ գործարկեք հետևյալ Edge Rule հրամանները՝ կապ ստեղծելու TOR անջատիչի, պորտ 1-ի և հյուրընկալող 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"

Գործարկեք հետևյալ հրամանները՝ TOR switch պորտի 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"

Այժմ ստեղծվում են սեփականության և layer2 ասոցիացիաներ TOR անջատիչի և պորտի միջև, ինչպես նաև layer2 ասոցիացիաներ գործակալների և նավահանգիստների միջև: Այժմ վերջնական տոպոլոգիան նման կլինի ստորև ներկայացված պատկերին:

Skydive-ի տոպոլոգիայում հանգույց ավելացնելը ձեռքով Skydive հաճախորդի միջոցով

Այժմ երկու հոսթները/գործակալները ճիշտ են միացված, և դուք կարող եք փորձարկել կապը կամ ստեղծել ամենակարճ ճանապարհը երկու հոսթների միջև:

PS Հղում դեպի բնօրինակ գրառում

Մենք փնտրում ենք մարդկանց, ովքեր կարող են գրառումներ գրել Skydive-ի այլ հնարավորությունների մասին:
Telegram զրույց skydive.network-ի միջոցով:

Source: www.habr.com

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