Cisco IOSスイッチでトラフィックをキャプチャするにはどうすればよいですか?


23

クライアントからサーバーへの通信の問題を調査するには、分析のためにパケットをキャプチャする必要があります。ただし、Wiresharkやtcpdumpなどのパケットアナライザーをクライアントまたはサーバーにインストールすることは許可されていません。クライアントはCatalyst 3560に接続され、サーバーはCatalyst 3750スイッチに接続されます。

ラップトップのパケットアナライザーでトラフィックをキャプチャするために、ラップトップをスイッチポートにプラグインできますか?


:私はここにブロケードのために同じ自己質問応答しなかったnetworkengineering.stackexchange.com/questions/672/...感じはちょっと奇妙な... :)
ベンジャミンA.

@BenjaminA。すばらしいです!Brocadeのソリューションとリンクをここに追加していただきありがとうございます!
ステファン

セッションにキャプチャPC /サーバーがDHCPからIPを取得できるようにする構成がありますか?
mickeyHR

何か答えがありましたか?もしそうなら、質問が永遠にポップアップし続けないように答えを受け入れ、答えを探してください。または、独自の回答を提供して受け入れることもできます。
ロンモーピン

回答:


34

クライアントスイッチポートまたはサーバースイッチポートを監視できます。3番目のスイッチポートは、ミラーポートとして構成できます。つまり、このミラーポートは対応する元のポートですべてのパケットのコピーを受信しますが、元のトラフィックは影響を受けません。

たとえば、Catalyst 3560の場合:

  1. 構成モードに入ります。

    conf t
    
  2. ソースを定義し、セッション番号を設定します。

    monitor session 1 source interface fa 0/24
    

    ここで、セッション番号は1から66までで、VLANまたはイーサネットチャネルを指定することもできます。また、複数のクライアントを同時に監視する場合はfa 0/25 - 26、などのインターフェイス範囲、およびなどのインターフェイスリストを使用できfa 0/24,fa 0/26ます。また、コマンドを繰り返すことにより、ポートを追加したり、を使用して削除したりできますno。同じセッションでポートとVLANを混在させることはできません。別の制限は、宛先ポートを送信元ポートとして使用できないことです。

  3. 宛先ポートを定義します。

    monitor session 1 destination interface gi 0/1
    

    通常のポートを使用できますが、VLANは使用できません。上記と同様に、宛先ポートを送信元ポートにすることはできません。ここで使用されるポートは、送信元ポートまたは宛先ポートのいずれかであり、1つのセッションのみです。繰り返しますが、上記のように複数のポートを指定できます。

  4. exit設定モードで設定を保存することもできます。

  5. 定義されたセッションを見ることができます-ここでは複数のポートを上記のように試しました:

    #show monitor session 1
    Session 1
    ---------
    Type                   : Local Session
    Source Ports           :
        Both               : Fa0/24,Fa0/25-26
    Destination Ports      : Fa0/48,Gi0/1
        Encapsulation      : Native
              Ingress      : Disabled
    

    ここでカプセル化を確認できます。オプションで、ソースインターフェイスの後にreplicate追加するなどして、ソースインターフェイスのカプセル化方法を複製するためにカプセル化を設定できencapsulation replicateます。さらに、あなたは方向(指定することができtxrxboth)、フィルタVLANなどを。このIngress: Disabled線は、スイッチが宛先ポート上のキャプチャデバイスから提示されたフレームを受け入れないことを意味します。このような詳細およびさらなる制限とデフォルト設定については、スイッチのIOSバージョンのコマンドリファレンスを参照してください。

送信元ポートと宛先ポートを設定したら、たとえばWiresharkを使用して、宛先ポートに接続されたラップトップを使用してトラフィックをキャプチャできます。

ソースセッションの数は制限できます。たとえば、3560は最大2つをサポートします。

キャプチャ後、このセッション構成を削除することを忘れないでください。


1
モニターセッションをそのままにして、ホストモニターのNICでリンクを無効にすることもできます。パケットはキャプチャされず、ダウンしているリンクに送信されません。Windowsサーバーでは、SPANと呼ばれるNICを備えたデュアルNICがあります。スイッチでキャプチャオーバーヘッドを実行したくない場合は、ネットワークプロパティに移動して、SPAN NICを無効にします。(通常、送信元ポートは変更されますが、宛先ポートは同じままなので、将来同じ宛先ホストに再度ミラーリングすることを知っています。)
generalnetworkerror

モニターセッションの使用を無効にするには# no monitor session 1
-wimh

17

トラフィックがCisco IOS 12.4(20)T以上を実行しているルータを通過している場合、別の可能性は、組み込みパケットキャプチャ機能を使用することです。

この機能は、3560や3750などのスイッチプラットフォームでは使用できません。

この機能が行うことは、Wiresharkでダウンロードして分析できる小さなPCAPファイルをキャプチャしてルーターに保存することです。

詳細付きのいくつかの リンク


7
...そして、これがまさに人々が自分の質問を投稿して答えるのにちょうど良い理由です:他のユーザーが飛び込んで何か新しいものを追加するよう促されるからです。甘い。
クレイグコンスタンティン

現在、ASAはcaptureコマンドを使用して、常にこの機能を備えています。これは、PIXから継承されたもので、6.2以降で使用されていました。
ジェームズ・スニーリンガー

5

ミックスにELAMを追加したいと思います。ELAMはPFC3(6500、7600)でサポートされています。

「サービス内部」を有効にする必要がありますが、実行するには非常に安全な機能です。実稼働ネットワークで十分に実行しましたが、一度もマイナスの影響はありませんでした。

本質的にELAMが行うことは、DBUS(データバス)を介してPFCにルックアップ処理のために送信されたものと、RBUS(結果BUS)でルックアップ結果としてPFCが提供したものを示します。

  1. plat cap elam asicスーパーマンスロットDFC / PFC_SLOT_YOU_WANT_TO_LOOKを表示
  2. ip_sa = 192.0.2.1の場合、plat cap elam trigger dbus ipv4を表示します
  3. plat cap elam startを表示
  4. Plat Cap Elamデータを表示

トリガーについては、オンラインヘルプがあります。IP_SA== IP送信元アドレス、IP_DA == IP宛先アドレス、他の多くが利用可能です。チェックしたいものが利用できない場合は、最初の64Bで任意のデータのデータ+マスク一致を実行できます。
任意のトリガーは少し厄介ですが、より安全な場合があります。次のように使用します。

データがDATA1 DATA2 DATAn [MASK1 MASK2 MASKn]の場合、プラットフォームキャプチャエラムトリガーdbusその他を表示

データはDMACから始まります。したがって、[0 1951]の着信MPLSスタックをキャッチしたいとしますが、MACアドレスは気にしません。これを行うことができます。

data = 0 0 0 0x88470000 0x00000079 0xF0000000 [0 0 0 0xffffffff 0xf000ffff 0xf0000000]の場合、プラットフォームキャプチャエラムトリガーdbusを表示します


出力例は次のとおりです。

7600#show platform capture elam data
DBUS data:
SEQ_NUM                          [5] = 0x1D
QOS                              [3] = 1
QOS_TYPE                         [1] = 0
TYPE                             [4] = 0 [ETHERNET]
STATUS_BPDU                      [1] = 0
IPO                              [1] = 1
NO_ESTBLS                        [1] = 0
RBH                              [3] = b000   ! port-channel hash
CR                               [1] = 1      ! recirculated
TRUSTED                          [1] = 1
NOTIFY_IL                        [1] = 0
NOTIFY_NL                        [1] = 0
DISABLE_NL                       [1] = 0
DISABLE_IL                       [1] = 0
DONT_FWD                         [1] = 0
INDEX_DIRECT                     [1] = 0
DONT_LEARN                       [1] = 0
COND_LEARN                       [1] = 0
BUNDLE_BYPASS                    [1] = 0
QOS_TIC                          [1] = 1
INBAND                           [1] = 0
IGNORE_QOSO                      [1] = 0
IGNORE_QOSI                      [1] = 0
IGNORE_ACLO                      [1] = 0
IGNORE_ACLI                      [1] = 0
PORT_QOS                         [1] = 0
CACHE_CNTRL                      [2] = 0 [NORMAL]
VLAN                             [12] = 4086
SRC_FLOOD                        [1] = 0
SRC_INDEX                        [19] = 0xC0          ! divmod64(0xc0) = 3,0, add 1 to each, 4/1 == our physical port
LEN                              [16] = 102
FORMAT                           [2] = 0 [IP]
MPLS_EXP                         [3] = 0x0
REC                              [1] = 0
NO_STATS                         [1] = 0
VPN_INDEX                        [10] = 0x7F
PACKET_TYPE                      [3] = 0 [ETHERNET]
L3_PROTOCOL                      [4] = 0 [IPV4]
L3_PT                            [8] = 1 [ICMP]
MPLS_TTL                         [8] = 0
SRC_XTAG                         [4] = 0xF
DEST_XTAG                        [4] = 0xA
FF                               [1] = 0
MN                               [1] = 0
RF                               [1] = 1
SC                               [1] = 0
CARD_TYPE                        [4] = 0x0
DMAC                             = 8843.e1de.22c0
SMAC                             = 0000.0000.0000
IPVER                            [1] = 0 [IPV4]
IP_DF                            [1] = 1
IP_MF                            [1] = 0
IP_HDR_LEN                       [4] = 5
IP_TOS                           [8] = 0x0
IP_LEN                           [16] = 84
IP_HDR_VALID                     [1] = 1
IP_CHKSUM_VALID                  [1] = 1
IP_L4HDR_VALID                   [1] = 1
IP_OFFSET                        [13] = 0
IP_TTL                           [8] = 63
IP_CHKSUM                        [16] = 0xBCF1
IP_SA                            = x.x.x       ! to protect the guilty
IP_DA                            = y.y.y.y     ! to protect the guilty
ICMP_TYPE                        [8] = 0x8
ICMP_CODE                        [8] = 0x0
ICMP_DATA [104]
0000:  A0 8B 18 A5 00 39 46 35 BF 51 00 6F 3C            ".....9F5.Q.o<"
CRC                              [16] = 0x71B3

RBUS data:
SEQ_NUM                          [5] = 0x1D
CCC                              [3] = b100 [L3_RW]  ! normal L3_RW, we know it was not dropped, L2/mls policed etc
CAP1                             [1] = 0
CAP2                             [1] = 0
QOS                              [3] = 0
EGRESS                           [1] = 0
DT                               [1] = 0 [IP]
TL                               [1] = 0 [B32]
FLOOD                            [1] = 1
DEST_INDEX                       [19] = 0x3E8    ! same as VLAN, but not always    
VLAN                             [12] = 1000     ! you may need to check internal vlan     
RBH                              [3] = b111      ! again, port-channel hash
RDT                              [1] = 0
GENERIC                          [1] = 0
EXTRA_CICLE                      [1] = 0
FABRIC_PRIO                      [1] = 0
L2                               [1] = 0
FCS1                             [8] = 0x1
IP_TOS_VALID                     [1] = 1
IP_TOS_OFS                       [7] = 15
IP_TOS                           [8] = 0x0
IP_TTL_VALID                     [1] = 1
IP_TTL_OFS                       [7] = 22
IP_TTL                           [8] = 62
IP_CSUM_VALID                    [1] = 1
IP_CSUM_OFS                      [7] = 24
IP_CSUM                          [16] = 0xBDF1
DELTA_LEN                        [8] = 0
REWRITE_INFO
 i0  - replace bytes from ofs 0 to ofs 11 with seq 'D0 D0 FD 09 34 2D 88 43 E1 DE 22 C0'.   ! this is the actual L2 rewrite data, so you should obviously see DMAC and SMAC here 
FCS2                             [8] = 0x0
7600#

ほとんどすべての大規模プラットフォームには、このタイプの中継パケットの低レベルキャプチャがあります。これは、HWが設定どおりに動作していることを確認する必要がある場合に非常に便利です。
GSRではメモリ内の通過を確認できることを知っています。JuniperTrioでも非常に便利なツールがあります。ブロケードでできます。ベンダーのページに文書化されていないのは非常に困惑しています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.