コンテンツにスキップ

GNS3

https://github.com/GNS3/gns3-gui/releases

仮想ネットワークトポロジーを構成できるソフトウェア群。GUIでネットワークトポロジーを描画できるため、直感的にNWを構成できて非常に便利。

ノードを構成する仮想化ソフトウェアとしては、以下が使用できる。

  • Dynamips (for Cisco IOS)
  • VirtualBox
  • VPCS (Virtual PC Simulator)
  • QEMU
  • VMware
  • Docker

追加アイコン設定: https://twitter.com/team_eririn/status/1041355779813470208

GNS3 appliance

GNS3はアプライアンスをインポートして使用することができるので、例えばCentOSやUbuntuなどをいちいちインストールしなくても、イメージをダウンロードして使用することができる。

See: Import GNS3 appliance https://docs.gns3.com/1_3RdgLWgfk4ylRr99htYZrGMoFlJcmKAAaUAc8x9Ph8/index.html

GNS3 API

動作確認

GNS3 Serverをデーモンで立ち上げて、APIを叩いてkillするまで。

2.2になったら ${HOME}/.config/GNS3/2.2/gns3_server.conf の可能性あり

$ gns3server --pid /tmp/gns3server.pid --daemon --log /tmp/gns3server.log
$ GNS3_USER=$(grep "user" ${HOME}/.config/GNS3/gns3_server.conf | cut -d " " -f3)
$ GNS3_PASS=$(grep "password" ${HOME}/.config/GNS3/gns3_server.conf | cut -d " " -f3)
$ curl -i -u "${GNS3_USER}:${GNS3_PASS}" http://127.0.0.1:3080/v2/version
HTTP/1.1 200 OK
Connection: close
X-Route: /v2/version
Server: Python/3.5 GNS3/2.1.11
Content-Type: application/json
Content-Length: 47
Date: Thu, 27 Dec 2018 07:08:39 GMT

{
    "local": false,
    "version": "2.1.11"
}
$ pkill -F /tmp/gns3server.pid

この辺りが使えそう

  • /v2/appliances
  • /v2/computes
  • /v2/symbols
  • /v2/projects

VMの起動と停止

VMの起動はプロジェクトIDとノードIDが必要になるので、それを取得する。

$ GNS3_PROJECT_NAME=seil_fuji_test
$ GNS3_NODE_NAME=SEIL_1A
$ GNS3_PROJECT_ID=$(curl -s -u "${GNS3_USER}:${GNS3_PASS}" http://127.0.0.1:3080/v2/projects | jq -r ".[] | select(.name==\"${GNS3_PROJECT_NAME}\") | .project_id")
$ GNS3_NODE_ID=$(curl -s -u "${GNS3_USER}:${GNS3_PASS}" http://127.0.0.1:3080/v2/projects/${GNS3_PROJECT_ID}/nodes | jq -r ".[] | select(.name==\"${GNS3_NODE_NAME}\") | .node_id")
$ curl -X POST -d "{}" -u "${GNS3_USER}:${GNS3_PASS}" http://127.0.0.1:3080/v2/projects/${GNS3_PROJECT_ID}/nodes/${GNS3_NODE_ID}/start
$ curl -X POST -d "{}" -u "${GNS3_USER}:${GNS3_PASS}" http://127.0.0.1:3080/v2/projects/${GNS3_PROJECT_ID}/nodes/${GNS3_NODE_ID}/stop

最終更新日: 2021-05-17 02:51:56