Cisco IOS 스위치에서 트래픽을 캡처하려면 어떻게해야합니까?


23

클라이언트와 서버 간 통신 문제를 조사하려면 분석을 위해 패킷을 캡처해야합니다. 그러나 클라이언트 또는 서버에 Wireshark 또는 tcpdump와 같은 패킷 분석기를 설치할 수 없습니다. 클라이언트는 Catalyst 3560에 연결되고 서버는 Catalyst 3750 스위치에 연결됩니다.

랩톱의 패킷 분석기로 트래픽을 캡처하기 위해 랩톱을 스위치 포트에 플러그인 할 수 있습니까?


나는 Brocade에 대해 동일한 자체 답변 질문을 여기에서했다 : networkengineering.stackexchange.com/questions/672/… 좀 이상하게 느낀다 ... :)
Benjamin A.

@BenjaminA. 큰! Brocade 솔루션에 감사하고 여기에 링크를 추가하십시오!
Stefan

캡처 PC / 서버가 여전히 DHCP에서 IP를 반대하도록 허용하는 구성이 세션에 있습니까?
mickeyHR

어떤 대답이 도움이 되었습니까? 그렇다면 질문에 대한 답변이 계속 나오지 않도록 답변을 수락해야합니다. 또는 자신의 답변을 제공하고 수락 할 수 있습니다.
Ron Maupin

답변:


34

클라이언트 스위치 포트 또는 서버 스위치 포트를 모니터링 할 수 있습니다. 세 번째 스위치 포트미러 포트 로 구성 할 수 있습니다 . 즉,이 미러 포트는 해당 원래 포트에서 모든 패킷의 사본을 수신하지만 원래 트래픽에는 영향을 미치지 않습니다.

예를 들어 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은 사용할 수 없습니다. 위와 마찬가지로 대상 포트는 소스 포트가 될 수 없습니다. 여기에 사용 된 포트는 소스 또는 대상 포트 일 수 있으며 하나의 세션 만 가능합니다. 다시, 위와 같이 여러 포트를 지정할 수 있습니다.

  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뒤에 추가하는 등 소스 인터페이스 캡슐화 방법을 복제 하기 위해 캡슐화를 설정할 수 있습니다. 또한, 당신은 방향 (지정할 수 있습니다 tx, rx, both), 필터 VLAN을 더. Ingress: Disabled라인 수단은 스위치는 목적지 포트에 캡처 장치에 의해 여기에 소개 된 어떠한 프레임을 허용하지 않습니다. 이러한 세부 사항과 추가 제한 사항 및 기본 설정에 대해서는 스위치의 IOS 버전에 대한 명령 참조를 살펴보십시오.

소스 및 대상 포트를 구성한 후에는 대상 포트에 연결된 랩톱 (예 : Wireshark)을 사용하여 트래픽을 캡처 할 수 있습니다.

소스 세션 수는 제한 될 수 있습니다. 예를 들어 3560은 최대 2를 지원합니다.

캡처 후이 세션 구성을 제거하는 것을 잊지 마십시오.


1
모니터 세션을 그대로두고 호스트 모니터의 NIC에서 링크를 비활성화 할 수 있습니다. 패킷은 캡처되지 않고 다운 된 링크로 전송되지 않습니다. Windows 서버에는 SPAN이라는 이중 NIC가 있습니다. 스위치가 캡처 오버 헤드를 수행하지 않게하려면 네트워크 속성으로 이동하여 SPAN NIC를 비활성화하면됩니다. (보통 소스 포트는 변경되었지만 대상 포트는 동일하게 유지되므로 나중에 동일한 대상 호스트에 다시 미러링 할 것임을 알고 있습니다.)
generalnetworkerror

모니터 세션 사용을 비활성화하려면# no monitor session 1
wimh

17

트래픽이 Cisco IOS 12.4 (20) T 이상을 실행하는 라우터를 통과하는 경우 임베디드 패킷 캡처 기능을 사용할 수도 있습니다.

이 기능은 3560 또는 3750과 같은 스위치 플랫폼에서는 사용할 수 없습니다.

이 기능은 Wireshark로 다운로드하여 분석 할 수있는 작은 PCAP 파일을 라우터에 캡처하고 저장하는 것입니다.

몇 가지 링크세부 사항 .


7
... 이것은 사람들이 자신의 질문을 게시 한 다음 대답 할 때 문제가되지 않는 이유입니다. 단.
크레이그 콘스탄틴

현재 ASA는 캡처 명령을 사용하여이 기능을 항상 갖추고 있습니다. PIX에서 상속되었으며 6.2 이후부터 PIX에서 상속되었습니다.
James Sneeringer 2016 년

5

믹스에 ELAM을 추가하고 싶습니다. ELAM은 PFC3 (6500, 7600)에서 지원됩니다.

'서비스 내부'를 사용하도록 설정해야하지만 실행하기에 매우 안전한 기능입니다. 프로덕션 네트워크에서 많은 것을 실행했지만 아직 부정적인 영향을받지는 않았습니다.

기본적으로 ELAM은 DBUS (Data BUS)를 통해 PFC에 조회 처리를 위해 전송 한 내용과 PBUS가 RBUS (결과 BUS)에서 조회 결과로 제공 한 내용을 보여줍니다.

  1. plat cap elam asic 슈퍼맨 슬롯 DFC / PFC_SLOT_YOU_WANT_TO_LOOK 표시
  2. ip_sa = 192.0.2.1 인 경우 plat cap elam 트리거 dbus ipv4 표시
  3. 플래트 캡 엘람 시작 표시
  4. 플래트 캡 엘람 데이터 표시

트리거의 경우 온라인 도움말, IP_SA == IP 소스 주소, IP_DA == IP 대상 주소 등이 있으며 다른 많은 항목도 사용할 수 있습니다. 확인하려는 항목을 사용할 수없는 경우 첫 64B에서 임의의 데이터에 대해 데이터 + 마스크 일치를 수행 할 수 있습니다.
임의 트리거는 약간 어색하지만 수명이 다할 수 있으므로 다음과 같이 사용하십시오.

data = DATA1 DATA2 DATAn [MASK1 MASK2 MASKn] 인 경우 플랫폼 캡처 elam 트리거 dbus 기타 표시

DMAC에서 데이터가 시작됩니다. 따라서 우리는 [0 1951]의 수신 MPLS 스택을 잡아 내고 싶지만 MAC 주소는 신경 쓰지 않고 다음과 같이 할 수 있습니다.

데이터 = 000 0x88470000 0x00000079 0xF0000000 [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에서는 메모리에서 운송을 볼 수 있다는 것을 알고 있습니다. Juniper Trio에는 매우 유용한 도구가 있습니다. 브로케이드가 할 수 있습니다. 벤더 페이지에 문서화되어 있지 않은 것은 당황 스럽습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.