GNS3 2.0からはKVM間のパケットキャプチャも取れるようになるぞい
注記:
- GNS3 1.5以前でも、(GNS3の)SWを挟めばパケットキャプチャすることは可能です。
- また、一般には使用されませんが、GNS3のKVM仮想ノード間リンクはUDPトンネルによって実現されているため、loopbackをキャプチャして自力でデカプセルすることで、ノード間の通信内容を確認することができます。
インストール
インストール方法は https://gns3.com/discussions/gns3-2-0-beta-1-released に従いたいところですが、ppaで入れた1.5系の環境も残しておきたいのでvirtualenvを使います。
つまりこうです。
1
2
3
4
|
$ virtualenv gns3_2.0b1
$ source gns3_2.0b1/bin/activate
(gns3_2.0b1) $ pip3 install gns3-gui==2.0.0b1
(gns3_2.0b1) $ pip3 install gns3-server==2.0.0b1
|
ただし、そのままではsipおよびPyQt5が不足するため、エラーに従って対処します。
1
2
3
4
5
6
7
8
|
(gns3_2.0b1) $ gns3
Fail update installation: No module named 'sip'
Can't import Qt modules: Qt and/or PyQt is probably not installed correctly...
(gns3_2.0b1) $ pip install sip
(gns3_2.0b1) $ gns3
Fail update installation: No module named 'PyQt5'
Can't import Qt modules: Qt and/or PyQt is probably not installed correctly...
(gns3_2.0b1) $ pip install PyQt5
|
- 初めて導入する人向け。
- GNS3のキャプチャ機能が使用するWiresharkは事前に導入しておいてください。
- Ubuntu 16.04の場合、ユーザー権限でキャプチャを実行する場合は、実行ユーザーをwiresharkグループに追加するか、 sudo chmod 755 /usr/bin/dumpcap のように実行権限を与えておく必要があります。
で、起動します。
構成
KVMの仮想ノード2台を適当に構成します。今回はvSRXを2台直結しました。
vSRXにはこんな感じの設定が入っています。(図中 e1/0 が ge-0/0/0 にあたります)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
root> show configuration | display set
set version 15.1X49-D50.3
set system root-authentication encrypted-password "$5$P1eVC.km$p5ML/j5ifpwkViPEhToKeuo.6zDNdTi8prC1ngUGs15"
set system services ssh
set system services web-management http interface fxp0.0
set system syslog user * any emergency
set system syslog file messages any any
set system syslog file messages authorization info
set system syslog file interactive-commands interactive-commands any
set system license autoupdate url https://ae1.juniper.net/junos/key_retrieval
set security forwarding-options family mpls mode packet-based
set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.1/24
set interfaces ge-0/0/0 unit 0 family inet6 address 2001:db8::1/64 preferred
set interfaces fxp0 unit 0 family inet address 192.168.201.1/24
|
とりあえずping投げっぱなしにしておきます。
1
2
3
4
5
|
root> ping 192.168.10.2
PING 192.168.10.2 (192.168.10.2): 56 data bytes
64 bytes from 192.168.10.2: icmp_seq=0 ttl=64 time=18.091 ms
64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=8.008 ms
64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=11.331 ms
|
キャプチャ
直結リンクの上で右クリックして “Start Capture” を選択します。
リンクタイプとファイル名を決定できるので、適当に決めます。大抵の場合デフォルトで問題ありません。
Wiresharkが立ち上がり、パケットキャプチャが開始されます。
素晴らしい。
しかも、キャプチャしているリンクの上には、なんと虫眼鏡アイコンが描かれるようになったんだぞ!(どうでもいい追加情報)
ちなみにblog用に画像取得しようと思って、上記の手順でパケットキャプチャ開始したらqemuごと落ちたことがあった。
そうなってもみんな怒らないでくれ。頼む。原因は知らん。
当然VLANもキャプチャできるので、何がとは言いませんが大丈夫です。
おしまい
GNS3 2.0以降ならKVMの仮想ノード直結リンクもパケットキャプチャが取得できそうなので、2.0リリースが待ち遠しい。
今すぐ使いたい人は2.0 betaをどうぞ。
というわけです。