GNS3 2.0からはKVM間のパケットキャプチャも取れるようになるぞい
Posted on 2017/01/04(Wed) 11:05 in technical
はじめに
GNS3 1.5までは、KVMを用いた場合は仮想ノード間の直結リンクをパケットキャプチャすることはできませんでした。
GNS3 2.0系からは、KVMを用いた場合でも、仮想ノード間の直結リンクをパケットキャプチャすることができるようになると言われています。
事実であれば個人的には非常に嬉しいので、現在開発中の 2.0 beta 1 を使って確認しておきたいと思います。
警告
GNS3 1.5以前でも、(GNS3の)SWを挟めばパケットキャプチャすることは可能です。
また、一般には使用されませんが、GNS3のKVM仮想ノード間リンクはUDPトンネルによって実現されているため、loopbackをキャプチャして自力でデカプセルすることで、ノード間の通信内容を確認することができます。
インストール
インストール方法は https://gns3.com/discussions/gns3-2-0-beta-1-released に従いたいところですが、ppaで入れた1.5系の環境も残しておきたいのでvirtualenvを使います。
つまりこうです。
$ 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が不足するため、エラーに従って対処します。
(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 のように実行権限を与えておく必要があります。
で、起動します。
(gns3_2.0b1) $ gns3
構成
KVMの仮想ノード2台を適当に構成します。今回はvSRXを2台直結しました。
vSRXにはこんな感じの設定が入っています。(図中 e1/0 が ge-0/0/0 にあたります)
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投げっぱなしにしておきます。
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をどうぞ。
というわけです。