GNS3サーバ1台を複数人で利用する

GNS3サーバを1台立てて, チームメンバー数人で利用する場合の環境を構築する方法のメモ。

イメージ

手順は以下の通り。

  1. GNS3サーバを建てる
    • ユーザ作成
    • 必要なパッケージ準備
  2. GNS3サーバをデーモンモードで起動
  3. 各人のPCにGNS3をインストール
  4. 接続先をサーバに指定する
1. GNS3 サーバ準備
インストール方法(公式)
ubuntu 18.04LTS で試したが, この公式の手順だとパッケージが見つからずインストールできなかった。

ということで, Discussionにあったpipを使えばいけるという情報を参考にセットアップする。

Unable to install GNS3 on Ubuntu 19.04

ubuntu@gns3:~$ sudo adduser gns3
ubuntu@gns3:~$ sudo apt install python3-pip
ubuntu@gns3:~$ sudo pip3 install gns3-gui gns3-server

2. デーモンモードで起動

ubuntu@gns3:~$ git clone https://github.com/GNS3/gns3-server.git
ubuntu@gns3:~$ cd gns3-server/init/
ubuntu@gns3:~/gns3-server/init$ sudo cp gns3.service.systemd /lib/systemd/system/gns3.service
ubuntu@gns3:~/gns3-server/init$ sudo chown root /lib/systemd/system/gns3.service
ubuntu@gns3:~/gns3-server/init$ sudo systemctl start gns3

3. クライアントセットアップ

オフィシャルページからGNS3をダウンロードしてインストール。

4. GNS3起動, 接続設定
起動後, 接続先サーバを「remote server」とする。

「Run application on a remote server」を選択

接続先のIPアドレス, 認証情報を入力。
今回はgns3ユーザで接続。
FirewallでTCP3080を開けておく。

無事接続できると, サーバ稼働状況がいつものように表示される。

以降, いつものように使いたいイメージを登録していけばOK。

ただし, 1つのユーザを複数人でシェアする環境となるため, イメージの作成・削除やプロジェクトの扱いは要注意。(うっかり人のプロジェクトを使ってしまったり, 削除してしまったりすると悲惨)
※ 共有フォルダと同じ感覚で取り扱うとよいと思われる。

なお, 同一プロジェクトを同時に利用しているとそれぞれの変更がリアルタイムで反映されるので, 検証を一緒にやりたいときなど便利かもしれない。

GNS3 on GCP

EVE-NGにならってGNS3もGCP上に立てる。
イメージは18.04のbionicを選択。
# 現時点でcosmicだとDockerやiouguiのインストールですんなり行かない。
# 北米より高いけど, 日本リージョンで建てることをおすすめします

>gcloud compute images create nested-ubuntu-1804-lts --source-image-project=ubuntu-os-cloud --source-image=ubuntu-1804-bionic-v20181120  --licenses="https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"

このイメージを使いインスタンスを起動→SSHでログイン。

あとはオフィシャルの手順通りやっていけば完了。
インストール手順(オフィシャル)

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo add-apt-repository ppa:gns3/ppa
$ sudo apt-get update
$ sudo apt-get install gns3-gui
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt install gns3-iou
$ sudo apt install dynamips:i386 #Bug対応

途中, Wiresharkを非ルートユーザでの実行を許可するかどうかを聞かれるので「Yes」を選択。続いてGNS3を非ルートユーザでの実行を許可するかどうかを聞かれるので「Yes」を選択する。(ここはデフォルトでNoが選択されている)

$ sudo apt-get install 
apt-transport-https
ca-certificates
curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce
$ sudo usermod -a -G docker gns3
$ # gns3 はログインユーザ名
$ sudo usermod -a -G docker gns3
$ sudo usermod -a -G ubridge gns3
$ sudo usermod -a -G libvirt gns3
$ sudo usermod -a -G kvm gns3
$ sudo usermod -a -G wireshark gns3
$ gns3 --version

2.1.11

完了。

無事起動

ubuntu 17.10 にGNS3を入れる

環境はWin10 + VMWare Workstation + Ubuntu 17.10 server

SSHDインストール

# apt-get install openssh-server -y

※ sshdの設定 ※ 適宜Password認証許可等

GNS3インストール

参考
# apt install software-properties-common
# add-apt-repository ppa:gns3/ppa
# apt-get update
# apt-get install gns3-gui
# dpkg --add-architecture i386
# apt-get update
# apt-get install gns3-iou

※ GNS3を利用するユーザにkvmのグループ追加
これをしないとqemuのアプライアンスが利用できない。(kvmの権限がないためエラーとなる)

# usermod -a -G kvm ubuntu

その他設定

・コンソールをEtermに変更

# apt-get install eterm

カスタムコンソールで

Eterm -e /bin/sh -c "telnet 127.0.0.1 5009"

とする。

・ASAはHDDのタイプをVirtioにする

・Cisco IOUはライセンス登録しないと利用できない