dynagenでcisco routerを動かすのはいいけど、アクセスするにはコンソール用のポートに接続しないといけなくてポート番号忘れたりするしやきもきするので、直接接続したくなったのでやった。
dynagenのrouterの設定で、F1/0 = NIO_tap:tap0 のように記述すれば、ホストのtap0に接続できる。
tap デバイスの作成
tunctl でtap0 デバイスを作成して、適当にIPを割り当てる。
# tunctl # ifconfig tap0 10.0.0.254 netmask 255.255.255.0 up
dynagen
適当に繋ぐ。dynagenにはcatalyst がないので、ルータ r1上にslot1 = NM-16ESW のモジュールを追加してそこをL2 switchの代わりにした。
接続元 | 接続先 |
ホスト tap0 (10.0.0.254) | r1 fa1/0 |
ルータ r1 fa0/0 (10.0.0.1) | r1 fa1/1 |
ルータ r2 fa0/0 (10.0.0.2) | r1 fa1/2 |
- dynagen.net
[localhost:2691] [[2691]] image = /path/to/ios/c2691.bin ram = 128 [[ROUTER R1]] model = 2691 console = 2001 F1/0 = NIO_tap:tap0 F1/1 = R1 F0/0 F1/2 = R2 F0/0 slot1 = NM-16ESW idlepc = 0x61475998 [[ROUTER R2]] model = 2691 console = 2002 slot1 = NM-16ESW idlepc = 0x61475998
あとはdynamipsとdynagenを起動する。
ただし、tap を利用している関係か、rootで起動する必要があるようだ。
routerの設定
各接続間のinterfaceのduplex, speed をあわせてno shut する。switchとして使っているFa1/0,1,2 はportfastも入れておくと良い。
$ telnet localhost 2001 r1> r1>en Password: r1#conf t Enter configuration commands, one per line. End with CNTL/Z. r1(config)#int range fa1/0 - 2 r1(config-if-range)#duplex full r1(config-if-range)#speed 100 r1(config-if-range)#no shutdown r1(config-if-range)#spanning-tree portfast r1(config-if-range)#end r1#copy run start r1#ping 10.0.0.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/8 ms r1#ping 10.0.0.254 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.0.254, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
ping通った。
ホストからrouter のIPにtelnetしてみる。
$ ping -c 4 10.0.0.1 PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=255 time=2.84 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=255 time=3.24 ms 64 bytes from 10.0.0.1: icmp_seq=3 ttl=255 time=3.47 ms 64 bytes from 10.0.0.1: icmp_seq=4 ttl=255 time=2.01 ms --- 10.0.0.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 2.016/2.893/3.470/0.558 ms $ telnet 10.0.0.1 Trying 10.0.0.1... Connected to 10.0.0.1. Escape character is '^]'. User Access Verification Password: r1>
入れた。