IOS Embedded Packet Capture(EPC)
機能検証結果報告
高原 也寿明
ネットワークインフラ技術推進部
Embedded Packet Capture (EPC) とは?
シスコ社サービス統合型ルータ(ISR)で、ルーターが取り扱う IPv4/IPv6 パケットを
ルーター自身で直接キャプチャーできる機能
IOS 12.4(20)T から実装
操作に必要なコマンドは全て実行(Exec)コマンド
設定そのものを変更する必要は無く、事前設定も不要
(オペレーションミスによるサービス影響が少ない)
メディアを問わず、すべての IP インターフェイスでキャプチャーが可能
(Tunnel, 802.1Q Sub interface 等、仮想インターフェイスでもキャプチャー可能)
キャプチャー結果は PCAP ファイルとして出力可能
(汎用解析ソフトを使用した解析が可能)
従来のパケットキャプチャー
Capture Point
Capture Device Copy for Capture Additional Device for Capture
接続ミスや設定ミスによる サービス影響の可能性 ① 現地にて ② 必要に応じて物理構成変更 ③ キャプチャーポイントの SPAN 設定 ④ キャプチャー用デバイスの接続 ⑤ キャプチャー実行 ⑥ 解析
EPC を使用したキャプチャー
物理構成変更不要
設定変更不要(操作は全て実行コマンド)
ISDN 等、イーサーネット以外のメディアもキャプチャー可能
場合によっては全ての作業をリモートから行うことも可能
公開ドキュメントでは明確にならない事項
Configuration Guide と Command Reference
http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/epc/configuration/15-mt/epc-15-mt-book/nm-packet-capture.html http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/epc/command/epc-cr-book.html ・メモリーや CPU に対する負荷影響は? ・とりこぼしの発生や、送受信順番が狂う可能性は? ・マルチキャストやブロードキャストの扱いは? ・ルーター自身宛パケット、ルーター自身が発信元になるパケットの扱いは? (管理トラフィックやルーティングプロトコルで使用するパケット) ・QoS 設定との関係は? QoS 動作はキャプチャー前、後? ・ACL 設定との関係は? ACL 動作はキャプチャー前、後? ・GRE トンネル設定との関係は? キャプチャーできるのは、Capsulation 前、後? ・NAT 処理との関係は? キャプチャーできるのは、NAT 処理前、後? 懸念事項
EPC によるキャプチャー操作の流れ
Router#monitor capture buffer Buffer1 max-size 2000
Router#monitor capture point ip cef Point1 gigabitEthernet 0/0 in Router#monitor capture point associate Point1 Buffer1
Router#monitor capture point start Point1 Router#monitor capture point stop Point1
Router#show monitor capture buff Buffer1 dump
02:42:40.076 UTC Dec 6 2014 : IPv4 LES CEF : Gi0/0 None
272B38A0: C84C7532 HLu2
272B38B0: D100C84C 751890E0 080045C0 002CD09B Q.HLu..`..E@.,P. 272B38C0: 0000FE06 32450A14 0101AC15 0201D0DC ..~.2E....,...P¥ 272B38D0: 00178F92 CFA00000 00006002 1020A250 ....O ....`.. "P 272B38E0: 00000204 02180000 00 ...
--- 以下略 ---
Router#monitor capture buff Buffer1 export flash0:/dump1.pcap
Router#no monitor capture point ip cef Point1 gigabitEthernet 0/0 in Router#no monitor capture buff Buffer1
Router# バッファー(記録方法)作成 ポイント(取得方法)作成 ポイントとバッファーの関連付け キャプチャー開始 キャプチャー停止 バッファー内容確認 PCAP ファイルに出力 ポイント削除 バッファー削除
キャプチャー対象パケットとインターフェイス
物理/論理 IP インターフェイス (論理インターフェイスには、802.1Q サブインターフェイス、Tunnel インターフェイス、Dialer インターフェイスを含む。ただし、Loopback インターフェイスは対象外) 個別指定の他、”all” による一括指定も可能 EPC 専用インターフェイスDrop: 受信後、CEF 機能によって破棄されるパケットのキャプチャー用(ACL, no route, etc…) Punt: 受信後、プロセス処理にまわされたパケットのキャプチャー用
キャプチャー可能なパケット
ルーターが受信、又は送出した IPv4 及び IPv6 パケット(Unicast/Multicast/Broadcast) 転送パケット、ルーター自身宛パケット、ルーター生成パケット、全てキャプチャー可能 (取得方法の指定は異なる) IP パケットでないものはキャプチャー不可 (例: CDP, ARP, PPPoE)
キャプチャーできるインターフェイス
EPC取得タイプとキャプチャー対象パケット
プロセス・スイッチで送出されるパケットが対象CEF In
指定したインターフェイスで CEF が処理する受信パケットが対象 Ingress ACL/QoS 等、他の受信動作前にキャプチャーされる ルーター自身宛管理パケット(telnet, ssh, ping, snmp, ntp)もキャプチャー可能CEF Out
指定したインターフェイスに CEF で転送された送出パケットが対象 Engress ACL/QoS 等、他の送出前操作終了後、Queue に入る前にキャプチャーされる ルーター自身が発信元になるパケットはキャプチャー不可
Process Switched In
プロセス・スイッチで処理される受信パケットが対象 ルーター自身宛パケットが主となる(ルーティング・プロトコル等) インターフェイス指定は不可 CoPP 処理後にキャプチャーされるEPC バッファー
ポイントで指定した取得方法に基づいて取得したキャプチャー 内容を、指定された条件に基づいてダイナミックメモリー内に 記録し、後の参照を可能にする サイズ:256 ~ 102400 (Kbytes) ディフォルト 1024 各パケットの頭から何バイトを記録するかを指定可能 ディフォルト 68 Bytes 他にも記録条件(絞り込み条件)指定可能 各パケットに 64 Bytes の付帯情報が付加される バッファは 1 パケットにつき 8 Bytes 単位で消費 4msec 毎の記録(タイムスタンプも 4msc 毎) 複数のポイントからのデータを 1 つのバッファに収容する ことも、各ポイント毎に別のバッファを用意することも可能 Point(取得方法の定義) インターフェイス、取得タイプ指定 一時的な 生キャプチャーデータ Buffer(記録方法の定義) ACL フィルター、収容パケット個数 間引き方法(レート)等キャプチャーしたパケットを記録保管するメモリー領域
記録結果EPC バッファー内容表示例
07:14:48.571 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.571 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.571 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.575 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.575 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.575 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.575 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.575 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.575 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.575 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.579 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.579 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None 07:14:48.579 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None
1024 Kbytes バッファに収容できるパケット数 IP 46-Byte (Ether 60-Byte) 8,192 個
IP 100-Byte (Ether 114-Byte) 5,698 個
IP 200-Byte (Ether 214-Byte) 3,744 個
IP 500-Byte (Ether 514-Byte) 1,795 個
IP 1,000-Byte (Ether 1014-Byte) 970 個
03:55:47.153 UTC Jul 3 2014 : IPv4 LES CEF : Gi0/1 None
30DDD8D0: 5475D0F7 8A115475 D0F76031 TuPw..TuPw`1 30DDD8E0: 08004500 00640044 0000FE01 3925AC14 ..E..d.D..~.9%,. 30DDD8F0: 0C01AC1E 1EFC0800 55F30014 00000000 ..,..|..Us... 30DDD900: 00000EDB 1968ABCD ABCDABCD ABCDABCD ...[.h+M+M+M+M+M 30DDD910: ABCDABCD ABCDABCD ABCDABCD ABCDABCD +M+M+M+M+M+M+M+M 30DDD920: ABCDABCD ABCDABCD ABCDABCD ABCDABCD +M+M+M+M+M+M+M+M 30DDD930: ABCDABCD ABCDABCD ABCDABCD ABCDABCD +M+M+M+M+M+M+M+M 30DDD940: ABCDABCD ABCD00 +M+M+M. サマリー表示 ダンプ表示 バッファ内容を PCAP ファイルとして Export 可能だが、PCAP ファイルに するとレイヤ 2 の情報が削除される。 レイヤ 2 情報が必要な場合、 CLI のダンプ表示を利用する。
Cisco 2911 EPC パフォーマンス
EPC は CEF と連動した割り込み処理 概ね CPU 使用率 90% で限界に達する EPC を設定しただけでも、CPU 使用率は 増加する パフォーマンス上限パケット長 EPC 無し EPC 非アクティブ EPC アクティブ
64-Bytes 172 Mbps 148 Mbps 99 Mbps
128-Bytes 345 Mbps 291 Mbps 189 Mbps
256-Bytes 690 Mbps 584 Mbps 384 Mbps
512-Bytes over 1Gbps over 1Gbps 575 Mbps
768-Bytes over 1Gbps over 1Gbps 728 Mbps
1024-Bytes over 1Gbps over 1Gbps 816 Mbps
1518-Bytes over 1Gbps over 1Gbps over 1Gbps
0 10 20 30 40 50 60 70 80 90 100 0 100 200 300 400 500 600 700 CP U LO A D MBPS 256-Bytes
No EPC No Active Active
0 10 20 30 40 50 60 70 80 90 100 0 50 100 150 200 250 300 350 CP U load Mbps 128-Bytes
G0/0 Out にて キャプチャーパケット GRE ヘッダー有り L2:Ethernet
論理 Interface と キャプチャー動作(Tunnel)
G0/1 G0/0 G0/1 In にて キャプチャーパケット オリジナル L2:Ethernet Tunnel1 Out にて キャプチャーパケット GRE ヘッダー有り L2:情報なし G0/0 In にて キャプチャーパケット GRE ヘッダー有り L2:Ethernet G0/1 G0/0 Tunnel1 G0/1 Out にて キャプチャーパケット オリジナル L2:Ethernet Tunnel1 In にて キャプチャーパケット GRE ヘッダー無し Tunnel1G0/0 Out にて キャプチャー不可