เดธเตเด•เตˆเดกเตˆเดตเต เด•เตเดฒเดฏเดจเตเดฑเต เดตเดดเดฟ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดธเตเด•เตˆเดกเตˆเดตเต เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดจเต‹เดกเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

เดธเตเด•เตˆเดกเตˆเดตเต เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต, เดคเดคเตเดธเดฎเดฏ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟ, เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด…เดจเดฒเตˆเดธเตผ เดŽเดจเตเดจเดฟเดตเดฏเดพเดฃเต. เด’เดฐเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเดฑเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเดจเตเดณเตเดณ เดธเดฎเด—เตเดฐเดฎเดพเดฏ เดฎเดพเตผเด—เด‚ เด‡เดคเต เดฒเด•เตเดทเตเดฏเดฎเดฟเดŸเตเดจเตเดจเต.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเดพเด•เตเด•เดพเตป, เดธเตเด•เตˆเดกเตˆเดตเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฐเดฃเตเดŸเต เดธเตเด•เตเดฐเต€เตปเดทเต‹เดŸเตเดŸเตเด•เตพ เดžเดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเดฐเดพเด‚. เดธเตเด•เตˆเดกเตˆเดตเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด’เดฐเต เด†เดฎเตเด–เดคเตเดคเดฟเตฝ เด’เดฐเต เดชเต‹เดธเตเดฑเตเดฑเต เดคเดพเดดเต† เด‰เดฃเตเดŸเดพเด•เตเด‚.

เดธเตเด•เตˆเดกเตˆเดตเต เด•เตเดฒเดฏเดจเตเดฑเต เดตเดดเดฟ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดธเตเด•เตˆเดกเตˆเดตเต เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดจเต‹เดกเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

เดธเตเด•เตˆเดกเตˆเดตเต เด•เตเดฒเดฏเดจเตเดฑเต เดตเดดเดฟ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดธเตเด•เตˆเดกเตˆเดตเต เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดจเต‹เดกเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

เดชเต‹เดธเตเดฑเตเดฑเต"skydive.network-เดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เดฎเตเด–เด‚ยป เดนเดฌเตเดฐเต†เดฏเดฟเตฝ.

เดธเตเด•เตˆเดกเตˆเดตเต เดเดœเดจเตเดฑเตเดฎเดพเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‡เดตเดจเตเดฑเตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเดšเตเดšเต เดธเตเด•เตˆเดกเตˆเดตเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดธเตเด•เตˆเดกเตˆเดตเต เดเดœเดจเตเดฑเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดจเต เดชเตเดฑเดคเตเดคเตเดณเตเดณ เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟ เดกเดฏเด—เตเดฐเด‚ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด˜เดŸเด•เด™เตเด™เตพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ TOR, เดกเดพเดฑเตเดฑ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดฎเตเดคเดฒเดพเดฏเดต เดชเต‹เดฒเตเดณเตเดณ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‡เดคเดฐ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เตพ เดŽเด™เตเด™เดจเต† เดšเต‡เตผเด•เตเด•เดพเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚ เดŽเดจเตเดจเต เดจเดฟเด™เตเด™เตพ เดŽเดชเตเดชเต‹เดดเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเดฟเดจเตเดคเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹. เดจเต‹เดกเต เดฑเต‚เตพ API เดจเต เดจเดจเตเดฆเดฟ, เด…เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดตเดฟเดทเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ.

เดชเดคเดฟเดชเตเดชเต 0.20 เดฎเตเดคเตฝ, เดชเตเดคเดฟเดฏ เดจเต‹เดกเตเด•เดณเตเด‚ เด…เดฐเดฟเด•เตเด•เดณเตเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดจเต‹เดกเตเด•เดณเตเดŸเต† เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดตเตเดจเตเดจ เด’เดฐเต เดจเต‹เดกเต เดฑเต‚เตพ 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. เดฐเดฃเตเดŸเต เดจเต‹เดกเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดฒเดฟเด™เตเด•เตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดฒเดฟเด™เตเด•เดฟเดจเตเดฑเต† เดคเดฐเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

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"

TOR เดธเตเดตเดฟเดšเตเดšเดฟเดจเตเด‚ เดชเต‹เตผเดŸเตเดŸเดฟเดจเตเด‚ เด‡เดŸเดฏเดฟเตฝ เด‰เดŸเดฎเดธเตเดฅเดพเดตเด•เดพเดถเดตเตเด‚ เดฒเต‡เดฏเตผ2 เด…เดธเต‹เดธเดฟเดฏเต‡เดทเดจเตเด•เดณเตเด‚, เดเดœเดจเตเดฑเตเดฎเดพเตผเด•เตเด•เตเด‚ เดชเต‹เตผเดŸเตเดŸเตเด•เตพเด•เตเด•เตเดฎเดฟเดŸเดฏเดฟเตฝ เดฒเต‡เดฏเตผ2 เด…เดธเต‹เดธเดฟเดฏเต‡เดทเดจเตเด•เดณเตเด‚ เด‡เดชเตเดชเต‹เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดชเตเดชเต‹เตพ เด…เดตเดธเดพเดจ เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟ เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดšเดฟเดคเตเดฐเด‚ เดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเด‚.

เดธเตเด•เตˆเดกเตˆเดตเต เด•เตเดฒเดฏเดจเตเดฑเต เดตเดดเดฟ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดธเตเด•เตˆเดกเตˆเดตเต เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดจเต‹เดกเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

เด‡เดชเตเดชเต‹เตพ เดฐเดฃเตเดŸเต เดนเต‹เดธเตเดฑเตเดฑเตเด•เดณเตเด‚/เดเดœเดจเตเดฑเตเด•เดณเตเด‚ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดฃเด•เตเดทเตป เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฐเดฃเตเดŸเต เดนเต‹เดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดชเดพเดคเตเดคเต เด•เตเดฏเดพเดชเตโ€Œเดšเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚.

PS เดฒเดฟเด™เตเด•เต เดฏเดฅเดพเตผเดคเตเดฅ เดชเต‹เดธเตเดฑเตเดฑเต

เดฎเดฑเตเดฑเต เดธเตเด•เตˆเดกเตˆเดตเต เดซเต€เดšเตเดšเดฑเตเด•เดณเต† เด•เตเดฑเดฟเดšเตเดšเต เดชเต‹เดธเตเดฑเตเดฑเตเด•เตพ เดŽเดดเตเดคเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด†เดณเตเด•เดณเต† เดžเด™เตเด™เตพ เดคเดฟเดฐเดฏเตเด•เดฏเดพเดฃเต.
เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดšเดพเดฑเตเดฑเต skydive.network เดตเดดเดฟ.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•