ルータをまたいで繋がっているサーバ・プログラムをデバッグする必要があり、物理マシンでネットワーク構成を再現するのはたいへんなことから、仮想環境で模擬することができないか模索しました。今のところ、GNS3を使えばなんか実現できそうなことが分かりました。
課題
自宅1でリッチなネットワークとサーバを模擬する。例えば、以下のようなトポロジ。VPCS
2、C6_0
とC6_1
は、同じネットワークアドレスとします。
GNS3が無い場合、すなわちVirtualBox上の仮想マシンとしては直結3なのでpingは通ります。もし、GNS3がネットワークを模擬できるなら、断線するとpingは通らなくなります。
実験
結線時、断線時ふたつの条件下でお互いにpingします。VirtualBoxの設定は変更しません。IPアドレスの指定などすべてGNS3からおこないます。
環境
- ホストOS : Ubuntu 18.04(64bit)
- ゲストOS : CentOS 6.10(32bit) ※C6_0, C6_1
- GNS3 : 2.1.21
- VirtualBox : 5.2.18_Ubuntu r123745
結果
結線時
CentOS release 6.10 (Final)
Kernel 2.6.32-754.15.3.el6.i686 on an i686
localhost.localdomain login: root
Password:
Last login: Sun Jul 28 09:44:07 on ttyS0
[root@localhost ~]# ifconfig eth0 192.168.100.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:19:9D:FF
inet addr:192.168.100.10 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1100 (1.0 KiB) TX bytes:2604 (2.5 KiB)
[root@localhost ~]# ping 192.168.100.11
PING 192.168.100.11 (192.168.100.11) 56(84) bytes of data.
64 bytes from 192.168.100.11: icmp_seq=1 ttl=64 time=1.03 ms
64 bytes from 192.168.100.11: icmp_seq=2 ttl=64 time=1.25 ms
64 bytes from 192.168.100.11: icmp_seq=3 ttl=64 time=1.39 ms
64 bytes from 192.168.100.11: icmp_seq=4 ttl=64 time=1.35 ms
64 bytes from 192.168.100.11: icmp_seq=5 ttl=64 time=1.35 ms
--- 192.168.100.11 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4569ms
rtt min/avg/max/mdev = 1.030/1.277/1.390/0.131 ms
[root@localhost ~]#
C6_1→C6_0は同様の結果なので省略します。
断線時
[root@localhost ~]# ping 192.168.100.11
PING 192.168.100.11 (192.168.100.11) 56(84) bytes of data.
From 192.168.100.10 icmp_seq=9 Destination Host Unreachable
From 192.168.100.10 icmp_seq=10 Destination Host Unreachable
From 192.168.100.10 icmp_seq=11 Destination Host Unreachable
From 192.168.100.10 icmp_seq=13 Destination Host Unreachable
From 192.168.100.10 icmp_seq=14 Destination Host Unreachable
From 192.168.100.10 icmp_seq=15 Destination Host Unreachable
C6_1→C6_0は同様の結果なので省略します。
考察
期待通り、GNS3上の設定を変更するだけで、あたかも断線したかのようにpingが通らなくなりました。
GNS3には、ルータを加えることもできるようです。Cisco IOS4があると、CISCOのルータを模擬することもできるようです。むしろ、ネット上の参考文献を拝見する限り、GNS3は、CCNA/CCNPの教材として使われている方が多いようです。
今回の実験とネット上の情報を拝見する限り、期待通りネットワークを模擬することができそうです。今回はpingだけだったので、今後は、アプリケーション層の通信やマルチキャスト等も期待通りの結果になるか(物理的なネットワークを模擬するツール足りうるか)試してみたいと思います。期待が膨らみます。