L2スイッチにローカルSPANを設定してみた
Wireshark(というネットワークアナライザ)ではパケットを覗き見ることが出来ますが、その覗き対象はWiresharkを起動している端末自身で送受信されるパケットになります。
今回は離れた端末でやり取りされるパケットをWiresharkで確認したいと思います。
スイッチのSPANという機能を使います。SPANにはローカルSPAN、RSPAN、RESPANがありますが今回は中でもローカルSPANを扱います。
概要
ノートパソコンを3台(A,B,Cとする)用意しスイッチにつなぎます。
A-B間でping通信を行い、そのパケットをCにインストールされたWiresharkで確認できれば実験成功とします。
ローカルSPANの機能によりfa0/1にて送受信されるパケットをコピーしてfa0/3に送ることでこれを実現します。
まずは構築。
スイッチは優秀なのでAはfa0/1にBはfa0/2にそれぞれケーブルでつなぐだけで、A-B間のping通信が実現できます。ただし、A, B側それぞれに同じネットワーク内のIPアドレスを設定することが前提になります。コピーしたパケットをfa0/3にも送りたいので当然Cも同じネットワーク内のIPアドレスを設定する必要があります。ここではネットワークアドレスを192.168.2.0/24とします。
また、IPアドレス等の設定は割愛します。
AからBへのPing
AはWindows10を使用しています。そしてBがUbuntuなのでWindows側のファイアウォールの設定によってはUbuntuからのpingが失敗するかと思います。設定を変えてもよいのですが面倒なのでUbuntu発のpingは今回行わずWindows発のpingのみをWiresharkで確認します。
Windowsでコマンドプロンプトを立ち上げpingを実行します。
ping 192.168.2.2
成功しました。
ここからスイッチにコマンドを投入します。
つまり、コピーされたパケットがCに入ってくるようにスイッチにSPANの設定をします。
具体的にはどのインターフェースを通るパケットをコピーするのか、そしてそのコピーをどのインターフェースへ送るのかを指定します。今回はスイッチのfa0/1を通過するパケットをコピー対象とし、fa0/3を送信先とします。
下記コマンドのように、コピー対象をsource、宛先をdestinationで指定します。
SW1(config)#monitor session 1 source interface FastEthernet 0/1
SW1(config)#monitor session 1 destination interface FastEthernet 0/3
これでスイッチの設定は完了です。
次にCにてWiresharkを立ち上げます。
先に立ち上げておき、A-B間の通信が発生次第リアルタイムでパケットが表示されるようにします。
Wiresharkを起動したら[キャプチャ]-[オプション]よりイーサネットを選択します。ここでプロミスキャスという箇所にチェックを入れるようにしましょう。チェックを入れないと自身の端末(ここではC)と直接接続されたパケットしか表示しないようになってしまいます。今回見たいのはCからスイッチを介したAとBとの通信なのでチェックを入れます。
実行しよう!
これですべての準備が整いました。
早速AからBにpingを送ってみましょう。
上手くいきました。