목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

Netdr 툴 사용

옵션

문제 해결

소개

이 문서에서는 Supervisor Engines 720 또는 32를 실행하는 Cisco Catalyst 6500 Series 스위치에서 RP(Route Processor CPU) 또는 SP(Switch Processor CPU)에 대한 내부 인밴드 경로의 패킷을 캡처할 수 있는 사용 가능한 툴인 Netdr에 대해 설명합니다.

사전 요구 사항

요구 사항

이 문서에 대한 특정 요건이 없습니다.

사용되는 구성 요소

이 문서의 정보는 Supervisor Engine 720을 실행하는 Cisco Catalyst 6500 Series 스위치를 기반으로 합니다.

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.

배경 정보

RP CPU는 일반적으로 하드웨어 스위칭이 불가능한 L3 데이터 트래픽과 레이어 3(L3) 제어 트래픽을 처리하기 위해 사용됩니다.L3 제어 트래픽의 예로는 OSPF(Open Shortest Path First), EIGRP(Enhanced Interior Gateway Routing Protocol), BGP(Border Gateway Protocol), PIM(Protocol Independent Multicast) 패킷이 있습니다.하드웨어 스위칭이 될 수 없는 L3 데이터 트래픽의 일부 예로는 IP 옵션이 설정된 패킷, TTL(Time To Live) 값이 1인 패킷, 프래그먼트화가 필요한 패킷이 있습니다.

SP CPU는 일반적으로 레이어 2(L2) 제어 트래픽을 처리하기 위해 사용됩니다.이 예제의 예로는 STP(Spanning Tree Protocol), CDP(Cisco Discovery Protocol), VTP(VLAN Trunking Protocol) 패킷이 있습니다.

Netdr 도구는 내부 인밴드 CPU 소프트웨어 스위칭 경로에서 전송(Tx) 및 수신(Rx) 패킷을 모두 캡처하기 위해 사용됩니다.이 툴을 사용하여 하드웨어 스위치드 트래픽을 캡처할 수 없습니다.

Netdr은 CPU 사용량이 많은 시나리오의 문제를 해결하는 데 유용합니다.RP CPU 사용 빈도를 확인하려면 show process cpu 명령 또는 show process cpu history 명령을 실행합니다.SP CPU 사용 빈도를 확인하려면 remote 명령 switch show process cpu 명령 또는 remote 명령 switch show process cpu history 명령을 실행합니다.

Netdr은 인터럽트 중심의 CPU 사용률을 해결하는 데만 유용합니다.인터럽트 기반 CPU 사용률은 CPU로 전송된 수신 패킷을 처리한 결과입니다.

Cat6500#show process cpu

CPU utilization for five seconds: 90%/81%; one minute: 89%; five minutes: 80%

앞의 예에서는

- 90%는 총 CPU 사용률입니다.

- 81%는 인터럽트로 인한 CPU 사용률이며, 이는 CPU에서 처리하는 트래픽을 구성합니다.

- Cisco IOS로 인해 CPU 사용률이 9%(90 - 81)입니까?소프트웨어 프로세스.

Netdr 툴 사용

이 섹션에서는 Netdr 도구를 사용하는 방법에 대해 설명합니다.

참고:Netdr은 버전 12.2(33)SXH 등과 같은 최신 Cisco IOS 소프트웨어 버전에서 CPU 사용량이 많은 조건에서 사용할 수 있습니다.몇 가지 이전 소프트웨어 릴리스에서는 Netdr이 더 많은 CPU를 사용할 수 있으며, CPU 사용률이 높은 스위치에서 실행하는 것은 안전하지 않을 수 있습니다.스위치가 이전 소프트웨어 버전을 실행하는 경우 Cisco TAC(Technical Assistance Center)의 감독하에 이 기능을 사용하는 것이 좋습니다.

RP 인밴드 CPU 경로에서 패킷을 캡처하려면 다음 구문을 사용합니다.

Cat6500#debug netdr capture ?

acl                     (11) Capture packets matching an acl

and-filter               (3) Apply filters in an and function: all must match

continuous               (1) Capture packets continuously: cyclic overwrite

destination-ip-address  (10) Capture all packets matching ip dst address

dstindex                 (7) Capture all packets matching destination index

ethertype                (8) Capture all packets matching ethertype

interface                (4) Capture packets related to this interface

or-filter                (3) Apply filters in an or function: only one must match

rx                       (2) Capture incoming packets only

source-ip-address        (9) Capture all packets matching ip src address

srcindex                 (6) Capture all packets matching source index

tx                       (2) Capture outgoing packets only

vlan                     (5) Capture packets matching this vlan number

참고:여러 옵션을 사용할 수 있으며, 각 옵션 오른쪽에 있는 괄호 안의 숫자는 옵션을 지정해야 하는 순서를 나타냅니다.

SP 인밴드 CPU 경로에서 패킷을 캡처하려면 SP 콘솔에서 모든 명령을 실행해야 합니다.

Cat6500#remote login switch

Trying Switch ...

Entering CONSOLE for Switch

Type "^C^C^C" to end this session

Cat6500-sp#debug netdr capture ?

참고:exit를 입력하여 일반 RP CPU 명령 프롬프트로 돌아갑니다.

패킷이 캡처되면 show netdr capture 명령과 함께 표시됩니다.

옵션

다음은 Netdr에 사용할 수 있는 몇 가지 옵션입니다.

- 연속 옵션을 사용할 경우, 스위치에는 인밴드 CPU 경로의 패킷이 전체 캡처 버퍼(4096개 패킷)를 지속적으로 채우고 FIFO(first-in, first-out) 방식으로 버퍼를 덮어쓰기 시작합니다.

- tx 및 rx 옵션은 CPU에서 오는 패킷을 캡처하여 각각 CPU로 이동합니다.

- interface 옵션은 지정된 인터페이스로 또는 지정된 인터페이스에서 패킷을 캡처하는 데 사용됩니다.인터페이스는 스위치의 SVI(Switch Virtual Interface) 또는 L3 인터페이스입니다.

- vlan 옵션은 지정된 VLAN의 모든 패킷을 캡처하기 위해 사용됩니다.지정된 VLAN은 L3 인터페이스와 연결된 내부 VLAN 중 하나일 수 있습니다.show vlan internal usage 명령은 내부 VLAN과 L3 인터페이스 매핑을 확인하기 위해 사용됩니다.

- LTL(로컬 대상 논리)은 인터페이스의 내부 소프트웨어 표현입니다.src_indx(소스 인덱스) 및 dst_indx(대상 인덱스) 옵션은 각각 소스 LTL 및 대상 LTL 인덱스와 일치하는 모든 패킷을 캡처하기 위해 사용됩니다.interface 옵션은 L3 인터페이스(SVI 또는 물리적)로 또는 L3 인터페이스로부터 패킷을 캡처하는 것만 허용합니다. src_indx 또는 dst_indx 옵션을 사용하면 L2 인터페이스에서 Tx 또는 Rx 패킷을 캡처할 수 있습니다.src_indx 및 dst_indx 옵션은 L2 또는 L3 인터페이스 인덱스에서 작동합니다.

문제 해결

참고:Netdr은 버전 12.2(33)SXH 등과 같은 최신 Cisco IOS 소프트웨어 버전에서 CPU 사용량이 많은 조건에서 사용할 수 있습니다.몇 가지 이전 소프트웨어 릴리스에서는 Netdr이 더 많은 CPU를 사용할 수 있으며 CPU 사용률이 높은 스위치에서 실행하는 것은 안전하지 않을 수 있습니다.스위치가 이전 소프트웨어 버전을 실행하는 경우 Cisco TAC의 감독하에 이 기능을 사용하는 것이 좋습니다.

Netdr을 사용하여 문제를 해결하려면 다음 단계를 완료하십시오.

1. RP CPU에서 들어오는 트래픽에 대해 Netdr 캡처를 시작합니다.
Cat6500#debug netdr capture rx

2. 캡처된 패킷을 표시합니다.
Cat6500#show netdr capture

A total of 4096 packets have been captured

The capture buffer wrapped 0 times

Total capture capacity: 4096 packets

------- dump of incoming inband packet -------

interface NULL, routine mistral_process_rx_packet_inlin, timestamp 06:35:39.498

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x40(64)

bpdu 0, index_dir 1, flood 0, dont_lrn 1, dest_indx 0x387(903)

05000018 03F16000 01020000 40000000 00117F00 00157F00 00100000 03870000

mistral hdr: req_token 0x0(0), src_index 0x102(258), rx_offset 0x76(118)

requeue 0, obl_pkt 0, vlan 0x3F1(1009)

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 0800

protocol ip: version 0x04, hlen 0x05, tos 0x00, totlen 46, identifier 8207

df 0, mf 0, fo 0, ttl 32, >src 127.0.0.16, dst 127.0.0.21

udp src 68, dst 67 len 26 checksum 0xB8BC

3. 상위 토커 및 트렌드를 식별하려면 패킷을 검토합니다."| include" 옵션을 사용하여 소스 MAC(srcmac) 주소, 대상 MAC(destmac) 주소, 소스 및 대상(src & dst) IP 주소 및 소스 인덱스(src_indx) 등의 필드를 기준으로 검색할 수 있습니다.

Cat6500#show netdr capture | include srcmac

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 0800

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 0800

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 0800

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 0800

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 86DD

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 86DD

destmac 00.1A.A2.2D.B3.A4, srcmac 00.00.00.00.AA.AA, protocol 86DD

Cat6500#show netdr capture | inc src_indx

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x40(64)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x40(64)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x40(64)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x40(64)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x54(84)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x54(84)

dbus info: src_vlan 0x3F1(1009), src_indx 0x102(258), len 0x54(84)

4. 패킷의 소스 및 대상 인터페이스를 검색하기 위해 src_indx 및 dest_indx를 디코딩합니다.

Cat6500#remote command switch test mcast ltl-info index 102

index 0x102 contain ports 5/3

! This is the physical interface sourcing the packet going to the CPU.

Cat6500#remote command switch test mcast ltl-info index 387

index 0x387 contain ports 5/R

!5/R refers to RP CPU on the supervisor engine in slot 5