ืึทื“ื™ื ื’ ืึท ื ืึธื“ืข ืฆื• ื“ื™ 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 ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ื ืึธื“ืข ืื•ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืžืขื˜ืึทื“ืึทื˜ืึท ืคื•ืŸ ืึท ื™ื’ื–ื™ืกื˜ื™ื ื’ ื ืึธื“ืข. ื“ื™ ืขื“ื–ืฉ ื”ืขืจืฉืŸ API ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืฉืึทืคึฟืŸ ืึท ื’ืจืขื ืขืฅ ืฆื•ื•ื™ืฉืŸ ืฆื•ื•ื™ื™ ื ืึธื•ื“ื–, ื™.ืข. ืงืึทื ืขืงืฅ ืฆื•ื•ื™ื™ ื ืึธื•ื“ื–.

ืื™ืŸ ื“ืขื ื‘ืœืึธื’ ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ืฆื•ื•ื™ื™ ื ื•ืฆืŸ ืงืึทืกืขืก, ืื™ื™ื ืขืจ ืคื•ืŸ ื•ื•ืึธืก ืื™ื– ืึท ื ืขืฅ ืงืึธืžืคึผืึธื ืขื ื˜ ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืกืงื™ื“ื™ื™ื•ื• ื ืขืฅ. ื“ื™ ืจื’ืข ืึธืคึผืฆื™ืข ืื™ื– ืึท ื ื™ื˜-ื ืขืฅ ืงืึธืžืคึผืึธื ืขื ื˜. ืื™ื™ื“ืขืจ ื“ืขื, ืžื™ืจ ื•ื•ืขืœืŸ ืงื•ืงืŸ ืื™ืŸ ืขื˜ืœืขื›ืข ื™ืงืขืจื“ื™ืง ื•ื•ืขื’ืŸ ืฆื• ื ื•ืฆืŸ ื“ื™ Topology Rules 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 Nodes

ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืžืขื˜ืึทื“ืึทื˜ืึท ืคื•ืŸ ืึท ื™ื’ื–ื™ืกื˜ื™ื ื’ ื ืึธื“ืข, ืื™ืจ ืžื•ื–ืŸ ืฆื•ืฉื˜ืขืœืŸ ืึท ื’ืจืขืžืœื™ืŸ ืึธื ืคึฟืจืขื’ ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ื ืึธื•ื“ื– ืื•ื™ืฃ ื•ื•ืึธืก ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืžืขื˜ืึทื“ืึทื˜ืึท. ืœื•ื™ื˜ ื“ื™ื™ืŸ ื‘ืงืฉื”, ืื™ืจ ืงืขื ืขืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืžืขื˜ืึทื“ืึทื˜ืึท ืคื•ืŸ ืื™ื™ืŸ ืึธื“ืขืจ ืžืขืจ ื ืึธื•ื“ื– ืžื™ื˜ ืึท ืื™ื™ืŸ ื ืึธื“ืข ื”ืขืจืฉืŸ.

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"

ื ืึธืš ื“ื™ ืื•ื™ื‘ืŸ ืงืึทืžืึทื ื“ื–, ืื™ืจ ืงืขื ืขืŸ ืื™ืฆื˜ ื–ืขืŸ ื“ื™ ืžื™ื˜ืœ ืงืขื ื˜ื™ืง ืื™ืŸ ื“ื™ ืกืงื™ื“ื™ื™ื•ื• ื˜ืึทืคึผืึทืœืึทื“ื–ืฉื™ ื“ื™ืึทื’ืจืึทืžืข ืžื™ื˜ ื“ื™ ื’ืขื’ืขื‘ืŸ ืžืขื˜ืึทื“ืึทื˜ืึท ื•ื•ื™ ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ื‘ื™ืœื“ ืื•ื ื˜ืŸ.

ืึทื“ื™ื ื’ ืึท ื ืึธื“ืข ืฆื• ื“ื™ Skydive ื˜ืึธืคึผืึธืœืึธื’ื™ ืžืึทื ื™ื•ืึทืœื™ ื“ื•ืจืš Skydive ืงืœื™ืขื ื˜

ืฆื•ื•ื™ื™ื˜ืข ื ื•ืฆืŸ ืคืึทืœ

ืื™ืŸ ื“ืขื ืคืึทืœ, ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ื•ื•ื™ ืฆื• ืœื™ื™ื’ืŸ ืึท ื ืขืฅ ืžื™ื˜ืœ ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืกืงื™ื“ื™ื™ื•ื• ื ืขืฅ. ื–ืืœ ืก ืงื•ืง ื‘ื™ื™ึท ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ. ืžื™ืจ ื”ืึธื‘ืŸ ืฆื•ื•ื™ื™ ืกืงื™ื“ื™ื™ื•ื• ืื’ืขื ื˜ืŸ ืคืœื™ืกื ื“ื™ืง ืื•ื™ืฃ ืฆื•ื•ื™ื™ ืคืึทืจืฉื™ื“ืขื ืข ืžื—ื ื•ืช, ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ื“ื™ ืฆื•ื•ื™ื™ ืžื—ื ื•ืช ืžื™ืจ ื“ืึทืจืคึฟืŸ ืึท TOR ื‘ืึทืฉื˜ื™ืžืขืŸ. ืืคื™ืœื• ื›ืึธื˜ืฉ ืžื™ืจ ืงืขื ืขืŸ ื“ืขืจื’ืจื™ื™ื›ืŸ ื“ืขื ื“ื•ืจืš ื“ื™ืคื™ื™ื ื™ื ื’ ืกื˜ืจื•ืงื˜ื•ืจ ื ืึธื•ื“ื– ืื•ืŸ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ืขืŸ ืื™ืŸ ืึท ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืข, ืœืึธืžื™ืจ ื–ืขืŸ ื•ื•ื™ ืžื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ื“ื™ ื–ืขืœื‘ืข ืžื™ื˜ ื“ื™ Topology Rules 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 ืงืœื™ืขื ื˜

ืื™ืฆื˜ ืœื•ื™ืคืŸ ื“ื™ ืคืืœื’ืขื ื“ืข 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

ืงื•ื™ืคืŸ ืคืึทืจืœืึธื–ืœืขืš ื”ืึธืกื˜ื™ื ื’ ืคึฟืึทืจ ื–ื™ื™ื˜ืœืขืš ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก ๐Ÿ”ฅ ืงื•ื™ืคื˜ ืคืึทืจืœืขืกืœืขื›ืข ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ื”ืึธืกื˜ื™ื ื’ ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก | ProHoster