Skydive แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒแƒจแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ Skydive แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—

Skydive แƒแƒ แƒ˜แƒก แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก, แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ“แƒ แƒแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ แƒ“แƒ แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜. แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒ˜แƒ–แƒแƒœแƒ˜แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒก แƒงแƒแƒ•แƒšแƒ˜แƒกแƒ›แƒแƒ›แƒชแƒ•แƒ”แƒšแƒ˜ แƒ’แƒ–แƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“, แƒ—แƒฃ แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒจแƒ˜.

แƒ“แƒแƒ’แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒแƒ—, แƒ›แƒ” แƒ›แƒแƒ’แƒชแƒ”แƒ›แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒก Skydive-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒžแƒแƒกแƒขแƒ˜ Skydive-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜.

Skydive แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒแƒจแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ Skydive แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—

Skydive แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒแƒจแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ Skydive แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—

แƒžแƒแƒกแƒขแƒ˜ "skydive.network-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ยป Habrรฉ-แƒ–แƒ”.

Skydive แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒแƒก Skydive-แƒ˜แƒก แƒแƒ’แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒ—. แƒแƒ“แƒ”แƒกแƒ›แƒ” แƒ’แƒ˜แƒคแƒ˜แƒฅแƒ แƒ˜แƒแƒ—, แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒแƒœ แƒแƒฉแƒ•แƒ”แƒœแƒแƒ— แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒ”แƒœ Skydive แƒแƒ’แƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ›แƒ˜แƒฆแƒ›แƒ แƒแƒœ แƒแƒ แƒแƒฅแƒกแƒ”แƒšแƒฃแƒ แƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ TOR, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒแƒชแƒแƒ•แƒ˜ แƒ“แƒ แƒ.แƒจ. แƒแƒฆแƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒแƒ›แƒแƒ–แƒ” แƒคแƒ˜แƒฅแƒ แƒ˜ Node rule API-แƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ—.

0.20 แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒ“แƒแƒœ Skydive แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก Node rule API-แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒ˜แƒ“แƒ”แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ แƒ“แƒ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. Node rule API แƒ˜แƒงแƒแƒคแƒ แƒแƒ  API-แƒแƒ“: แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒฌแƒ”แƒกแƒ˜ API แƒ“แƒ edge rule API. Node Rule API แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ แƒ“แƒ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. Edge แƒฌแƒ”แƒกแƒ˜ API แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ  แƒ™แƒ•แƒแƒœแƒซแƒก แƒจแƒแƒ แƒ˜แƒก แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ”.แƒ˜. แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒก แƒแƒ  แƒ™แƒ•แƒแƒœแƒซแƒก.

แƒแƒ› แƒ‘แƒšแƒแƒ’แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒ’แƒแƒœ แƒ”แƒ แƒ—แƒ˜ แƒแƒ แƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก Skydive แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜. แƒ›แƒ”แƒแƒ แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒแƒ แƒ˜แƒก แƒแƒ แƒแƒฅแƒกแƒ”แƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜. แƒ›แƒแƒœแƒแƒ›แƒ“แƒ” แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก 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 Nodes แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜

แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒแƒฌแƒแƒ“แƒแƒ— 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-แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ

แƒ–แƒฆแƒ•แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒฌแƒงแƒแƒ แƒ แƒ“แƒ แƒ“แƒแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ‘แƒ›แƒฃแƒšแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜; แƒจแƒ•แƒ˜แƒšแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ‘แƒ›แƒฃแƒšแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ; แƒแƒœแƒแƒšแƒแƒ’แƒ˜แƒฃแƒ แƒแƒ“, แƒ‘แƒ›แƒฃแƒšแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก layer2 แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ‘แƒ›แƒฃแƒšแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก. แƒคแƒ”แƒœแƒ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 แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒแƒ แƒข 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-แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.
แƒขแƒ”แƒšแƒ”แƒ’แƒ แƒแƒ›แƒ˜แƒก แƒฉแƒแƒขแƒ˜ skydive.network-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ