Skydive рдХреНрд▓рд╛рдЗрдиреНрдЯ рдорд╛рд░реНрдлрдд рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ Skydive рдЯреЛрдкреЛрд▓реЛрдЬреАрдорд╛ рдиреЛрдб рдердкреНрджреИ

Skydive рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЛрдЬреА рд░ рдкреНрд░реЛрдЯреЛрдХрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реЛред рдпрд╕рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рдХреЗ рднрдЗрд░рд╣реЗрдХреЛ рдЫ рднрдиреЗрд░ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╡реНрдпрд╛рдкрдХ рддрд░рд┐рдХрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рд▓рдХреНрд╖реНрдп рд░рд╛рдЦреНрдЫред

рддрдкрд╛рдЗрдБрдХреЛ рд░реБрдЪрд┐ рдХреЛ рд▓рд╛рдЧреА, рдо рддрдкрд╛рдЗрдБрд▓рд╛рдИ Skydive рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдХреЗрд╣рд┐ рд╕реНрдХреНрд░рд┐рдирд╕рдЯрд╣рд░реБ рджрд┐рдиреЗрдЫреБред рддрд▓ Skydive рдХреЛ рдкрд░рд┐рдЪрдп рдорд╛ рдПрдХ рдкреЛрд╕реНрдЯ рд╣реБрдиреЗрдЫред

Skydive рдХреНрд▓рд╛рдЗрдиреНрдЯ рдорд╛рд░реНрдлрдд рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ Skydive рдЯреЛрдкреЛрд▓реЛрдЬреАрдорд╛ рдиреЛрдб рдердкреНрджреИ

Skydive рдХреНрд▓рд╛рдЗрдиреНрдЯ рдорд╛рд░реНрдлрдд рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ Skydive рдЯреЛрдкреЛрд▓реЛрдЬреАрдорд╛ рдиреЛрдб рдердкреНрджреИ

рдкреЛрд╕реНрдЯ"skydive.network рдХреЛ рдкрд░рд┐рдЪрдп┬╗ Habr├й рдорд╛ред

Skydive рд▓реЗ Skydive рдПрдЬреЗрдиреНрдЯрд╣рд░реВрдмрд╛рдЯ рдиреЗрдЯрд╡рд░реНрдХ рдШрдЯрдирд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЛрдЬреА рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫред рдХреЗ рддрдкрд╛рдИрдВрд▓реЗ рдХрд╣рд┐рд▓реНрдпреИ рд╕реЛрдЪреНрдиреБрднрдПрдХреЛ рдЫ рдХрд┐ рдХрд╕рд░реА рдЯреЛрдкреЛрд▓реЛрдЬреА рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдердкреНрдиреЗ рд╡рд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗ рдЬреБрди рд╕реНрдХрд╛рдЗрдбрд╛рдЗрдн рдПрдЬреЗрдиреНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛ рдЧреИрд░-рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╕реНрддреБрд╣рд░реВ рдЬрд╕реНрддреИ TOR, рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг, рдЖрджрд┐ред рдиреЛрдб рдирд┐рдпрдо API рд▓рд╛рдИ рдзрдиреНрдпрд╡рд╛рджред

рд╕рдВрд╕реНрдХрд░рдг реж.реиреж рджреЗрдЦрд┐, Skydive рд▓реЗ рдиреЛрдб рдирд┐рдпрдо 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 рдиреЛрдбреНрд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдЕрд╡рд╕реНрдерд┐рдд рдиреЛрдбрдХреЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрднрдПрдХреЛ рдиреЛрдбрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓реЗ 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 рдХрд┐рдирд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

рдХрд┐рдирд╛рд░рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрд░реЛрдд рд░ рдЧрдиреНрддрд╡реНрдп рдиреЛрдбрд╣рд░реВ рд░ рдХрд┐рдирд╛рд░рд╛рдХреЛ рд▓рд┐рдЩреНрдХ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрдЫ; рдЪрд╛рдЗрд▓реНрдб рдиреЛрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди, рд▓рд┐рдЩреНрдХ рдкреНрд░рдХрд╛рд░ рдорд╛рди рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╣реБрдиреБрдкрд░реНрдЫ; рддреНрдпрд╕реИ рдЧрд░реА, рд▓рд┐рдЩреНрдХ рдкреНрд░рдХрд╛рд░ рд▓реЗрдпрд░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 рд╕реНрд╡рд┐рдЪ рдЪрд╛рд╣рд┐рдиреНрдЫред рдпрджреНрдпрдкрд┐ рд╣рд╛рдореАрд▓реЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рдорд╛ рд╕рдВрд░рдЪрдирд╛ рдиреЛрдбрд╣рд░реВ рд░ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реЗрд░ рдпреЛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рд╣рд╛рдореА рдЯреЛрдкреЛрд▓реЛрдЬреА рдирд┐рдпрдо 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 рдЯреЛрдкреЛрд▓реЛрдЬреАрдорд╛ рдиреЛрдб рдердкреНрджреИ

рдЕрдм 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 рд╕реНрд╡рд┐рдЪ рд░ рдкреЛрд░реНрдЯ, рд╕рд╛рдереИ рдПрдЬреЗрдиреНрдЯрд╣рд░реВ рд░ рдкреЛрд░реНрдЯрд╣рд░реВ рдмреАрдЪрдХреЛ рддрд╣ реи рд▓рд┐рдЩреНрдХрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред рдЕрдм рдЕрдиреНрддрд┐рдо рдЯреЛрдкреЛрд▓реЛрдЬреА рддрд▓рдХреЛ рдЫрд╡рд┐ рдЬрд╕реНрддреИ рджреЗрдЦрд┐рдиреЗрдЫред

Skydive рдХреНрд▓рд╛рдЗрдиреНрдЯ рдорд╛рд░реНрдлрдд рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ Skydive рдЯреЛрдкреЛрд▓реЛрдЬреАрдорд╛ рдиреЛрдб рдердкреНрджреИ

рдЕрдм рджреБрдИ рд╣реЛрд╕реНрдЯ/рдПрдЬреЗрдиреНрдЯрд╣рд░реВ рд╕рд╣реА рд░реВрдкрдорд╛ рдЬрдбрд╛рди рднрдПрдХрд╛ рдЫрдиреН рд░ рддрдкрд╛рдИрдВрд▓реЗ рдЬрдбрд╛рди рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╡рд╛ рджреБрдИ рд╣реЛрд╕реНрдЯрд╣рд░реВ рдмреАрдЪрдХреЛ рдЫреЛрдЯреЛ рдорд╛рд░реНрдЧ рдХреНрдпрд╛рдкреНрдЪрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

PS рд▓рд┐рдЩреНрдХ рдореВрд▓ рдкреЛрд╕реНрдЯ

рд╣рд╛рдореА рд╕реНрдХрд╛рдЗрдбрд╛рдЗрднрдХрд╛ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдкреЛрд╖реНрдЯрд╣рд░реВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреЗ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдЦреЛрдЬрд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред
рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЪреНрдпрд╛рдЯ skydive.network рдорд╛рд░реНрдлрддред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди