ネットワークを学習する際に、ルーターやスイッチの実機を購入しないでネットワーク機器の検証環境を作りたいと思ったことはありませんか?
そのような場合には「GNS3」というツールを利用することで仮想的なCiscoルーターを操作して利用することができます。
もちろん実機がないとできない検証などもありますし、ネットワークエンジニアとして実機で検証すべき、と考える方もいますが、ネットワーク機器の基本的な学習は、GNS3でほとんどできますのでまずはGNS3で学習や検証を進めることをオススメします。
本記事ではGNS3の導入方法やインストール方法、簡単な使い方などを解説していこうと思います。
手順と前提条件
GNS3を構築するためには以下の手順があります。動作にはVirtualBoxなどの仮想ソフトも必要となり、結構複雑ではあります。
- GNS3のダウンロード、インストール ← 無料アカウント登録が必要
- GNS3 VMのダウンロード
- VirtualBoxのインストール
- VirtualBoxへGNS3 VMのインポート
- GNS3のセットアップ
- Cisco ISOファイルから仮想ルータテンプレートの作成
- 動作確認
今回は私のMacPCにGNS3環境を構築していきたいと思います。
また、仮想ソフトとしてVirtualBoxを利用していますが、VMwareも可能です。
GNS3などのツールは無料で手に入れることができますが、ツール上で動作させる仮想ルータを構築するためにCiscoルータのOSにあたる「Cisco ISOファイル」が必要です。ISOの取得は会社がCiscoパートナーであればCisco社のサイトからダウンロードできます。また、実機からイメージを吸い出すこともできますが、大半のそうでない方はどこからか、なんとかして入手する必要があります。ここは触れませんのであしからず。
GNS3ってなに?
そもそもGNS3はCiscoのネットワーク機器をPC内で仮想的にシュミレーションできるツールです。GNS3を利用することでPC内に仮想的にルーターやスイッチを作成して検証をすることができます。
理想としては自宅に実機があって、その設定を投入しながらルーティングテーブルなどを確認したいところですが、ほとんどの方が自宅でネットワーク機器はもってないと思います。
私のGNS3使い方としては、仮想ルーターに対してAnsibleからのテスト(Config取得や設定変更など)の環境として利用しています。
GNS3のダウンロード、インストール方法
まずはGNS3のサイトにアクセスしてツールをダウンロードしていきましょう。ダウンロードには無料のアカウント登録をする必要がありますので、右上の「Sign Up」から作成してください。
登録は英語ページなのですが、次のような感じである程度適当に入力してもオッケーです。

ログインした状態で、「FREE DOWNLOAD」からGNS3をダウンロードしていきます。

使用しているOSからダウンロードしてください。私の環境はMacなので、Macからダウンロードしていきます。

ダウンロードしたGNS3のインストーラーをダブルクリックしてインストールまで完了させてください。現時点ではGNS3を起動する必要はありません。

GNS3 VMのダウンロード
続いて「GNS3 VM」を下記よりダウンロードしていきます。このVMがGNS3のサーバになります。
GNS3のバージョンと同じものをダウンロードしてください。
VirtualBoxのインストール
VirtualBoxのインストールは下記にまとめてありますので、インストールを行なっていない方はこちらを参考にしてください。
VirtualBoxへGNS3 VMのインポート
次にVirtualBoxへ先ほどダウンロードしたGNS3 VMをインポートしていきます。
VirtualBoxから「仮想アプライアンスのインポート」を実行してください。

先程ダウンロードしたGNS3 VMのzipを解凍すると、「GNS3 VM.ovf」というファイルがありますので、そちらを選択してください。


その後はデフォルトのままで「インポート」すれば問題ありません。
インポートが完了すると以下のようにGNS VMが仮想マシンとして登録されるはずです。起動から正常に起動ができるか確認してみてください。

以下のような画面が立ち上がれば起動は成功です。

もし以下のようなエラーが出てGNS3 VMが起動しない場合には、ネットワークの設定が不足していますので、以下の設定を確認してください
The GNS3 VM (IP=192.168.56.101, NETWORK=192.168.56.0/24) is not on the same network as the local server (IP=127.0.0.1, NETWORK=127.0.0.0/8), please make sure the local server binding is in the same network as the GNS3 VM
[ファイル]->[ホストネットワークマネージャ]をクリックします。

おそらく何も作成されていない状態かと思いますので、[作成]をクリックしてネットワークを作成します。自動的に作成されるはずです。

GNS3 VMの設定を開いて、ネットワークのアダプター1に先ほど作成したアダプタを割り当てます。

これで再度仮想マシンが起動するか確認してください。
GNS3のセットアップ
次にGNS3のセットアップを行います。
GNS3を起動します。ただし、最初は色々とエラーがでますが気にしないでください。
はじめはいろいろな警告画面がでますが、最終的には以下のような画面が立ち上がるかと思います。左下の[Settings]をクリックします。

ServerからEnable local serverにチェックします。

次にGNS3 VMから以下の画面のように項目を選択します。

VMが開いて、「local server」と「GNS3 VM」が緑色になっていれば、GNS3の環境構築は無事終了です!
先程のGNS3VMの設定であった「headless mode」にチェックを入れることでVMがいちいち画面上に立ち上がらなくなります。チェックを入れておくことをおすすめします
以下のようにServer Summaryが両方ともグリーンになれば正常起動しています。

Cisco ISOファイルから仮想ルータテンプレートの作成
つぎに実際に仮想ルータを作成してみましょう。GNS3を立ち上げると毎回以下のような画面が立ち上がりますが、GNS3のプロジェクトを作成します。プロジェクト単位で構成が保管されますので、いつでも過去に作成した環境を復活させることができます。

Preferencesから設定画面を開きます。

IOS routersを選択して[New]から作成します。

ここからはダイアログにしたがってIOSファイルをインポートしていきます。デフォルト設定のまま進んで問題ありません。




最終的に仮想ルータとして登録されることを確認してください。

動作確認
最終的な動作確認のために、GNS3上に仮想ルーター2台を設置して、pingで疎通確認をしてみます。
はじめにルーターを設置します。左側のルーターマークから先ほど登録した仮想ルータをドラッグして設置します。
次に左側のケーブルマークをクリックして2台ともFastEthernet0/0で結線してください。結線が終わったら起動をしてルーターに電源をいれます。


それぞれのFa0/0に192.168.1.1と192.168.1.2を振って、pingで疎通確認をしてみましょう!
R1#configure terminal
R1(config)#interface FastEthernet 0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#exit
R1#wr
R2#configure terminal
R2(config)#interface fastEthernet 0/0
R2(config-if)#ip address 192.168.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#exit
R2#wr
R2#ping 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 4/24/52 ms
とりあえず今回は最低限のping疎通確認までしました。実際にはsshやtelnetの設定を入れたり、OSPFやBGPの設定、wiresharkを使ったキャプチャなんかもできますので、色々と試しまくってみてください!

今回は以上となります。
コメント