Cisco IOS anahtarlarında trafiği nasıl yakalayabilirim?


23

İstemciden sunucuya iletişimde bir sorunu araştırmak için analiz için paketleri yakalamam gerekiyor. Bununla birlikte, istemciye veya sunucuya Wireshark veya tcpdump gibi bir paket çözümleyici yüklenemez. İstemciler bir Catalyst 3560'a ve sunucuya bir Catalyst 3750 anahtarına bağlanır.

Dizüstü bilgisayarımın paket analizörüyle trafiği yakalamak için dizüstü bilgisayarımı bir geçiş portuna bağlayabilir miyim ve nasıl?


Brocade için de aynı soruyu burada yaptım: networkengineering.stackexchange.com/questions/672/… Kendini çok garip hissediyor ... :)
Benjamin A.

@BenjaminA. Harika! Brocade'in çözümü ve bağlantıyı buraya eklediğiniz için teşekkür ederiz!
Stefan,

Oturumda bilgisayar / sunucunun yakalanmasının hala IP adresini DHCP'den korumasını sağlayacak bir yapılandırma var mı?
mickeyHR

Herhangi bir cevap size yardımcı oldu mu? eğer öyleyse, cevabı kabul etmelisin ki soru sonsuza kadar ortaya çıkmayacak, cevap arayacaksın. Alternatif olarak, kendi cevabınızı verebilir ve kabul edebilirsiniz.
Ron Maupin

Yanıtlar:


34

İstemci geçiş portu veya sunucu geçiş portu izlenebilir. Üçüncü bir switchport bir ayna portu olarak yapılandırılabilir . Bu, bu yansıtıcı bağlantı noktasının, ilgili orijinal bağlantı noktasındaki tüm paketlerin kopyalarını alacağı ve orijinal trafik etkilenmeyeceği anlamına gelir.

Örneğin, Catalyst 3560'ta:

  1. Yapılandırma moduna girin:

    conf t
    
  2. Kaynağı tanımlayın ve oturum numarasını ayarlayın:

    monitor session 1 source interface fa 0/24
    

    Burada, oturum numarası 1 ile 66 arasında olabilir, ayrıca bir VLAN veya bir ethernet kanalı da belirleyebilirsiniz. Ayrıca, fa 0/25 - 26mümkün olduğu gibi arabirim aralıkları fa 0/24,fa 0/26ve aynı anda birden fazla müşteriyi izlemek isterseniz, arabirim listesi . Ayrıca komutu tekrarlayarak bağlantı noktaları ekleyebilir veya kullanarak kaldırabilirsiniz no. Bağlantı noktalarını ve VLAN'ları karıştırmak aynı oturumda mümkün değildir, başka bir kısıtlama da bir hedef bağlantı noktasını kaynak bağlantı noktası olarak kullanamamanızdır.

  3. Hedef portu tanımlayın:

    monitor session 1 destination interface gi 0/1
    

    Normal bir bağlantı noktası kullanabilirsiniz ancak VLAN kullanamazsınız. Yukarıdakine benzer şekilde, bir hedef bağlantı noktası bir kaynak bağlantı noktası olamaz: burada kullanılan bir bağlantı noktası bir kaynak veya hedef bağlantı noktası olabilir ve yalnızca bir oturumda olabilir. Yine, yukarıdaki gibi birden fazla bağlantı noktası belirleyebilirsiniz.

  4. exitYapılandırma modunu ve yapılandırmayı kaydetmek isteyebilirsiniz .

  5. Tanımlanmış oturumunuza bir göz atabilirsiniz - burada yukarıda denenen birden çok bağlantı noktası:

    #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
    

    Burada bir kapsülleme görebilirsiniz - isteğe bağlı replicateolarak kaynak arabirim kapsülleme yöntemini kopyalamak için, örneğin encapsulation replicatekaynak arabirimden sonra ekleyerek ayarlayabilirsiniz . Ayrıca, bir yön (belirtebilir tx, rx, both), filtre VLAN ve daha fazlası. Ingress: DisabledÇizgi aracı anahtar bir hedef bağlantı noktası üzerinde yakalama cihazı tarafından kendisine sunulan herhangi çerçeveleri kabul etmeyeceğini söyledi. Bu kadar ince detaylar için ve daha fazla kısıtlama için ve varsayılan ayarlarda, anahtarınızın IOS versiyonunun komut referansına bakınız.

Kaynak ve hedef bağlantı noktasını yapılandırdıktan sonra, hedef bağlantı noktasına bağlı dizüstü bilgisayarınızı kullanarak, örneğin Wireshark ile trafiği yakalayabilirsiniz.

Kaynak oturumlarının sayısı sınırlandırılabilir, örneğin 3560 maksimum 2'yi destekler.

Yakalamadan sonra, bu oturum yapılandırmasını kaldırmayı unutmayın.


1
Monitör oturumunu yerinde bırakabilir ve yalnızca ana ekran monitörünüzün NIC'sindeki bağlantıyı devre dışı bırakabilirsiniz. Paketler yakalanmayacak ve indirilen bir bağlantıya gönderilemez. Bir Windows sunucusunda, biri SPAN adında çift NIC'im var. Düğmenin yakalama ek yükünü gerçekleştirmesini istemediğimde, sadece ağ özelliklerine girdim ve SPAN NIC'yi devre dışı bıraktım. (Genellikle, kaynak bağlantı noktaları değişir, ancak hedef bağlantı noktası aynı kalır, bu yüzden gelecekte aynı hedef ana bilgisayara tekrar yansıtacağımı biliyorum.)
generalnetworkerror

Bir monitör oturumu kullanımını devre dışı bırakmak için# no monitor session 1
15’de

17

Trafiğiniz Cisco IOS 12.4 (20) T veya daha üstünü çalıştıran bir yönlendiriciden geçiyorsa, başka bir olasılık da Gömülü Paket Yakalama özelliğini kullanmaktır.

Bu özellik, 3560 veya 3750 gibi anahtar platformlarında mevcut DEĞİLDİR.

Bu özellik, yönlendirici üzerindeki Wireshark ile indirip analiz edebileceğiniz küçük bir PCAP dosyasını yakalamak ve kaydetmek.

Bir kaç bağlantılar ile ayrıntılar .


7
... ve THIS tam da bu yüzden insanlar gönderdiklerinde ve sonra kendi sorularına cevap verdiklerinde sorun yok: Çünkü diğer kullanıcılardan girip yeni bir şeyler eklemeleri isteniyor. Tatlı.
Craig Constantine

Biz buna devam ederken, ASA, yakalama komutunu kullanarak her zaman bu özelliğe sahiptir . 6.2'den itibaren olan PIX'ten devralındı.
James Sneeringer

5

ELAM'ı karışıma eklemek istiyorum. ELAM, PFC3'te (6500, 7600) desteklenmektedir.

'Hizmet içi' özelliğini etkinleştirmeniz gerekir, ancak çalıştırması oldukça güvenli bir özelliktir, üretim ağlarında iyi bir anlaşma yaptım ve bir zamanlar olumsuz bir etki yaşamadım.

Temel olarak ELAM'ın yaptığı şey, size DBUS (Data BUS) üzerinden PFC'ye arama işlemi için nelerin gönderildiğini ve PFC'nin RBUS'ta (Sonuç BUS) arama sonucu olarak ne sağladığını gösterir.

  1. platform kapağını göster elam asic superman yuvası DFC / PFC_SLOT_YOU_WANT_TO_LOOK
  2. plat kapağını göster elam tetiği dbus ipv4 ise ip_sa = 192.0.2.1
  3. plat başlığını göster elam başlangıç
  4. plat cap elam verilerini göster

Tetikleyiciler için çevrimiçi yardım var, IP_SA == IP Kaynak Adresi, IP_DA == IP Hedef Adresi, diğerleri var. Kontrol etmek istedikleriniz mevcut değilse, ilk 64B'de rastgele veriler için veri + maske eşleştirmesi yapabilirsiniz.
Keyfi tetikleyici biraz garip ama can yeleği olabilir, bu şekilde kullanacaksınız:

platform yakalamayı göster elam tetikle dbus diğerleri ise veri = DATA1 DATA2 DATAn [MASK1 MASK2 MASKn]

Veri DMAC'dan başlar. Öyleyse, [0 1951] 'in gelen MPLS yığınını yakalamak istediğimizi söylüyoruz, ancak MAC adreslerini umursamıyoruz, bunu yapabiliriz:

platform yakalama elamını tetikle dbus komutunu göster diğerleri = 0 0 0 0x88470000 0x00000079 0xF0000000 [0 0 0 0xffffffff 0xf000ffff 0xf0000000]


Örnek çıktı olabilir:

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#

Hemen hemen tüm büyük platformlarda, HW yapılandırmasının ne yaptığını doğrulamanız gerektiğinde, bazen yazılım hataları olduğu ve beklenenden başka bir şey yaptığını doğrulamanız gerektiğinde, son derece kullanışlı olan transit paketler için bu tür düşük düzeyli yakalamalar bulunur.
GSR'de hafızada transit olduğunu görebildiğinizi, Juniper Trio'da bunun için oldukça hoş bir araç olduğunu biliyorum. Brocade yapabilir. Satıcı sayfalarında belgelenmemiş olmaları şaşırtıcıdır.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.