NW機器エミュレータ「GNS3」導入 [備忘録]

NW機器のエミュレート(主にCisco IOS)をしたくなったので、GNS3を自宅のWindows 10環境に導入。その際の備忘録をまとめておきます。

GNS3のインストール

公式HPから自分のOSに合ったインストーラをダウンロードしてインストール。初めての人はアカウント登録必須。インストーラは基本デフォルト設定のままでOK。Solarwinds(NWとDBの監視・管理ツール)のライセンスを取得はNoを選択。

GNS3 VMのダウンロードと展開

GNS3はローカルにサーバ立ててそこにアクセスする形で動作している模様。そのため、GNS3 VMを仮想化ソフトに展開する必要がある。

ココからGNS3 VMをダウンロード。仮想化ソフトに合ったものをダウンロードする。VMwareが推奨されている。VMware Workstation Proも事前にインストールしておく必要がある(試用版が30日無料)。なお、無料版のWorkstation Playerだと、GNS3が認識してくれなかったので、Proではないとダメな模様。それか、動作速度が大幅に落ちる(らしい by 公式)VirtualBoxで行うと良いかも。

「仮想マシンを開く」からダウンロードしてきたGNS3 VMを展開する。

GNS3の環境構築

GNS3を起動すると立ち上がる”Setup Wizard”で、一番上の「Run modern IOS」を選択して進む。 Local serverの設定はそのままでOK。先程展開したGNS3 VMと紐付け。設定値はデフォルトのままでOK。そのままで進んでFinish。そのあと出てくるポップアップはCancelをクリック。

Cisco IOS ダウンロードとインストール

ココからCiscoのアカウント登録をする。登録時に会社名登録するとメールアドレスを会社のものにしないと弾かれるので、登録時はblankでOK。ログイン後、個人>プロファイル管理で会社名を登録する。会社名登録しないとIOSダウンロードできません。ある程度入力すると会社名と住所を自動補完してくれるので(やるやん)、クリックして確定。今回は、CSR1000VのOSをダウンロードする。コチラから一番下にあるものをダウンロード。

VMware Workstation Proの「新規仮想マシンの作成」からダウンロードしてきたIOSをソースとして仮想マシンを作成(名前はCisco CSR1000V)。OSはLinux、バージョンはその他のLinux 4.x以降のカーネル(64 ビット)を選択。メモリは4096MBに変更する。ネットワークアダプタをNATからVMnet2に変更する。VMnet2とVMnet3がない場合があるので、その際は仮想ネットワークエディタで作成しておく

ひととおり、設定が完了したらパワーオン。「Would you like to enter the initial configuration dialog? [yes/no]: 」でnoを選択し、しばらく待ってEnter押して Router> 表示になったら完了。

同様に、もう一台仮想マシンを作成。名前はCisco CSR1000V2で、ネットワークアダプタはVMnet3。起動確認完了したら、両方ともシャットダウン。

GNS3でCSR1000Vを設定

GNS3の Edit > Preferences を開く。左のメニューからVMware VMsを選択し、Newをクリック。Server typeは「Run this VMware VM on my local computer」(てかこれしか選べない)。VM listからCSR1000Vを選択しFinish。同じ手順でCSR1000V2も追加する。

これでルータの起動準備が完了したので、Projectを作成する。File > New blank project から作成。

左のメニューからアイコンが4つまとまっている部分もクリックして、Installed applianceを選択。CSR1000VとCSR1000V2が一覧に出てくるので、これを画面中央にD&D。そしてStartボタンをクリックして起動。右のNodeのインジケータが緑色になれば起動完了。

ここで、Windowsのファイアウォール(FW)設定を確認する。GNS3に対してFWの例外許可をしていないと、このあとでエラーが頻発する。Private/Public両方とも許可しておく。

疎通テスト

CSR1000V(RT1とする)に192.168.12.1/24を、 CSR1000V2(RT2とする)に192.168.12.2/24を割り当てる。

RT1側には以下の設定を行う。

Router> en
Router# conf t
Router(config)# hostname RT1
RT1(config)# interface gigabitEthernet 1
RT1(config-if)# ip address 192.168.12.1 255.255.255.0
RT1(config-if)# no shutdown
RT1(config-if)# end
RT1# copy running-config startup-config

RT2側にも同じように設定を行う。

この時点でRT1からRT2にpingを実行しても疎通しない。結線されていないからである。

GNS3で左のケーブルアイコンをクリックして、CSR1000Vをクリックしてインターフェースを指定(今回はEthernet 0)してクリック、そして CSR1000V2をクリックしてインターフェースを指定(今回はEthernet 0)してクリックすると結線される。

この状態でpingを飛ばすと疎通する。

なかなかメモリ食うので、RAM 16GBだったら3台くらいが限界かな。。。(よしスパコン組むか)

NetworkGNS3

Posted by Kosuke