เบเบฒเบ™เป€เบžเบตเปˆเบก node เบเบฑเบš Skydive topology เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบœเปˆเบฒเบ™ Skydive client

Skydive เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”, topology เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป€เบงเบฅเบฒเบˆเบดเบ‡ เปเบฅเบฐเบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเป‚เบ›เบฃเป‚เบ•เบ„เป. เบกเบฑเบ™เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เปเบšเบšเป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ.

เป€เบžเบทเปˆเบญเปƒเบซเป‰เป€เบˆเบปเป‰เบฒเบชเบปเบ™เปƒเบˆ, เบ‚เป‰เบญเบเบˆเบฐเปƒเบซเป‰เบžเบฒเบšเปœเป‰เบฒเบˆเปเบšเบฒเบ‡เบญเบฑเบ™เบเปˆเบฝเบงเบเบฑเบš Skydive เปƒเบซเป‰เป€เบˆเบปเป‰เบฒ. เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบˆเบฐเบกเบตเบšเบปเบ”เปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบš Skydive.

เบเบฒเบ™เป€เบžเบตเปˆเบก node เบเบฑเบš Skydive topology เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบœเปˆเบฒเบ™ Skydive client

เบเบฒเบ™เป€เบžเบตเปˆเบก node เบเบฑเบš Skydive topology เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบœเปˆเบฒเบ™ Skydive client

เป‚เบžเบ” "เปเบ™เบฐเบ™เบณเบเปˆเบฝเบงเบเบฑเบš skydive.networkยป เปƒเบ™ Habre.

Skydive เบชเบฐเปเบ”เบ‡ topology เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ”เบเบเบฒเบ™เบฎเบฑเบšเป€เบซเบ”เบเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบˆเบฒเบเบ•เบปเบงเปเบ—เบ™ Skydive. เบ—เปˆเบฒเบ™เป€เบ„เบตเบเบชเบปเบ‡เป„เบชเบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบซเบผเบทเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ topology diagram เบ—เบตเปˆเบขเบนเปˆเบ™เบญเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ•เบปเบงเปเบ—เบ™ Skydive เบซเบผเบทเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป€เบŠเบฑเปˆเบ™ TOR, เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบฑเบ‡เบงเบปเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ™เบฑเป‰เบ™เบญเบตเบเบ•เปเปˆเป„เบ›เบเป‰เบญเบ™ Node rule API .

เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบชเบฐเบšเบฑเบš 0.20, Skydive เบชเบฐเบซเบ™เบญเบ‡ Node rule API เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ nodes เปเบฅเบฐ edges เปƒเบซเบกเปˆเปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡ metadata เบ‚เบญเบ‡ nodes เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง. Node rule API เปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบชเบญเบ‡ APIs: node rule API เปเบฅเบฐ edge rule API. Node Rule API เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ node เปƒเบซเบกเปˆเปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡ metadata เบ‚เบญเบ‡ node เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง. API เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบญเบšเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ‚เบญเบšเป€เบ‚เบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบญเบ‡ nodes, i.e. เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบญเบ‡ nodes.

เปƒเบ™ blog เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เบชเบญเบ‡เบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ skydive. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบเปˆเบญเบ™เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡เบšเบฒเบ‡เบงเบดเบ—เบตเบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Topology Rules API.

เบเบฒเบ™เบชเป‰เบฒเบ‡ Skydive Node

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ node, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เบŠเบทเปˆ node เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเปเบฅเบฐเบ›เบฐเป€เบžเบ” node เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบชเบฐเบซเบ™เบญเบ‡เบšเบฒเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

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 Metadata

เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡ metadata เบ‚เบญเบ‡ node เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบญเบšเบ–เบฒเบก gremlin เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบ nodes เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ metadata. เบ•เบฒเบกเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡ metadata เบ‚เบญเบ‡เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบ nodes เป‚เบ”เบเปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบš node เบ”เบฝเบง.

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

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ‚เบญเบš, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบˆเบธเบ”เบ—เบตเปˆเบกเบฒเปเบฅเบฐเบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบญเบ‡เบ‚เบญเบš; เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ node เป€เบ”เบฑเบเบ™เป‰เบญเบ, เบกเบนเบ™เบ„เปˆเบฒเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡; เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ link type layer2, เบกเบนเบ™เบ„เปˆเบฒเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™. เบŠเบฑเป‰เบ™2. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบญเบ‡ nodes, เปเบ•เปˆเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เป‰เบญเบ‡เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

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"
  }
}

เบเปเบฅเบฐเบ™เบตเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเปƒเบŠเป‰

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบ™ topology skydive. เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบฑเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เปเบœเบ™เบงเบฒเบ” topology skydive เบ—เบตเปˆเบกเบต metadata เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡.

เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบš node เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบญเบธเบ›เบฐเบเบญเบ™เปƒเบชเปˆ topology. เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบก metadata เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเป‰เบฒเบ‡, เบซเบผเบทเบ•เปเปˆเบกเบฒเบชเป‰เบฒเบ‡เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบš node เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡.

เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบšเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบญเบธเบ›เบฐเบเบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบชเปˆเปเบœเบ™เบงเบฒเบ” topology.

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"

เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบญเบšเป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบš node เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบเบฑเบšเป‚เบฎเบ” node.

skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"

เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ•เบญเบ™เบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเป€เบซเบฑเบ™เป„เบ”เป‰เปƒเบ™เปเบœเบ™เบงเบฒเบ” topology skydive เบ”เป‰เบงเบ metadata เบ—เบตเปˆเปƒเบซเป‰เป„เบงเป‰เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบเบฒเบ™เป€เบžเบตเปˆเบก node เบเบฑเบš Skydive topology เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบœเปˆเบฒเบ™ Skydive client

เบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเบชเบญเบ‡

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบญเบธเบ›เบฐเบเบญเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ skydive. เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰. เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบชเบญเบ‡เบ•เบปเบงเปเบ—เบ™ skydive เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบชเบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบฑเบ‡เบชเบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบผเบฑเบš TOR. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ‚เปเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เปเบ™เบงเปƒเบ”เป‚เบ”เบเปƒเบŠเป‰ Topology Rules API.

เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบผเบฑเบš TOR, เบ—เบฑเบ‡เบชเบญเบ‡เบ•เบปเบงเปเบ—เบ™เบˆเบฐเบ›เบฒเบเบปเบ”เป€เบ›เบฑเบ™เบชเบญเบ‡ nodes เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ”เป†, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบเบฒเบ™เป€เบžเบตเปˆเบก node เบเบฑเบš Skydive topology เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบœเปˆเบฒเบ™ Skydive client

เบ•เบญเบ™เบ™เบตเป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ 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 เปเบฅเบฐเบžเบญเบ”เบ•เปˆเบฒเบ‡เป†เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปเบฅเบฐเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ topology skydive, เปเบฅเบฐ topology เบ›เบฐเบˆเบธเบšเบฑเบ™เบˆเบฐเบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบฎเบนเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบเบฒเบ™เป€เบžเบตเปˆเบก node เบเบฑเบš Skydive topology เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบœเปˆเบฒเบ™ Skydive client

เบ•เบญเบ™เบ™เบตเป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ Edge Rule เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡ TOR switch, port 1 เปเบฅเบฐเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡ host 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 switch port 2 เปเบฅเบฐ host 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 switch เปเบฅเบฐเบžเบญเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ layer2 เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเบงเปเบ—เบ™เปเบฅเบฐเบžเบญเบ”. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ topology เบชเบธเบ”เบ—เป‰เบฒเบเบˆเบฐเบ„เป‰เบฒเบเบ„เบทเบฎเบนเบšเบžเบฒเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบเบฒเบ™เป€เบžเบตเปˆเบก node เบเบฑเบš Skydive topology เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบœเปˆเบฒเบ™ Skydive client

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เบฑเบ‡เบชเบญเบ‡ hosts / เบ•เบปเบงเปเบ—เบ™เป„เบ”เป‰เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบผเบทเบชเป‰เบฒเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบชเบฑเป‰เบ™เบ—เบตเปˆเบชเบธเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบญเบ‡ host.

PS เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบฒ เบ•เบญเบšเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš

เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบŠเบญเบเบซเบฒเบœเบนเป‰เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐ Skydive เบญเบทเปˆเบ™เป†.
เบชเบปเบ™เบ—เบฐเบ™เบฒ Telegram เบœเปˆเบฒเบ™ skydive.network.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™