- dynagen
- dynamips
何か会社の自席から半径2メートルぐらいでにわかに盛り上がっていたのでやってみた。GUIが使えるならGNS3というのも使うと、トポロジーが簡単に作れるので良い。
エミュレートするマシンにCatalystはないけど、routerにNM-16ESW モジュールを追加すれば、似たようなことはだいたいできる。
一番の難所はIOSを入手するところだけど、ネットオークションで中古のcisco製品買うなどして気合で手に入れる。
install
configureは必要ないので、dynagenとdynamipsのバイナリを取ってくる。取ってきたものを適当なところに放り込む。
起動
dynamips を起動後、dynagenを起動
dynamips
"-H" で指定したportで起動。--helpのoptionには-H [ip]:port と書いているけど、IPを指定したらdefaultの7200でlistenする。よくわからん。
dynamipsは全interfaceでlistenして認証なしでtelnet接続できるので、インターネット上に公開しているサーバの場合はiptables などでlocalhost以外からの接続はDROPしておくのが良い。
$ dynamips -H 2691 &
# iptables -A INPUT --protocol tcp --source localhost --dport 7200 --jump ACCEPT # iptables -A INPUT --protocol tcp --dport 7200 --jump DROP
dynagen
設定ファイル作って、それを引数にして起動。console で指定した数値でtcp portがlistenするので、そこにtelnet接続するとrouterにコンソール接続した状態になる。これもdynamipsと同様にlocalhost以外からの接続はDROPしておくのが良い。
$ cat ~/etc/dynagen.net [localhost:2691] [[2691]] image = /path/to/ios.bin ram = 256 [[ROUTER Router]] model = 2691 console = 2001 $ dynagen ~/etc/dynagen.net #### dynagenはフォアグラウンドで起動しているので別のシェルから $ telnet localhost 2001
dynagen idlepc の設定
dynagenを起動するとモリモリ cpuを消費するのでdynagen のシェルからidlepcを設定する。
=> idlepc get Router ### 数種類表示されるので適当に数字選んで、cpu負荷が下がるものを選択する ### 再度選ぶ場合はshow で => idlepc show Router => idlepc save Router
dynagen設定
Router間を接続する
ROUTERの中でinterface間の情報を書く。片側のrouterに書くだけで、両方書かなくても良いかも?
[[ROUTER R1]] model = 2691 console = 2001 idlepc = 0x61475998 F0/0 = R2 F0/0 [[ROUTER R2]] model = 2691 console = 2002 idlepc = 0x61475998 F0/0 = R1 F0/0
L2 Switch のエミュレート
NM-16ESW モジュールを追加する。
[[ROUTER R1]] model = 2691 console = 2001 idlepc = 0x61473534 F0/0 = R2 F0/0 slot1 = NM-16ESW
R1#show interfaces summary *: interface is up IHQ: pkts in input hold queue IQD: pkts dropped from input queue OHQ: pkts in output hold queue OQD: pkts dropped from output queue RXBS: rx rate (bits/sec) RXPS: rx rate (pkts/sec) TXBS: tx rate (bits/sec) TXPS: tx rate (pkts/sec) TRTL: throttle count Interface IHQ IQD OHQ OQD RXBS RXPS TXBS TXPS TRTL ------------------------------------------------------------------------ * FastEthernet0/0 0 0 0 0 0 0 0 0 0 FastEthernet0/1 0 0 0 0 0 0 0 0 0 FastEthernet1/0 0 0 0 0 0 0 0 0 0 FastEthernet1/1 0 0 0 0 0 0 0 0 0 FastEthernet1/2 0 0 0 0 0 0 0 0 0 FastEthernet1/3 0 0 0 0 0 0 0 0 0 (略) Vlan1 0 0 0 0 0 0 0 0 0 R1#conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)#interface fastEthernet 0/0 R1(config-if)#switchport ? % Unrecognized command ### <= 元からついてるFa0/0 にはswitchport設定できない R1(config-if)#exit R1(config)#interface fastEthernet 1/0 R1(config-if)#switchport access vlan ? <1-1005> VLAN ID of the VLAN when this port is in access mode ### 追加した Fa1/0 にはswitchport でvlan設定できる