Bagaimana saya bisa menangkap traffic pada switch Cisco IOS?

23

Untuk menyelidiki masalah dalam komunikasi klien ke server, saya perlu menangkap paket untuk dianalisis. Namun itu tidak diizinkan untuk menginstal penganalisis paket, seperti Wireshark atau tcpdump, pada klien atau server. Mereka klien terhubung ke Catalyst 3560 dan server ke switch Catalyst 3750.

Bisakah saya plugin laptop saya ke switchport untuk menangkap lalu lintas dengan penganalisa paket laptop saya, dan bagaimana?

Stefan
sumber
Saya melakukan pertanyaan yang sama menjawab sendiri untuk Brocade di sini: networkengineering.stackexchange.com/questions/672/… Terasa agak aneh ... :)
Benjamin A.
@BenjaminA. Besar! Terima kasih atas solusi untuk Brocade dan menambahkan tautan di sini!
Stefan
Apakah ada konfigurasi pada sesi yang akan memungkinkan pc / server yang menangkap masih memilih IP dari DHCP?
mickeyHR
Apakah ada jawaban yang membantu Anda? jika demikian, Anda harus menerima jawabannya sehingga pertanyaan tidak terus muncul selamanya, mencari jawaban. Atau, Anda bisa memberikan dan menerima jawaban Anda sendiri.
Ron Maupin

Jawaban:

34

Switchport klien atau switchport server dapat dimonitor. Switchport ketiga dapat dikonfigurasi sebagai port mirror . Ini berarti bahwa port mirror ini akan menerima salinan semua paket pada port asli yang sesuai, sementara lalu lintas asli tidak akan terpengaruh.

Misalnya, pada Catalyst 3560:

  1. Masuk ke mode konfigurasi:

    conf t
    
  2. Tentukan sumbernya dan atur nomor sesi:

    monitor session 1 source interface fa 0/24
    

    Di sini, nomor sesi bisa dari 1 hingga 66, Anda juga bisa menentukan saluran VLAN atau ethernet. Juga, rentang antarmuka seperti fa 0/25 - 26dimungkinkan, dan daftar antarmuka, seperti fa 0/24,fa 0/26, jika Anda ingin memantau beberapa klien secara bersamaan. Juga dengan mengulangi perintah Anda dapat menambahkan port, atau menghapus menggunakan no. Mencampur port dan VLAN tidak dimungkinkan dalam sesi yang sama, batasan lain adalah Anda tidak dapat menggunakan port tujuan sebagai port sumber.

  3. Tentukan port tujuan:

    monitor session 1 destination interface gi 0/1
    

    Anda dapat menggunakan port normal, tetapi bukan VLAN. Demikian pula dengan di atas, port tujuan tidak bisa menjadi port sumber: port yang digunakan di sini dapat menjadi port sumber atau tujuan, dan hanya satu sesi. Sekali lagi, Anda dapat menentukan beberapa port seperti di atas.

  4. Anda mungkin ingin exitmode konfigurasi dan menyimpan konfigurasi.

  5. Anda mungkin melihat sesi yang Anda tentukan - di sini beberapa port, dicoba seperti di atas:

    #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
    

    Anda dapat melihat enkapsulasi di sini - secara opsional Anda dapat mengaturnya replicateuntuk mereplikasi metode enkapsulasi antarmuka sumber, seperti dengan menambahkan encapsulation replicatesetelah antarmuka sumber. Selanjutnya, Anda dapat menentukan arah ( tx, rx, both), VLAN filter dan banyak lagi. The Ingress: Disabledgaris berarti bahwa saklar tidak akan menerima frame disajikan untuk itu oleh perangkat menangkap Anda pada port tujuan. Untuk perincian yang lebih baik dan untuk pembatasan lebih lanjut dan pengaturan default, lihat referensi perintah versi iOS switch Anda.

Setelah Anda mengkonfigurasi port sumber dan tujuan, Anda dapat menangkap lalu lintas menggunakan laptop Anda yang terhubung ke port tujuan, misalnya dengan Wireshark.

Jumlah sesi sumber dapat dibatasi, misalnya 3560 mendukung maksimal 2.

Setelah pengambilan, jangan lupa untuk menghapus konfigurasi sesi ini.

Stefan
sumber
1
Anda bisa membiarkan sesi monitor tetap berjalan dan menonaktifkan tautan di NIC monitor host Anda. Paket tidak akan ditangkap dan mengirimkan tautan yang rusak. Pada server Windows, saya memiliki NIC ganda dengan satu yang disebut SPAN. Ketika saya tidak ingin saklar untuk melakukan overhead menangkap, saya hanya pergi ke properti jaringan dan menonaktifkan SPAN NIC. (Biasanya port sumber diubah, tetapi port tujuan tetap sama, jadi saya tahu saya akan mirror lagi ke host tujuan yang sama di masa depan.)
generalnetworkerror
Untuk menonaktifkan sesi monitor gunakan# no monitor session 1
wimh
17

Jika lalu lintas Anda kebetulan melewati router yang menjalankan Cisco IOS 12.4 (20) T atau lebih besar, kemungkinan lain adalah menggunakan fitur Capture Paket Tertanam.

Fitur ini TIDAK tersedia pada platform sakelar seperti 3560 atau 3750.

Apa yang dilakukan fitur ini adalah menangkap dan menyimpan file PCAP kecil di router yang dapat Anda unduh dan analisis dengan Wireshark.

Sebuah beberapa link dengan rincian .

Mike Marotta
sumber
7
... dan INI persis mengapa baik-baik saja ketika orang memposting, dan kemudian menjawab, pertanyaan mereka sendiri: Karena pengguna lain diminta untuk masuk dan menambahkan sesuatu yang baru. Manis.
Craig Constantine
Sementara kami melakukannya, ASA selalu memiliki fitur ini, menggunakan perintah tangkap . Itu diwarisi dari PIX, yang memilikinya dari 6,2 dan seterusnya.
James Sneeringer
5

Saya ingin menambahkan ELAM dalam campuran. ELAM didukung pada PFC3 (6500, 7600).

Anda harus mengaktifkan 'internal layanan', tetapi fitur ini cukup aman untuk dijalankan, saya sudah menjalankannya dengan baik di jaringan produksi dan belum pernah mengalami dampak negatif.

Pada dasarnya apa yang ELAM lakukan adalah menunjukkan kepada Anda apa yang dikirim untuk pemrosesan pencarian ke PFC melalui DBUS (Data BUS) dan apa yang PFC berikan sebagai hasil pencarian dalam RBUS (BUS Hasil).

  1. tunjukkan plat cap elam asic slot superman DFC / PFC_SLOT_YOU_WANT_TO_LOOK
  2. tampilkan plat cap elam trigger dbus ipv4 jika ip_sa = 192.0.2.1
  3. tunjukkan plat cap elam start
  4. tunjukkan data plat cap elam

Untuk pemicu ada bantuan online, IP_SA == Alamat Sumber IP, IP_DA == Alamat Tujuan IP, banyak yang lain tersedia. JIKA apa yang ingin Anda periksa tidak tersedia, Anda dapat melakukan data + mask cocok untuk data sewenang-wenang pada 64B pertama.
Pemicu sewenang-wenang agak canggung tetapi bisa menjadi penyelamat, Anda akan menggunakannya seperti ini:

tampilkan platform capture elam trigger dbus others jika data = DATA1 DATA2 DATAn [MASK1 MASK2 MASKn]

Data dimulai dari DMAC. Jadi misalkan kita ingin menangkap tumpukan MPLS [0 1951] yang masuk, tetapi kita tidak peduli dengan alamat MAC, kita bisa melakukan ini:

perlihatkan platform capture elam trigger dbus others jika data = 0 0 0 0x88470000 0x00000079 0xF0000000 [0 0 0 0xffffffff 0xf000ffff 0xf0000000]


Output contoh mungkin:

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#

Hampir semua platform yang lebih besar memiliki jenis tangkapan tingkat rendah untuk paket transit, yang sangat berguna ketika Anda perlu memverifikasi HW melakukan apa yang dikatakan konfigurasi, kadang-kadang ada cacat perangkat lunak dan melakukan hal lain dari yang diharapkan.
Saya tahu bahwa di GSR Anda dapat melihat transit di memori, di Juniper Trio ada alat yang cukup bagus untuk itu. Brocade dapat melakukannya. Cukup membingungkan mereka tidak didokumentasikan di halaman vendor.

ytti
sumber