Skydive クラむアントを介しお手動で Skydive トポロゞにノヌドを远加する

Skydive は、オヌプン゜ヌスのリアルタむム ネットワヌク トポロゞおよびプロトコル アナラむザヌです。 ネットワヌク むンフラストラクチャで䜕が起こっおいるかを理解するための包括的な方法を提䟛するこずを目的ずしおいたす。

興味を持っおいただけるよう、Skydive に関するスクリヌンショットをいく぀か玹介したす。 以䞋にSkydiveの玹介蚘事を掲茉したす。

Skydive クラむアントを介しお手動で Skydive トポロゞにノヌドを远加する

Skydive クラむアントを介しお手動で Skydive トポロゞにノヌドを远加する

圹職 "skydive.network の玹介» ハブレに぀いお。

Skydive は、Skydive ゚ヌゞェントからネットワヌク むベントを受信するこずにより、ネットワヌク トポロゞを衚瀺したす。 Skydive ゚ヌゞェント ネットワヌクの倖偎にあるネットワヌク コンポヌネントや、TOR、デヌタ ストレヌゞなどの非ネットワヌク オブゞェクトをトポロゞ図に远加たたは衚瀺する方法を考えたこずはありたすか。ノヌド ルヌル API のおかげで、もう心配する必芁はありたせん。

バヌゞョン 0.20 以降、Skydive は、新しいノヌドず゚ッゞを䜜成したり、既存のノヌドのメタデヌタを曎新したりするために䜿甚できるノヌド ルヌル API を提䟛したす。 ノヌド ルヌル API は、ノヌド ルヌル API ず゚ッゞ ルヌル API の XNUMX ぀の API に分かれおいたす。 ノヌド ルヌル API は、新しいノヌドを䜜成し、既存のノヌドのメタデヌタを曎新するために䜿甚されたす。 ゚ッゞ ルヌル API は、XNUMX ぀のノヌド間の境界を䜜成するために䜿甚されたす。 XNUMX ぀のノヌドを接続したす。

このブログでは XNUMX ぀の䜿甚䟋に぀いお説明したす。そのうちの XNUMX ぀は、Skydive ネットワヌクの䞀郚ではないネットワヌク コンポヌネントです。 XNUMX 番目のオプションは、非ネットワヌク コンポヌネントです。 その前に、トポロゞ ルヌル 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 ノヌドのメタデヌタを曎新する

既存のノヌドのメタデヌタを曎新するには、メタデヌタを曎新するノヌドを遞択するための gremlin ク゚リを提䟛する必芁がありたす。 リク゚ストに応じお、単䞀ノヌド ルヌルを䜿甚しお XNUMX ぀以䞊のノヌドのメタデヌタを曎新できたす。

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。 XNUMX ぀のノヌド間に耇数のリンクを䜜成できたすが、リンクのタむプは異なる必芁がありたす。

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 トポロゞ ダむアグラムに衚瀺する必芁があるデヌタ りェアハりスがあるず考えおみたしょう。

ノヌド ルヌルを䜜成しおデバむスをトポロゞに远加するだけです。 䜜成コマンドの䞀郚ずしおデバむス メタデヌタを远加したり、埌で XNUMX ぀以䞊のノヌド ルヌル曎新コマンドを䜜成したりできたす。

次のホスト ルヌル コマンドを実行しお、ストレヌゞ デバむスをトポロゞ ダむアグラムに远加したす。

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 トポロゞにノヌドを远加する

XNUMX 番目の䜿甚䟋

この堎合、Skydive ネットワヌクの䞀郚ではないネットワヌク デバむスを远加する方法を芋おいきたす。 この䟋を芋おみたしょう。 XNUMX ぀の Skydive ゚ヌゞェントが XNUMX ぀の異なるホスト䞊で実行されおおり、これら XNUMX ぀のホストを接続するには TOR スむッチが必芁です。 これは構成ファむルで構造ノヌドずリンクを定矩するこずで実珟できたすが、トポロゞ ルヌル API を䜿甚しお同じこずを行う方法を芋おみたしょう。

TOR スむッチがない堎合、次の図に瀺すように、XNUMX ぀の゚ヌゞェントはリンクのない XNUMX ぀の異なるノヌドずしお衚瀺されたす。

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 クラむアントを介しお手動で 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"

所有暩ずレむダヌ 2 関連付けが TOR スむッチずポヌトの間に䜜成され、゚ヌゞェントずポヌトの間にレむダヌ 2 関連付けが䜜成されたす。 最終的なトポロゞは以䞋の画像のようになりたす。

Skydive クラむアントを介しお手動で Skydive トポロゞにノヌドを远加する

これで XNUMX ぀のホスト/゚ヌゞェントが正しく接続され、接続をテストしたり、XNUMX ぀のホスト間の最短パス キャプチャを䜜成したりできたす。

PS ぞのリンク 元の投皿

Skydive の他の機胜に関する蚘事を曞いおいただける方を探しおいたす。
電報チャット スカむダむブネットワヌク経由。

出所 habr.com

コメントを远加したす