Dynamips(Cisco 7200 Simulator)をMac OS Xで使ってみる

ここしばらくネットワーク周りから遠ざかっていたので、勘が鈍ってきていることに気づいた。というわけで、久々にネットワーク周りで楽しいことをして遊ぼう。
今回選んだネタはDynamips。これはCisco 7200のエミュレータIOSさえ用意できれば、本物のCisco 7200があなたの手元で動作する!というもの。エミュレータの例に漏れず、こいつもCPUとメモリを大量に要求する。うちで一番高速でメモリの多いマシンが、なぜかMacBookだったので、Mac OS X 10.5.2(Intel)で動作させてみた。

用意するもの

Dynagenは、Dynamips用のフロントエンド。Dynamipsの設定はかなりややこしいんだけど、Dynagenを使うとそれなりの複雑さに抑えられる。あと、Intel用のDynamipsが同梱されているので、buildしなくても使えるのが楽ちん。
Cisco 7200用のIOSに関しては、各自の努力で入手すべし。入手方法は聞くな。

Dynagenのインストール

dmgファイルを展開して、生成された"Dynagen"フォルダを/Applicationsにコピーする。

IOSの準備

IOSを所定のディレクトリに配置する。今回は/Applications/Dynagen/imagesということにした。
ところで、一般的にネットワーク機器のファームウェアを格納するFlash Memoryは、容量が小さい。というわけで、容量を節約するためにファームウェアは圧縮されていることが多い。Cisco IOSもこの例に漏れず、zipで圧縮されている。最近のDynamipsは、圧縮されたIOSを展開してloadできるけど、毎回展開するのは時間がかかるし、エミュレータだから容量を節約する理由もないから、あらかじめ伸張しておくのがおすすめ。

> unzip -p c7200-g6ik8s-mz.124-2.T1.bin > c7200-g6ik8s-mz.124-2.T1.image

ファイル名は、IOSのバージョンによって異なるので注意。

Dynagenの設定ファイル作成

Dynagenは、Network Fileと呼ばれる設定ファイルを与えることで、好みのネットワーク構成を作成することができる。サンプルがDynagen/sample_labos以下に展開されているので、まずはこれを流用する。simple1がもっとも単純な設定なので、まずはこいつをディレクトリごとどこかにコピーする。

> cp -r /Applications/Dynagen/sample_labos/simple1 ~/dynagen/

simple1.netのimageの部分だけを、用意したIOSにあわせて書き換える。

# Simple lab

[localhost]

    [[7200]]
    image = /Applications/Dynagen/images/c7200-g6ik8s-mz.124-2.T1.image
    npe = npe-400
    ram = 160
        
    [[router R1]]
    s1/0 = R2 s1/0
    
    [[router R2]]
    # No need to specify an adapter here, it is taken care of
    # by the interface specification under Router R1

Dynagenの起動

Network Fileが用意できたので、いよいよDynagenを起動する。まずは/Applications/Dynagen/Dynamips Serverを起動する。Terminalが開いてパスワードを要求されるので、自分のパスワードを入力する。Hypervisor TCP control server startedと出力されて、待ち状態になったらOK。

> cd /tmp ; sudo /Applications/Dynagen/dynamips -H 7200
Password:
Cisco Router Simulation Platform (version 0.2.8-RC2-x86)
Copyright (c) 2005-2007 Christophe Fillot.
Build date: Nov 11 2007 11:11:35

ILT: loaded table "mips64j" from cache.
ILT: loaded table "mips64e" from cache.
ILT: loaded table "ppc32j" from cache.
ILT: loaded table "ppc32e" from cache.
Hypervisor TCP control server started (port 7200).

次はDynagenを起動する。今後のために、Network FileをDynagenで開くように設定しておく。Finderでsimple1.netをCtrl+クリックして、「情報を見る」を選択する。

「このアプリケーションで開く」のプルダウンメニューから「その他」を選択する。

「選択対象」を「全アプリケーション」として「常にこのアプリケーションで開く」にチェックし、Dynagenを選択する。


これで、Network FileはDynagenで開くように設定された。あとはFinderでsimple1.netをダブルクリックして、Dynagenを起動する。
Terminalが開いていろいろ出力され、最後に => なプロンプトが出力されればOK。これでrouterが起動されている。

Reading configuration file...

Network successfully loaded

Dynagen management console for Dynamips and Pemuwrapper 0.11.0
Copyright (c) 2005-2007 Greg Anuzelli, contributions Pavel Skovajsa

=>