స్కైడైవ్ అనేది ఓపెన్ సోర్స్, రియల్ టైమ్ నెట్వర్క్ టోపోలాజీ మరియు ప్రోటోకాల్ ఎనలైజర్. నెట్వర్క్ ఇన్ఫ్రాస్ట్రక్చర్లో ఏమి జరుగుతుందో అర్థం చేసుకోవడానికి సమగ్ర మార్గాన్ని అందించడం దీని లక్ష్యం.
మీకు ఆసక్తి కలిగించడానికి, నేను మీకు స్కైడైవ్ గురించి కొన్ని స్క్రీన్షాట్లను ఇస్తాను. క్రింద స్కైడైవ్ పరిచయంపై పోస్ట్ ఉంటుంది.
పోస్ట్"
స్కైడైవ్ స్కైడైవ్ ఏజెంట్ల నుండి నెట్వర్క్ ఈవెంట్లను స్వీకరించడం ద్వారా నెట్వర్క్ టోపోలాజీని ప్రదర్శిస్తుంది. స్కైడైవ్ ఏజెంట్ నెట్వర్క్ వెలుపల ఉన్న టోపోలాజీ రేఖాచిత్రం నెట్వర్క్ భాగాలను లేదా TOR, డేటా నిల్వ మొదలైన నెట్వర్క్ యేతర వస్తువులను ఎలా జోడించాలి లేదా ప్రదర్శించాలి అని మీరు ఎప్పుడైనా ఆలోచిస్తున్నారా. నోడ్ నియమం API కారణంగా ఇకపై దాని గురించి చింతించాల్సిన అవసరం లేదు.
వెర్షన్ 0.20 నుండి, స్కైడైవ్ కొత్త నోడ్లు మరియు అంచులను సృష్టించడానికి మరియు ఇప్పటికే ఉన్న నోడ్ల మెటాడేటాను అప్డేట్ చేయడానికి ఉపయోగించే నోడ్ రూల్ APIని అందిస్తుంది. నోడ్ రూల్ API రెండు APIలుగా విభజించబడింది: నోడ్ రూల్ API మరియు ఎడ్జ్ రూల్ API. నోడ్ రూల్ API కొత్త నోడ్ను సృష్టించడానికి మరియు ఇప్పటికే ఉన్న నోడ్ యొక్క మెటాడేటాను నవీకరించడానికి ఉపయోగించబడుతుంది. అంచు నియమం API రెండు నోడ్ల మధ్య సరిహద్దును సృష్టించడానికి ఉపయోగించబడుతుంది, అనగా. రెండు నోడ్లను కలుపుతుంది.
ఈ బ్లాగ్లో మనం రెండు వినియోగ సందర్భాలను చూస్తాము, వాటిలో ఒకటి స్కైడైవ్ నెట్వర్క్లో భాగం కాని నెట్వర్క్ భాగం. రెండవ ఎంపిక నాన్-నెట్వర్క్ భాగం. దానికి ముందు, మేము టోపాలజీ రూల్స్ APIని ఉపయోగించడానికి కొన్ని ప్రాథమిక మార్గాలను పరిశీలిస్తాము.
స్కైడైవ్ నోడ్ను సృష్టిస్తోంది
నోడ్ని సృష్టించడానికి, మీరు తప్పనిసరిగా ప్రత్యేకమైన నోడ్ పేరు మరియు చెల్లుబాటు అయ్యే నోడ్ రకాన్ని అందించాలి. మీరు కొన్ని అదనపు ఎంపికలను కూడా అందించవచ్చు.
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 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')"
}
స్కైడైవ్ ఎడ్జ్ను సృష్టిస్తోంది
అంచుని సృష్టించడానికి, మీరు తప్పనిసరిగా మూలం మరియు గమ్యం నోడ్లు మరియు అంచు యొక్క లింక్ రకాన్ని పేర్కొనాలి; చైల్డ్ నోడ్ని సృష్టించడానికి, లింక్ రకం విలువ తప్పనిసరిగా యాజమాన్యంగా ఉండాలి; అదేవిధంగా, లింక్ రకం లేయర్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 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"
పై ఆదేశాల తర్వాత, మీరు ఇప్పుడు క్రింది చిత్రంలో చూపిన విధంగా ఇచ్చిన మెటాడేటాతో స్కైడైవ్ టోపోలాజీ రేఖాచిత్రంలో కనిపించే పరికరాన్ని చూడవచ్చు.
రెండవ ఉపయోగం కేసు
ఈ సందర్భంలో స్కైడైవ్ నెట్వర్క్లో భాగం కాని నెట్వర్క్ పరికరాన్ని ఎలా జోడించాలో చూద్దాం. ఈ ఉదాహరణ చూద్దాం. మాకు రెండు వేర్వేరు హోస్ట్లపై రెండు స్కైడైవ్ ఏజెంట్లు నడుస్తున్నాయి, ఈ రెండు హోస్ట్లను కనెక్ట్ చేయడానికి మాకు TOR స్విచ్ అవసరం. కాన్ఫిగరేషన్ ఫైల్లో స్ట్రక్చర్ నోడ్లు మరియు లింక్లను నిర్వచించడం ద్వారా మనం దీన్ని సాధించగలిగినప్పటికీ, టోపోలాజీ రూల్స్ APIని ఉపయోగించి మనం దీన్ని ఎలా చేయాలో చూద్దాం.
TOR స్విచ్ లేకుండా, దిగువ చిత్రంలో చూపిన విధంగా రెండు ఏజెంట్లు ఎలాంటి లింక్లు లేకుండా రెండు వేర్వేరు నోడ్లుగా కనిపిస్తాయి.
ఇప్పుడు 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 స్విచ్ మరియు పోర్ట్లు సృష్టించబడ్డాయి మరియు స్కైడైవ్ టోపోలాజీకి జోడించబడ్డాయి మరియు టోపోలాజీ ఇప్పుడు దిగువ చిత్రం వలె కనిపిస్తుంది.
ఇప్పుడు 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 స్విచ్ పోర్ట్ 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"
యాజమాన్యం మరియు లేయర్2 సంఘాలు ఇప్పుడు TOR స్విచ్ మరియు పోర్ట్ మధ్య సృష్టించబడ్డాయి, అలాగే ఏజెంట్లు మరియు పోర్ట్ల మధ్య లేయర్2 అనుబంధాలు. ఇప్పుడు చివరి టోపోలాజీ క్రింది చిత్రం వలె కనిపిస్తుంది.
ఇప్పుడు రెండు హోస్ట్లు/ఏజెంట్లు సరిగ్గా కనెక్ట్ చేయబడ్డాయి మరియు మీరు కనెక్షన్ని పరీక్షించవచ్చు లేదా రెండు హోస్ట్ల మధ్య చిన్నదైన పాత్ క్యాప్చర్ని సృష్టించవచ్చు.
PS లింక్
మేము ఇతర స్కైడైవ్ ఫీచర్ల గురించి పోస్ట్లను వ్రాయగల వ్యక్తుల కోసం వెతుకుతున్నాము.
మూలం: www.habr.com