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

Skydive – ашық бастапқы коды, нақты уақыттағы желі топологиясы және протокол анализаторы. Ол желілік инфрақұрылымда не болып жатқанын түсінудің жан-жақты жолын ұсынуға бағытталған.

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

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

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

Хабарламаskydive.network-ке кіріспе» Хабреде.

Skydive желілік оқиғаларды Skydive агенттерінен қабылдау арқылы желі топологиясын көрсетеді. Skydive агент желісінен тыс желі құрамдастарын немесе TOR, деректерді сақтау және т.б. сияқты желілік емес нысандарды топология диаграммасына қалай қосуға немесе көрсетуге болатынын ойлап көрдіңіз бе. Түйін ережесі API арқасында енді бұл туралы алаңдаудың қажеті жоқ.

0.20 нұсқасынан бастап Skydive жаңа түйіндер мен жиектерді жасау және бұрыннан бар түйіндердің метадеректерін жаңарту үшін пайдалануға болатын Түйін ережесі API ұсынады. Түйін ережесі API екі API интерфейсіне бөлінген: түйін ережесі API және шеткі ереже API. Түйін ережесі API жаңа түйін жасау және бар түйіннің метадеректерін жаңарту үшін пайдаланылады. Edge ережесі API екі түйін арасындағы шекараны жасау үшін пайдаланылады, яғни. екі түйінді байланыстырады.

Бұл блогта біз екі пайдалану жағдайын көреміз, олардың бірі парашютпен секіру желісінің бөлігі болып табылмайтын желі құрамдас бөлігі. Екінші опция желілік емес құрамдас болып табылады. Бұған дейін біз 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. Екі түйін арасында бірнеше сілтеме жасай аласыз, бірақ сілтеме түрі әртүрлі болуы керек.

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 арқылы.

Ақпарат көзі: www.habr.com

пікір қалдыру