Cisco ルータでパケットキャプチャ
12.4(20)T 以降の IOS では EPC(Embedded Packet Capture) を用いて最大 512 KB のパケットキャプチャを行うことができる.
以下に手順を示す.大文字部分は名前なので適当な名前をつける.
1.バッファの設定
バッファ長はデフォルトでは 256 KB なので最大の 512 KB にしている.また,キャプチャするパケットの最大サイズはデフォルトでは 68 B なので,これを 96 B にしている.
IPv6 ヘッダのキャプチャであれば 40 B,ICMPv6 のキャプチャであれば 96 B 程度あれば十分である.
c1812j# monitor capture buffer BUFFER_NAME size 512 max-size 96
2.キャプチャポイントの設定
この例では IPv6 のプロセスでスイッチされるパケットをキャプチャしている.もちろん IPv4 のキャプチャや,CEF でスイッチングされるパケットのキャプチャもできる.最後の both は in/out の両方を意味している.
c1812j# monitor capture point ipv6 process-switched CAPTURE_POINT_NAME both
3.バッファとキャプチャポイントの関連付け
作成したバッファとキャプチャポイントを関連付ける.
c1812j# monitor capture point associate CAPTURE_POINT_NAME BUFFER_NAME
4.キャプチャの開始
c1812j# monitor capture point start CAPTURE_POINT_NAME
5.キャプチャの停止
まずキャプチャの状態を確認する.Status が Active であれば,キャプチャは継続しており,Inactive であればバッファが埋まりキャプチャが終了している.
c1812j# show monitor capture buffer BUFFER_NAME parameters Capture buffer BUFFER_NAME (linear buffer) Buffer Size : 524288 bytes, Max Element Size : 96 bytes, Packets : 287 Allow-nth-pak : 0, Duration : 0 (seconds), Max packets : 0, pps : 0 Associated Capture Points: Name : CAPTURE_POINT_NAME, Status : Active Configuration: monitor capture buffer BUFFER_NAME size 512 max-size 96 monitor capture point associate CAPTURE_POINT_NAME BUFFER_NAME
キャプチャ中に手動でキャプチャを停止するには以下のコマンドを使う.
c1812j# monitor capture point stop CAPTURE_POINT_NAME
6.キャプチャしたパケットの観察
バッファにキャプチャされたパケットをダンプする.
c1812j# show monitor capture buffer BUFFER_NAME dump 11:08:44.040 JST Dec 7 2010 : IPv6 Process : Vl1 Tu0 860BD760: 60000000 `... 860BD770: 00103A3F 2001XXXX XXXXXXXX XXXXXXXX ..:? ....|...#l. 860BD780: XXXXXXXX 20010200 00001CD1 00000000 ~.W. ......Q.... 860BD790: 00000040 800086C8 66D00000 4CFD972B ...@...HfP..L}.+ 860BD7A0: 000E7F07 86 .....
7.キャプチャしたバッファの保存
バッファは FTP 経由で保存することができる.保存したバッファは wireshark などで読むことができる.
c1812j# monitor capture buffer BUFFER_NAME export ftp://...
8.後始末
閲覧,保存が終わったらバッファをクリアする.キャプチャポイントの関連付けを解除する.キャプチャポイントとバッファを削除する.
c1812j# monitor capture buffer BUFFER_NAME clear c1812j# monitor capture point disassociate CAPTURE_POINT_NAME c1812j# no monitor capture point ipv6 process-switched CAPTURE_POINT_NAME both c1812j# no monitor capture buffer BUFFER_NAME