Dynamips / Dynagen 実行環境 |
Dynalconf HOME |
このサイトで掲載しているネットワーク構成において、Dynamips/Dynagenの実行環境や環境構築方法、使用方法について記載します。
DynamipsはCentOS7上でハイパーバイザーとして動作させ、Windows10にDynagenをインストールしています。Windows上のDynagenのコンフィグファイル内でDynamipsハイパーバイザーが起動しているCentOS7のIPアドレスを指定し、仮想ルーター自体はCentOS7上のDynamipsで動作させています。
CentOS7のスペックは、二昔前のクアッドコアCPUにメモリが4GBほどあれば、以下のような構成であれば動作可能です。
OSPF LSA Type LABなお、主に使用しているルータのモデルは、Cisco 7200でIOSバージョンは15.2(4)または15.5(2)XBです。
ソフトウェアの選択で「最小限のインストール」を選択してインストール。Dynamipsの実行で使用するのであれば、後でいくつかのコンパイラやライブラリ等が必要となるものの、「最小限のインストール」で特に不都合はないかと思います。好みに応じてご選択して下さい。
yum install cmake gcc elfutils-devel libpcap libpcap-devel
yum install unzip (zip形式の展開で必要)ダウンロードしたDynamipsのソースをWinSCPなどでCentOS7の適当なフォルダにコピーし、以下のコマンドで展開。Sambaを利用可能にしておくと色々と便利かと思います。
unzip dynamips-0.2.18.zip (zip形式の場合は、unzipをyum install unzipでインストール要)または、
tar zxvf dynamips-0.2.18.tar.gz展開後のフォルダに移動し、以下のコマンドを実行。
cmake . makeこれによりstableフォルダ配下に実行可能ファイル"dynamips"が作成されます。
cd /dynamips ./dynamips -H 7200 &(*) "&"を指定し忘れると"dynamips -H 7200"の実行後にコンソールが止まってしまいOSの起動が完了しません。
chmod u+x rc.localこれによりOSが起動した際にdynmipsハイパーバイザーが起動されるようになります。
systemctl disable firewalld rebootfirewallを有効にした状態で通信許可を設定するのであれば、以下のような設定が必要となります。
/usr/lib/firewalld/services/
<?xml version="1.0" encoding="utf-8"?> <service> <short>dynamips</short> <description>Dynamips Hypervisor</description> <port protocol="tcp" port="7200"/> </service>Dynamips Consoleアクセス用(dynamips-console.xml)
<?xml version="1.0" encoding="utf-8"?> <service> <short>dynamips-console</short> <description>Dynamips Console</description> <port protocol="tcp" port="2000-2100"/> </service>
firewall-cmd --reload以下のコマンドでユーザ定義サービスが登録されていることを確認します。
firewall-cmd –-get-services以下のコマンドを実行し、ユーザ定義サービスのインストールと有効化を行います。
firewall-cmd --add-service=dynamips --zone=public --permanent firewall-cmd --add-service=dynamips-console --zone=public --permanent firewall-cmd --reload
Windowsマシンに Installer Packageを使用してインストールして下さい。
Windows上でのDynagenコンフィグファイルの記載例は以下になります。
### Dynagen Configuration File ### autostart = False ghostios = True [192.168.0.1:7200] # ---> IP and Port No. of CentOS7 running Dynamips Hypervisor workingdir = /root/lab/lab001 # ---> Folder of nvram etc. of Virtual Router on CentOS7 [[7200]] npe = npe-400 image = /dynamips/ios/7200/IOS.image # ---> IOS Folder on CentOS7 (*1) idlepc = ******** ram = 512 disk0 = 64 disk1 = 0 slot0 = C7200-IO-2FE slot1 = PA-4E [[Router R1]] model = 7200 E1/0 = R2 E1/0 [[Router R2]] model = 7200 E1/0 = R1 E1/0
idlepc値を設定していない状態だと仮想ルータ一台でCPUを100%使用してしまうため、idlepc値の調整が必要となります。
仮想ルータを起動しCLIコマンドモードのユーザEXECモードに入り少し落ち着いたあたりで、Dynagenのコンソール画面から以下のコマンドを実行し候補となるidlepc値を取得後、Dynagenのコンフィグファイルに書き出す必要があります。
=> idlepc get "ルータ名"
取得したidlepc値をDynagenコンフィグファイルのルータ定義セクションやIOSの定義セクションで指定する。
<idlepc値の取得及び設定例>=> idlepc get R1 ---> idlepc値取得コマンド Please wait while gathering statistics... 1: 0x619c827c [28] 2: 0x64068af8 [42] 3: 0x60189234 [33] 4: 0x63cc1af4 [31] 5: 0x6062c4ac [33] 6: 0x6025d0b8 [29] * 7: 0x619c5a58 [51] --->"*"の付いている値うちどれかを選択 8: 0x619c5ab8 [47] 9: 0x619c5b10 [28] * 10: 0x6062db64 [58] --->"*"のついている値うちどれかを選択 Potentially better idlepc values marked with "*" Enter the number of the idlepc value to apply [1-10] or ENTER for no change: 7 ---> "7"を選択 Applied idlepc value 0x619c5a58 to R1 => idlepc save R1 ---> DynagenコンフィグファイルのR1定義セクションへ書き込み idlepc value saved to section: Router R1 =>
C:\Program Files (x86)\Dynamips\dynagen.inidynagen.iniファイルに以下の一行を追加します。
telnet = start C:\progra~1\teraterm\ttermpro.exe /nossh %h %p(*) 他の"telnet ="で始まる行をコメントアウトする必要があります。
=> telnet R1 ---> R1のコンソールにアクセス
良く使用するコマンドを以下にご紹介します。
=> list ---> ルータ一覧の表示 Name Type State Server Console R1 7200 running 192.168.120.63:7200 2000 R2 7200 stopped 192.168.120.63:7200 2001 => start /all ---> 全ルータの起動 => start R1 ---> ルータR1のみ起動 => telnet /all ---> "running"の全ルータのコンソールにアクセス => telnet R1 ---> R1のコンソールにアクセス => stop R1 ---> R1のみ停止 => stop /all ---> 全ルータの停止 => export /all config ---> configフォルダに全ルータのコンフィグをエクスポート => import /all config ---> configフォルタ内のコンフィグを全ルータにインポート => capture R1 e1/0 sample.cap ---> R1 e1/0をキャプチャー => no capture R1 e1/0 ---> R1 e1/0のキャプチャーを停止 => reload /all ---> 全ルータのリロード(Dynamipsではルータのreloadコマンドは未サポート) => exit ---> 終了
Dynalconf HOME |