Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

ネットワーク実験室の構築(macOSへGNS3の導入)

GNS3とは

Graphical Network Simulator(GNS3)」とは、クロスプラットフォームのグラフィカルネットワークシミュレータです。
GNS3を使えば、Cisco IOS、Juniper、MikroTik、Arista、およびVyattaなどの実際のネットワークオペレーティングシステムを使い、仮想ネットワークをPC上で設計およびテストを行うことができます。
GNS3では、ハードウェアのエミュレートを行っています。すなわち、PC上で実際のネットワークオペレーティングシステム(たとえば、Cisco IOS)イメージファイルを実行させることができます。したがって、理論的には、Cisco IOSバージョンがサポートするすべてのプロトコルまたは機能について使用することが可能です。

プレインストール

推奨CISCO IOS イメージ

プレインストール作業は、ルータのイメージファイルを用意することです。ルータなどをエミュレートするには、そのネットワークオペレーティングシステムのイメージが必要になります。

推奨されている Cisco IOS イメージ
Ciscoルータ 推奨IOS 必要RAM アイドルPCの提案値 MD5ハッシュ値
Cisco 1700 c1700-adventerprisek9-mz.124-25d.bin 128 MB 0x80358a60 3ed8d56a8757771105a56070e4147716
c1700-adventerprisek9-mz.124-15.T14.bin 160 MB 0x824a4dc4 351190de8764263e85a2b50718f394fd
Cisco 2600 c2600-adventerprisek9-mz.124-25d.bin 128 MB 0x80519c48 8eca1f6fe57dfb3c3cf3568c0e475853
c2600-adventerprisek9-mz.124-15.T14.bin 256 MB 0x8027ec88 12b8548b23e2ec593652ae9310ac797f
Cisco 3620 c3620-a3jk8s-mz.122-26c.bin 64 MB 0x603a8bac dd34b958ad362ef54ba48b187f4c97b4
Cisco 3640 c3640-a3js-mz.124-25d.bin 128 MB 0x6050b114 db9f63ca1b46d18fb835496bfffe608a
Cisco 3660 c3660-a3jk9s-mz.124-25d.bin 192 MB 0x606071f8 4ac7e947f13c189d746149dc74992890
c3660-a3jk9s-mz.124-15.T14.bin 256 MB 0x6076e0b4 39950b7a563aa08e94a168260409f1e6
Cisco 2691 c2691-adventerprisek9-mz.124-25d.bin 192 MB 0x60a48cb8 a8e1f5821d87456595488d6221ce42e5
c2691-adventerprisek9-mz.124-15.T14.bin 256 MB 0x60bcf9f8 91388104d7276ad09204e36d2dfcf52d
Cisco 3725 c3725-adventerprisek9-mz.124-25d.bin 128 MB 0x602467a4 ac3d313d3caff5beeee244b81d2c024c
c3725-adventerprisek9-mz.124-15.T14.bin 256 MB 0x60c09aa0 42baf17af10d9a1471bf542f0bfd07c7
Cisco 3745 c3745-adventerprisek9-mz.124-25d.bin 256 MB 0x60aa1da0 563797308a3036337c3dee9b4ab54649
c3745-adventerprisek9-mz.124-15.T14.bin 256 RAM 0x602701e4 a696619869a972ec3a27742d38031b6a
Cisco 7200 c7200-adventerprisek9-mz.152-4.M7.bin 512 MB 1fe8d7d82cb8261a7487d543f172b985
c7200-a3jk9s-mz.124-25g.bin 256 MB 3a78cb61831b3ef1530f7402f5986556
c7200-adventerprisek9-mz.124-24.T5.bin 256 MB 0x606df838 3c4148f62acf56602ce3b371ebae60c9

Cisco IOS

Cisco IOSの特定バージョンの機能を調べるなど、特別な目的が無い限り、Cisco 7200ルータの使用が推奨されます。
また、SVI(VLAN)インターフェイスを使用する場合には、NM-16ESWモジュールを取り付けたCisco 3725を使用することが推奨されています。

Cisco IOSの名前は、最大7つの主要フィールドとそれに続く.bin拡張子で構成されています。

[Platform]-[Feature Set]-[Memory location][Compression format].[Train
number]-[Maintenance release].[Train identifier].bin

show versionコマンドの出力結果は、次の通りです。

Cisco IOS Software, 7200 Software (C7200-ADVENTERPRISEK9-M), Version 15.2(4)S6, RELEASE SOFTWARE (fc1)

環境情報

今回、GNS3のインストールを行うmacOS X環境は、次の通りです。

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.5
BuildVersion:   19F101

OS XバージョンのGNS3にはオールインワンパッケージがありません。このため、必要なパッケージを1つずつインストールする必要があります。

アプリケーション バージョン Download from...
GNS3 Version 2.2.11 https://github.com/GNS3/gns3-gui/releases/
GNS3 VM VMware.Workstation.2.2.11 https://github.com/GNS3/gns3-gui/releases/
Wireshark 3.2.4 Intel 64 https://1.eu.dl.wireshark.org/osx/
VMware Fusion 11.5.5 https://www.vmware.com/jp/products/fusion/fusion-evaluation.html

Cisco IOSルータを使用し基本的なGNS3トポロジだけを作成したい場合には、ローカル(Dynamips)インストールで十分です。すなわち、GNS3 GUI(GNS3-2.2.11.dmg)のみをインストールし、GNS3 VM(GNS3.VM.VMware.Workstation.2.2.11.zip)ならびに、VMware Fusionを使用しないことを意味します。

インストール

Wiresharkのインストール

ダウンロードしたWireshark 3.2.4 Intel 64.dmgを使用してmacOSにインストールします。

手順

1 Wireshark 3.2.4 Intel 64.dmg ファイルをダブルクリックして開きます。ディスク イメージの内容が表示されます。

スクリーンショット 2020-06-28 15.32.12.png

2 Finder ウィンドウで、[Wireshark] アイコンを [アプリケーション] フォルダにドラッグします。

VMware Fusionのインストール

詳細は割愛します。

GNS3のインストール

ダウンロードしたGNS3-2.2.11.dmgを使用してmacOSにインストールします。

手順

1 GNS3-2.2.11.dmgファイルをダブルクリックして開きます。
スクリーンショット 2020-07-14 10.15.28.png

  1. Finder ウィンドウで、[GNS3] アイコンを [アプリケーション] フォルダにドラッグします。

GNS3 VMの仮想イメージをインストール

ダウンロードしたGNS3.VM.VMware.Workstation.2.2.11.zipを任意の場所に展開します。
[注意]GNS3とGNS3 VMのバージョンを必ず一致させてください。

手順

1 展開されたファイルにGNS3 VM.ovfが含まれていることを確認します。
注釈:OVF(Open Virtualization Format)とは、規格化された仮想マシンのファイルデータの集まりです。

2 VMware Fusionを起動します。[インポート] ウィザードを開きます。これを行うには、[ファイル] メニューの [インポート] を選択します。

3 インポートするパッケージ(GNS3 VM.ovf)を選択し、[続ける] をクリックします。
スクリーンショット 2020-06-28 15.42.28.png

4 仮想マシンの構成が完了しました。と表示されれば終了です。
スクリーンショット 2020-06-28 15.43.28.png

インポートが完了するとGNS3 VMが起動します。
スクリーンショット 2020-07-14 10.39.11.png

GNS3 VMのアップグレード

すでにGNS3 VMを使用している場合、[Upgrade]メニューから最新バージョンへ更新することが可能です。

1 GNS3 VMを起動し、ステータス表示画面[Display VM information]を表示させ[OK]を選択。
スクリーンショット 2020-06-28 15.44.51.png

2 キーボードカーソルキーにて[Upgrade]を選択。
スクリーンショット 2020-07-14 10.19.01.png

3 警告メッセージが表示される。アップグレード前に失敗時に備えて仮想イメージのスナップショットを取得するように推奨されています。スナップショットを取得後に、[Yes]を選択。

PLEASE SNAPSHOT THE VM BEFORE RUNNING THE UPGRADE IN CASE OF FAILURE. The server will reboot at the end of the upgrade process. Continue?

スクリーンショット 2020-07-14 10.19.46.png

4 更新後のバージョンを選択。ここでは、「v2.2.11」を選択します。
スクリーンショット 2020-07-14 10.48.28.png

5 以降は自動でGNS3 VMの更新、再起動が行われます。
スクリーンショット 2020-07-14 10.39.11.png

GNS3 VMセットアップウィザード

手順

1 GNS3の初回起動時にGNS3セットアップウィザードが表示されます。セットアップウィザードは、[ファイル] メニューの [Help] > [Setup Wizard] を選択していつでも手動で起動することができます。
スクリーンショット 2020-06-28 15.50.36.png
[オプション] Don't show this againチェックボックスをオンにすると、セットアップウィザードの表示を無効にできます。

2 セットアップウィザードで、Run appliances in a virtual machineを選択し、[Next]をクリックします。

3 GNSのローカルサーバ設定を行います。gns3serverファイルへのパスが正しいことを確認し、[Host binding:]と[Port:]を選択します。設定変更を行っていない場合、これらの項目は初期設定のままで問題ありません。[Next]をクリックします。
スクリーンショット 2020-06-28 15.51.31.png

4 接続確認画面が表示されます。成功したら[Next]をクリックします。
スクリーンショット 2020-06-28 15.52.16.png

5 使用する仮想化ソフトウェア(Virtualization software:)を選択します。この例では、VMware(recommended)が選択されています。
スクリーンショット 2020-06-28 15.55.12.png

セットアップウィザードは、VMware FusionGNS3 VMが存在することを検出します。GNS3 VMが表示されていない場合は、[Refresh]ボタンをクリックして、GNS3 VMVMware Fusionに正しくインポートされたことを確認してください。
vCPU cores:RAM size:の値を変更し、[Next]をクリックします。
[重要] 使用可能なcCPUコアと、RAMは、使用しているPCの物理的なサイズの半分程度を設定するのが望ましいです。

6 セットアップウィザードはSummaryページを表示します。Please Waitと表示される場合があります。これは、GNS3がGNS3 VMを起動しているためです。[Finish]ボタンをクリックして、作業が完了です。
スクリーンショット 2020-06-28 15.56.39.png

New templateのセットアップ

手順

1 GNS3セットアップウィザードは、New templateウィンドウを表示します。New templateは、[ファイル] メニューの [File] > [New template] を選択していつでも手動で起動することができます。
スクリーンショット 2019-04-05 11.03.19.png
Install an appliance from the GNS3 server (recommended)を選択肢、[Next]をクリックします。

Appliances from serverウィンドウが表示されます。ここには、使用できるさまざまなApplianceが一覧表示されます。最新の情報を表示させるため、Update from online registryボタンをクリックします。
スクリーンショット 2019-04-05 11.07.42.png

3 Appliance情報の更新が完了すると、Appliances are up-to-date!ウィンドウが表示されます。[OK]をクリックし、閉じます。
スクリーンショット 2019-04-05 11.09.36.png  スクリーンショット 2019-04-05 11.10.34.png

4 ここでは、c7200-adventerprisek9-mz.124-24.T5.binのイメージをインストールします。Routersを選択し、Cisco 7200を選択して[Install]をクリックします。
スクリーンショット 2020-06-28 16.07.21.png

5 Serverウィンドウが表示されます。Install the appliance on the GNS3 VM (recommended)を選択し、[Next]をクリックします。
スクリーンショット 2020-06-28 16.08.12.png

6 Required filesウィンドウが表示されます。Allow custom filesチェックボックスをONにし、c7200-adventerprisek9-mz.124-T5.imageを選択します。[Import]ボタンをクリックし、あらかじめダウンロードしておいたc7200-adventerprisek9-mz.124-T5.binのファイルを選択します。
スクリーンショット 2020-06-28 16.12.05.png

Allow custom filesチェックボックスをONにした場合、次の警告が表示されます。内容を確認し、[Yes]をクリックします。
スクリーンショット 2019-04-05 11.25.07.png

7 ダウンロードしておいたc7200-adventerprisek9-mz.124-T5.binとGNS3上のハッシュ値データベースにおけるc7200-adventerprisek9-mz.124-T5.imageのMD5ハッシュ値の値が異なるため、警告画面が表示されます。[Yes]をクリックし、先に進みます。
スクリーンショット 2020-06-28 16.12.50.png

8 Required filesウィンドウにおけるStatus項目の値がReady to installに変わっていることを確認し、[Next]をクリックします。
スクリーンショット 2019-04-05 11.31.52.png

9 Would you like to install Cisco 3660 version 124-15.T14?が表示されます。[Yes]をクリックします。
スクリーンショット 2019-04-05 11.33.16.png

10 Usageウィンドウが表示されます。The template will be available in the router category.の表示を確認し、[Finish]をクリックします。
スクリーンショット 2019-04-05 11.34.46.png

11 Cisco 3660 124-15.T14テンプレートの作成成功を示すウィンドウが表示されます。
スクリーンショット 2019-04-05 11.34.58.png

トラブルシューティング

GNS3ならびにGNS3 VMのバージョンを更新した際に、[Servers Summary]においてGNS3 VMインジケーターがグリーンにならない問題に遭遇しました。
この状態で「New templateのセットアップ」を試みた場合、次のエラーが表示されます。

Error while getting the list of remote images: Cannot connect to compute 'GNS3 VM (GNS3 VM)' with request GET /dynamips/images

スクリーンショット 2020-07-08 14.14.22.png

同様の問題に遭遇した場合のチェック項目について、次に記載します。

  • ホストマシンからGNS3 VMに対してpingを実行し、疎通確認を行う。
  • GNS3 VM preferencesにおいてポート番号の設定が正しいことを確認する。 スクリーンショット 2020-07-08 14.27.16.png

プロジェクトの作成

手順

1 New projectウィンドウが表示されます。新しいプロジェクトに名前を付けて、[OK]をクリックします。
スクリーンショット 2019-04-05 11.57.12.png

2 GNS3ワークスペースが表示されます。
スクリーンショット 2019-04-05 11.58.58.png

3 Devicesツールバーに注目してください。このツールバーでは機能別にデバイスを分類しています。プロジェクトへデバイスノードを追加するには、Devicesツールバーのアイコンをクリックし、設定済みデバイスのリストを表示させ、デバイスをワークスペースにドラッグします。
スクリーンショット 2019-04-05 12.00.33.png

ツールバーのデバイスタイプは、左から順に次のとおりです。

  • Routers
  • Switches
  • End Devices
  • Security Devices
  • All Devices
  • Add a Link

4 All Devicesアイコンをクリックし、先ほどセットアップを行ったCisco 3660 124-15.T14テンプレートをワークスペースへドロップします。
スクリーンショット 2019-04-05 12.10.29.png

5 Second GroupThird Groupツールバーに注目してください。このツールバーでは機器の制御を行います。Start/Resume all devicesボタンをクリックし、ワークスペースにドロップしたR1ルータを起動します。
スクリーンショット 2019-04-05 12.10.17.png

ツールバーの制御機能は、左から順に次のとおりです。

  • Snapshot
  • Show interface labels
  • Console connect to all devices
  • Start/Resume all devices
  • Suspend all devices
  • Stop all devices
  • Reload all devices

6 Console connect to all devicesボタンをクリックします。R1ルータのコンソールが立ち上がります。これで、無事、完了です。おつかれさまでした。
あとは、自由に実験するネットワークトポロジーを作成することができます。

まとめ

「GNS3」はGPLv3ライセンスで配布されているオープンソースソフトウェアです。実ネットワークに影響を与えること無く、柔軟にネットワークの実験を行うことができます。
インストールを終えたら、まずは3つのルータから構成されるネットワークトポロジーを作成してみてください。
GNS3に用意されているVPCS(Virtual PC Simulator)や、追加インストールを行ったWiresharkを使えば、より複雑なトポロジーに対する実験や、ネットワークパケットをキャプチャする検証が可能です。
引き続き、次の記事も参照いただければ幸いです。

v_avenger
セキュリティリサーチャー, RISS, GCIH | サイバー犯罪対策、特にオンライン詐欺が専門。2002年よりこの領域で活動。サポートエンジニア、マルウェア解析、インシデントハンドラー、フォレンジッカー等の経験を経て現職。国内外のカンファレンス登壇や技術講師なども担当。最近の嗜みはTryHackMe/VulnHub/HTB攻略, Splunk, Neo4j, GNS3, HackRF/SDR
trendm
セキュリティ製品を作成・販売しています。「安全・安心な社会をつくる」がミッションです
https://www.trendmicro.com/ja_jp/business.html
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away