EPC (Embedded Packet Capture)

 

EPCの概要

 IOS 12.4(20)T から、EPC (Embedded Packet Capture)という機能が
 実装されました。
 EPCとは、Ciscoルータ上でパケットをキャプチャする機能です。
 障害解析などで、どうしてもパケットレベルまで調査しなければ分からない
 なんて時に便利ですので、今回はEPCを使い方を説明していこうかと。

 EPCの主な機能は以下の通りです。

  • ACLを使ってキャプチャするパケットをフィルタリングすることが可能
  • PACPデータでエクスポート可能なため、Wiresharkで表示することも可能

 EPCを使用手順は以下の通りです。

  • キャプチャ・バッファの定義
  • キャプチャ・ポイントの定義
  • キャプチャ・バッファとキャプチャ・ポイントの関連付け
  • キャプチャ開始
  • キャプチャ停止
  • パケットデータの転送
  • キャプチャ・バッファとキャプチャ・ポイントのクリア

 それでは順を追って説明していきましょう。

 

EPC使用手順

キャプチャ・バッファの作成

 まずキャプチャしたデータを保存するバッファを作成します。

router#monitor capture buffer size max-size

  • 「buffer-name」には、保存するバッファ名を指定します。
  • 「buffer-size」は、バッファのサイズを指定します。
  • 「element-size」は、パケット毎の最大サイズを指定します。

 【設定例】
 router#monitor capture buffer cef_buffer size 512 max-size 1024

 

キャプチャ・ポイントの作成

 キャプチャする対象パケットを定義します。

router#monitor capture point {ip | ipv6}{cef capture-point-name interface-name interface-type {both | in | out} | process-switched capture-point-name {both | from-us | in | out}}

 コマンドオプションが多いことからも分かるかと思いますが、
 キャプチャのポイントは細かく指定することが可能です。

  • IPv4、IPv6
  • CEF、プロセススイッチ
  • 1つあるいは複数のインタフェース
  • 受信のみ、送信のみ、両方

 などなど

 例として、キャプチャ・ポイント名を「cef_point」として、
 fastEthernet 0/0の送信/受信パケットをキャプチャする設定は
 以下の通り。

 【設定例】
 router#monitor capture point ip cef cef_point fastEthernet 0/0 both

 

キャプチャ・バッファとキャプチャ・ポイントの関連付け

 作成したキャプチャ・バッファとキャプチャ・ポイントを
 関連付けする設定を行います。

router#monitor capture point associate

 【設定例】
 router#monitor capture point associate cef_point cef_buffer

 キャプチャ・バッファを確認するには、
 「show monitor capture buffer all parameters」を使用します。

【コマンド実行例】

router#show monitor capture buffer all parameters
Capture buffer cef_buffer (linear buffer)
Buffer Size : 524288 bytes, Max Element Size : 1024 bytes, Packets : 0
Allow-nth-pak : 0, Duration : 0 (seconds), Max packets : 0, pps : 0
Associated Capture Points:
Name : cef_point, Status : Inactive
Configuration:
monitor capture buffer cef_buffer size 512 max-size 1024
monitor capture point associate cef_point cef_buffer

 

キャプチャの開始

 キャプチャを開始するには以下のコマンドを実行します。

router#monitor capture point start all

パケットをキャプチャしているかどうかを確認するには、
show monitor capture buffer all parameters 」を使用します。

【コマンド実行例】

router#show monitor capture buffer all parameters
Capture buffer cef_buffer (linear buffer)
Buffer Size : 524288 bytes, Max Element Size : 1024 bytes, Packets : 18
Allow-nth-pak : 0, Duration : 0 (seconds), Max packets : 0, pps : 0
Associated Capture Points:
Name : cef_point, Status : Active
Configuration:
monitor capture buffer cef_buffer size 512 max-size 1024
monitor capture point associate cef_point cef_buffer

パケットをキャプチャすると、「Packets」カウンタが上昇します。

 

キャプチャの停止

 キャプチャを停止するには以下のコマンドを実行します。

router#monitor capture point stop all

 ルータ上でキャプチャしたパケットを確認するには
 「show monitor capture buffer <バッファ名> dump」を使用します。

【コマンド実行例】

router#show monitor capture buffer cef_buffer dump
15:51:07.955 UTC Mar 30 2010 : IPv4 CEF Turbo: Fa0/0 None

658B2830:CA0011B8 0008CA01 11B80008J..8..J..8..
658B2840: 08004500 00640001 0000FE01 A6930A01..E..d....~.&...
658B2850: 01020A01 01010000 AA630000 00010000........*c......
658B2860: 00000001 DBE4ABCD ABCDABCD ABCDABCD....[d+M+M+M+M+M
658B2870: ABCDABCD ABCDABCD ABCDABCD ABCDABCD+M+M+M+M+M+M+M+M
658B2880: ABCDABCD ABCDABCD ABCDABCD ABCDABCD+M+M+M+M+M+M+M+M
658B2890: ABCDABCD ABCDABCD ABCDABCD ABCDABCD+M+M+M+M+M+M+M+M
658B28A0: ABCDABCD ABCD00+M+M+M.

15:51:07.955 UTC Mar 30 2010 : IPv4 LES CEF: Fa0/0 None

658B2830:CA0011B8 0008CA01 11B80008J..8..J..8..
658B2840: 08004500 00640001 0000FE01 A6930A01..E..d....~.&...
658B2850: 01020A01 01010000 AA630000 00010000........*c......
658B2860: 00000001 DBE4ABCD ABCDABCD ABCDABCD....[d+M+M+M+M+M
658B2870: ABCDABCD ABCDABCD ABCDABCD ABCDABCD+M+M+M+M+M+M+M+M
658B2880: ABCDABCD ABCDABCD ABCDABCD ABCDABCD+M+M+M+M+M+M+M+M
658B2890: ABCDABCD ABCDABCD ABCDABCD ABCDABCD+M+M+M+M+M+M+M+M
658B28A0: ABCDABCD ABCD00+M+M+M.

 上記結果のようにDump形式ファイルは人が見ても理解不能ですので、
 通常は次のようにPCへデータをエクスポートして、
 Wireshark等のキャプチャソフトで表示させます。

 

PCへデータをエクスポート

 データを出力するには以下のコマンドを使用します。

router#monitor capture buffer export

 データはFTPやTFTPでのエクスポートが可能です。
 例としてTFTPを利用してデータをエクスポートする場合のコマンド例を
 以下に記載しておきます。

 【設定例】
 router#monitor capture buffer test export tftp://192.168.1.1/test.cap

 

キャプチャ・バッファとキャプチャ・ポイントのクリア

 キャプチャ終了後は、キャプチャ・バッファとキャプチャ・ポイントの
 クリアを実施します。

router#no monitor capture buffer
router#no monitor capture point ip process-switched

 以上がEPCの基本的な使い方になります。
 コマンドはすべて「execモード」で実施しますのでお間違えの無いように。

 

最後に

 注意点として、EPCはルータに大きな負荷を与えますので、
 くれぐれも実運用のルータで安易に実行するのは避けましょう。

 もし実運用ルータで実施する場合は、フィルタを駆使して
 キャプチャするパケットを絞り込むことでルータへの負荷を
 抑えることが出来ますので活用しましょう。

 EPCに関する詳細は以下のCiscoサイトをご参照ください。
 ・Cisco IOS Embedded Packet Capture
 ・Cisco IOS Network Management Configuration Guide, Release 12.4T

関連記事

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: