CML2 (Cisco Modeling Labs 2.0) のパケットキャプチャの方法

スポンサーリンク

CML2(Cisco Modeling Lab version 2.0)でパケットキャプチャを取得する方法を説明します。CML2はGUIで簡易的なパケットキャプチャを取得する事は容易ですが、WireSharkを使って詳細な分析を行うのはかなり手間です。WireShark等の詳細分析をするためには、CML2内でミラーポートを実装し、さらにミラーポート先にLinuxサーバを構築してtcpdumpコマンド等を実行する必要があります。

簡易キャプチャ

ラボ作成

パケットキャプチャの動作確認を行うため、ルータ2台でOSPFの経路交換を行います。

CML2 NATラボ作成01

パケットキャプチャしたいリンクを選び「Packet Capture」タブを開きます。キャプチャ条件を入力し、「Start」を押下します。

CML2 キャプチャ条件の入力

パケットキャプチャの結果は以下のように表示されます。

CML2 パケットキャプチャ結果

詳細キャプチャ

ラボ作成

パケットキャプチャを行うために、「ミラーポートを設定するIOSvL2」「パケットキャプチャを実施するLinux機」「パケットキャプチャした結果をホストOS側へと転送するためのExternal Connector」を設けたラボを作成します。

Linux機はいくつかのディストリビューションが候補にあがりますが、オススメは軽量なApline Linuxです。おそらくメモリ8G程度のCML2ではUbuntuの起動すら難しいでしょう。

CML2 NATラボ作成02

ミラーポートの設定

IOSvL2にログインしミラーポートを設定します。設定例は以下の通りです。

monitor session 1 source interface Gi0/1
monitor session 1 destination interface Gi0/0

Alpine LinuxのIPアドレス設定

Alpine Linuxを操作するには、Linux機を選んだ状態で「VNC」タブを開きます。するとコンソールに接続する事ができます。

Alpine LinuxのVNC

しばらく待つとログイン画面になっていると思いますので、ユーザ名「cisco」パスワード「cisco」でログインします。

Alpine Linuxへのログイン

ログイン後、rootユーザに権限昇格します。rootパスワードは「cisco」です。

alpine-base:~$ su -
Password:
alpine-base:~#

/etc/network/interfacesを編集し、Alpine LinuxにIPアドレスを付与します。設定例は以下の通りです。

# vi /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.9.40
        netmask 255.255.255.0
        gateway 192.168.9.2
        hostname alpine-base

auto eth1
iface eth1 inet static
        address 169.254.0.1
        netmask 255.255.0.0

設定反映はnetworkingサービスの再起動です。

alpine-base:~# service networking restart
 * WARNING: you are stopping a boot service
 * Stopping networking ...
 *   eth0 ...                                                             [ ok ]
 *   lo ...                                                               [ ok ]
 *   eth1 ...                                                             [ ok ]
 * Starting networking ...
 *   lo ...                                                               [ ok ]
 *   eth0 ...                                                             [ ok ]
 *   eth1 ...                                                             [ ok ]
alpine-base:~#

設定されたIPアドレスを確認します。

alpine-base:~# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:18:90:fc brd ff:ff:ff:ff:ff:ff
    inet 192.168.9.40/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe18:90fc/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:01:fe:41 brd ff:ff:ff:ff:ff:ff
    inet 169.254.0.1/16 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe01:fe41/64 scope link
       valid_lft forever preferred_lft forever

CML2外部のホストからAlpine Linuxへログイン可能な事を確認します。

[root@localhost ~]# ssh 192.168.9.40 -l cisco
cisco@192.168.9.40's password:
Welcome to Alpine!

The Alpine Wiki contains a large amount of how-to guides and general
information about administrating Alpine systems.
See <http://wiki.alpinelinux.org/>.

You can setup the system with the command: setup-alpine

You may change this message by editing /etc/motd.

alpine-base:~$ su -
Password:
alpine-base:~#

パケットキャプチャの実施

tcpdumpコマンド等で適宜パケットキャプチャを実施します。

alpine-base:~# tcpdump -i eth1 ip proto 89
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
09:50:50.833298 IP 192.168.12.1 > ospf-all.mcast.net: OSPFv2, Hello, length 56
09:51:03.545173 IP 192.168.12.1 > ospf-all.mcast.net: OSPFv2, Hello, length 56
09:51:15.706797 IP 192.168.12.1 > ospf-all.mcast.net: OSPFv2, Hello, length 56
09:51:29.429479 IP 192.168.12.1 > ospf-all.mcast.net: OSPFv2, Hello, length 56
09:51:37.291184 IP 192.168.12.2 > ospf-all.mcast.net: OSPFv2, Hello, length 56
09:51:43.384779 IP 192.168.12.1 > ospf-all.mcast.net: OSPFv2, Hello, length 60
09:51:43.444646 IP 192.168.12.2 > 192.168.12.1: OSPFv2, Database Description, length 44
09:51:43.499127 IP 192.168.12.2 > 192.168.12.1: OSPFv2, Hello, length 60
09:51:43.554310 IP 192.168.12.1 > 192.168.12.2: OSPFv2, Database Description, length 44

もし、WireSharkなどのGUIツールで分析したい場合は、ファイルに書き出した後にCML2外部のホストへ転送すると良いでしょう。

alpine-base:~# tcpdump -i eth1 ip proto 89 -w /tmp/ospf.cap
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
^C6 packets captured
6 packets received by filter
0 packets dropped by kernel
alpine-base:~# 
alpine-base:~# 
alpine-base:~# scp /tmp/ospf.cap root@192.168.9.70:~/
The authenticity of host '192.168.9.70 (192.168.9.70)' can't be established.
ECDSA key fingerprint is SHA256:MDvzCjl9vcaGEJ09aNDaokkAf7yCn9BppyQI8JvCSkE.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.9.70' (ECDSA) to the list of known hosts.
root@192.168.9.70's password:
ospf.cap                                      100%  684    47.2KB/s   00:00
alpine-base:~#
タイトルとURLをコピーしました