소개
이 문서에서는 Cisco IOS® XE 라우터의 인터페이스 패킷 삭제 문제를 해결하는 방법에 대해 설명합니다.
요구 사항
패킷 흐름 및 Cisco IOS XE에 대한 기본 지식
사용되는 구성 요소
이 문서는 ISR 4000 및 ASR1000 라우터와 같은 Cisco IOS XE 라우터 플랫폼을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
Cisco IOS XE 라우터에서 패킷 삭제는 다음을 비롯한 여러 구성 요소 간에 발생할 수 있습니다.
이러한 드롭은 인터페이스의 입력 또는 출력 방향에서 관찰될 수 있다. QFP를 분석할 때, 주된 초점은 출력 삭제에 있다.
Cisco IOS XE 디바이스의 컨트롤 플레인에 영향을 주는 패킷 삭제는 다음 가이드에 나와 있는 punt 삭제를 참조하십시오. Policer 트러블슈팅이 임계값을 초과했습니다.
입력 삭제
인터페이스에서는 입력 대기열에서 입력 삭제를 경험할 수 있습니다. 이 카운터는 입력 대기열 필드의 show interfaces 명령, drops 카운터 섹션에서 확인할 수 있습니다.
---- show interfaces ----
GigabitEthernet0/0/0 is up, line protocol is up
Input queue: 0/375/71966/0 (size/max/drops/flushes); Total output drops: 47009277
인터페이스의 입력 삭제 카운터는 show interface summary 명령의 IQD 열 아래에 표시되며, 이는 입력 대기열에서 삭제된 패킷을 나타냅니다.
---- show interface summary ----
Interface IHQ IQD OHQ OQD RXBS RXPS TXBS TXPS TRTL
-----------------------------------------------------------------------------------------------------------------
* Te0/0/0 0 0 0 0 29544000 2830 1957000 1446 0
* Te0/0/1 0 0 0 0 23476000 2555 16655000 3346 0
* GigabitEthernet0/0/0 0 71966 0 47019440 18852000 5321 59947000 6064 0
인터페이스의 입력 삭제는 일반적으로 입력 대기열이 초과되어 제시간에 처리할 수 없을 때 발생합니다. 그 결과, 패킷은 사용 중인 큐잉 알고리즘에 기초하여 선택적으로 폐기될 수 있다.
입력 삭제를 발생시키는 가능한 원인은 다음과 같습니다.
- 송신 장치는 수신 장치가 처리할 수 있는 속도보다 높은 속도로 패킷을 전송하고 있어 입력 대기열이 소모됩니다
- 트래픽 패턴의 버스트 또는 마이크로버스트
- 플랫폼 제한 사항
인터페이스 레벨 아래에서 명령 보류 큐를 사용하여 입력 큐 크기를 늘릴 수 있습니다.
Router(config-if)#hold-queue ?
<0-240000> Queue length
참고: Hold-queue 명령은 일부 플랫폼에서 유효할 수 없습니다. 플랫폼 사양을 확인하거나 TAC에 케이스를 접수하십시오.
참고: 흐름 제어 메커니즘은 수신 디바이스에서 전송 디바이스로 일시 중지 프레임을 전송하는 데에도 사용할 수 있습니다. 특정 플랫폼의 인터페이스 및 하드웨어 구성 요소 컨피그레이션 가이드에서 흐름 제어에 대한 자세한 내용을 검토합니다.
인터페이스의 출력 삭제
출력 대기열의 인터페이스 매니페스트에서 출력이 삭제되며 show interfaces 명령을 통해 확인할 수 있습니다.
---- show int gi 1/0/46 ----
GigabitEthernet1/0/46 is up, line protocol is up (connected)
Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 154786
Total Output Drops 카운터는 영향을 받는 인터페이스의 출력 큐에서 채도를 나타냅니다. 이러한 상태는 QoS(Quality of Service)와 같은 메커니즘으로 악화될 수 있으며, QoS는 선택적으로 패킷을 폐기하여 혼잡을 관리할 수 있습니다.
QoS는 트래픽의 우선순위를 변경하므로, 또 다른 트러블슈팅 단계는 명령 service-policy 출력을 사용하여 출력 방향으로 구성된 policy-map을 통해 인터페이스에서 기본이 아닌 큐잉 전략을 사용하고 있는지 확인하는 것입니다.
interface GigabitEthernet0/1
service-policy output PRIORITIZE-VOICE
구현된 서비스 품질 메커니즘으로 인해 출력이 삭제되는지 확인하려면 show policy-map interface <interface-name> out 명령을 사용합니다. 이는 다음 예에 나와 있습니다.
---- show policy-map interface gi0/0/0 output ----
GigabitEthernet0/0/0
Service-policy output: PRIORITIZE-VOICE
queue stats for all priority classes:
Queueing
queue limit 512 packets
(queue depth/total drops/no-buffer drops) 0/0/0
(pkts output/bytes output) 0/0
Class-map: VOICE (match-any)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: dscp ef (46)
Priority: Strict, b/w exceed drops: 0
Class-map: class-default (match-any)
0 packets, 0 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: any
queue limit 4166 packets
(queue depth/total drops/no-buffer drops) 0/0/0
(pkts output/bytes output) 0/0
Router#
이 명령은 구성된 클래스 간의 QoS 메커니즘으로 인한 삭제를 보여줍니다.
참고: 인터페이스의 출력이 정책 맵에서 볼 수 있는 삭제와 상관관계가 있는 경우, 일반적으로 구성된 QoS(Quality of Service)로 인해 감소가 예상됩니다. 필요한 경우 TAC와 협력하여 사용된 서비스 품질 메커니즘에 대해 자세히 알아보고 이 기능에 대한 해당 가이드를 참조하십시오.
작동 중인 QoS 및 구현 방법에 대한 자세한 내용은 QoS 컨피그레이션 가이드, Cisco IOS XE 17.x 컨피그레이션 가이드를 참조하십시오.
대기열 처리 전략을 보려면 show interfaces 명령을 사용하고 대기열 처리 전략 값을 확인합니다. 기본적으로 아웃바운드 패킷 처리 전략은 FIFO(First-In, First-Out)입니다.
---- show interfaces gigabitEthernet 0/0/0 ----
Queueing strategy: Class-based queueing
QoS(Quality of Service)가 적용되지 않은 출력 중단
인터페이스에 QoS(Quality of Service)를 위한 출력 방향으로 연결된 정책 맵이 없는 경우 다른 원인으로 인해 출력이 감소할 수 있습니다.
QoS(Quality of Service)가 없는 인터페이스에서 출력이 삭제되는 원인 중 일부는 다음과 같습니다.
- 포트 채널 및 오버서브스크립션 단일 출력 인터페이스를 형성하는 수신 인터페이스
- QFP(Quantum Flow Processor) 배압
- 라이센싱 처리량 제한
- 플랫폼 제한
이 문제를 더 자세히 해결하려면 이 문서의 QFP(Quantum Flow Processor) Drops 섹션을 참조하십시오.
QFP(Quantum Flow Processor) 삭제
QFP 삭제 사유를 확인하려면 다음 그림과 같이 show platform hardware qfp active statistics drop 명령을 사용합니다.
---- show platform hardware qfp active statistics drop ----
Last clearing of QFP drops statistics : never
-------------------------------------------------------------------------
Global Drop Stats Packets Octets
-------------------------------------------------------------------------
BFDoffload 23944858 1904416850
IpTtlExceeded 184211 28644972
IpsecIkeIndicate 175 26744
IpsecInput 686112 171458640
IpsecInvalidSa 1 80
Ipv4Martian 4 392
Ipv4NoAdj 19776 6587643
Ipv4NoRoute 75 10950
Ipv6NoRoute 27068 1515808
ReassDrop 3489529 450382594
ReassNoFragInfo 4561070 6387610348
ReassOverlap 3 198
ReassTimeout 7408271 2631950860
TailDrop 193769387 157113756882
이 명령은 QFP 삭제의 다양한 이유와 각 카테고리에 대한 관련 패킷 카운터를 표시합니다.
참고: QFP 탈락 범주 사유의 대부분은 그 명칭에 따라 설명이 가능하다. 이유 범주는 문제 해결 흐름을 안내합니다. 일반 패킷 삭제 범주가 아닌 경우 Cisco TAC 케이스를 접수합니다.
테일 드랍
가장 자주 관찰되는 삭제 유형 중 하나는 TailDrop 카운터이며, 이는 일반적으로 다음과 같은 이유로 인해 증가합니다.
생성된 로그 유형:
%BW_LICENSE-4-THROUGHPUT_MAX_LEVEL: F0/0: cpp_ha_top_level_server: 지난 <period>시간 동안 <sampling-number> 샘플링 기간 동안 평균 처리량이 <mbps>Mbps의 라이센스 대역폭에 도달했으며 샘플링 기간은 <sampling-period>초입니다.
확인 명령:
- show platform hardware qfp active infrastructure bqs queue output default interface <interface>
- show plat hardware qfp active infrastructure bqs queue output default all
- show platform hardware qfp active feature lic-bw oversubscription
- 플랫폼 하드웨어 처리량 레벨 표시
- 플랫폼 하드웨어 처리량 암호화 표시
영향을 받는 트래픽이 삭제되고 있는지 여부와 QFP의 패킷 처리 보기에 대한 자세한 내용을 이해하려면 패킷 추적 기능을 사용할 수 있습니다. Cisco IOS-XE Datapath 패킷 추적 기능을 통한 문제 해결을 참조하십시오.
생성된 로그 유형:
%IOSXE_QFP-2-LOAD_EXCEED: 슬롯: 0, QFP:0, Load <load-percentage>%가 설정 임계값을 초과합니다.
참고: 데이터시트의 플랫폼 제한 처리량 수치 및 확장을 참조하십시오. 처리량은 디바이스의 컨피그레이션에서 기능의 수 및 사용량에 따라 달라집니다. 이는 QFP에 주입되는 집계 bps(bits per second)에 따라서도 달라진다.
최근 5초, 1분, 5분 또는 60분 내에 QFP 활용률을 검증하기 위해 show platform hardware qfp active datapath utilization summary 명령을 사용할 수 있습니다.
---- show platform hardware qfp active datapath utilization summary ----
CPP 0: 5 secs 1 min 5 min 60 min
Input: Total (pps) 1 2 2 2
(bps) 320 1032 1032 1032
Output: Total (pps) 0 1 1 1
(bps) 0 8560 8560 8576
Processing: Load (pct) 0 0 0 0
Crypto/IO
Crypto: Load (pct) 0 0 0 0
RX: Load (pct) 0 0 0 0
TX: Load (pct) 2 2 2 2
Idle (pct) 97 97 97 97
QFP에서 추가 삭제 확인을 위해 show drops { bqs를 사용하십시오. | crypto| firewall| interface| ip-all| nat| punt| qfp| qos|history} 명령, Cisco Catalyst 8500 및 8500L Series Edge Platforms Software Configuration Guide를 참조하십시오.
패킷 삭제 트러블슈팅을 위한 추가 팁
인터페이스의 카운터
show interfaces [interface] 명령을 통해 다양한 카운터가 표시됩니다. 각 카운터의 의미에 대한 설명은 이더넷 문제 해결 문서에서 확인할 수 있습니다.
History Bits per Second CLI 기반 그래프
인터페이스 레벨 아래의 명령 기록 bps를 사용하여 인터페이스에서 들어오고 나가는 방향으로 CLI 내에서 기록 bps/초 그래프 보기를 활성화할 수 있습니다. 이 컨피그레이션은 인터페이스에서 내역 bps의 그래프를 생성합니다.
Router(config)#interface gigabitEthernet 0/0/0
Router(config-if)#history bps
또한 기록 bps 출력-삭제 및 기타 카운터 기록을 활성화할 수 있습니다.
시간 경과에 따른 기록 카운터 결과를 표시하려면 명령 show interfaces <interface> history 명령을 사용합니다.
---- show interfaces gigabitEthernet 0/0/0 history ? ----
60min Display 60 minute histograms only
60sec Display 60 second histograms only
72hour Display 72 hour histograms only
all Display all three histogram intervals
both Display both input and output histograms
input Display input histograms only
output Display output histograms only
| Output modifiers
#show int gi1 history 60sec
90100 *
82100 *
74100 ******
66100 ***********
58100 ***********
50100 ****************
42100 *********************
34100 *******************************
26100 ************************************
18100 ***************************************************
10100 **********************************************************
0....5....1....1....2....2....3....3....4....4....5....5....6
0 5 0 5 0 5 0 5 0 5 0
GigabitEthernet1 output rate(mbits/sec) (last 60 seconds)
clear counters
이 명령은 다양한 카운터 통계를 지우는 데 사용됩니다.
- clear counters: 인터페이스 수준 카운터 데이터를 지웁니다.
- show platform hardware qfp active statistics drop clear: QFP(Quantum Flow Processor)에서 삭제 카운터를 재설정합니다.
시간의 경과에 따른 삭제 비율
출력 삭제 수가 영향을 받는지 확인하려면 인터페이스 수준에서 history bps output-drops 명령을 사용하여 시간에 따른 삭제를 확인하는 것 외에, 다른 카운터 값을 사용하여 카운터가 마지막으로 지워진 이후 출력 삭제의 전체 비율을 가져올 수 있습니다.
마지막 부팅 이후 카운터가 지워지지 않은 경우 show version 명령을 사용하여 시스템 가동 시간을 가져오거나 show interfaces 명령과 함께 show interface counters의 마지막 지우기 값을 참조하십시오.
카운터가 마지막으로 지워진 시간을 확인하거나 디바이스 가동 시간을 확인한 후 해당 기간 동안 발생한 출력 손실의 백분율을 계산합니다.
이 작업은 총 출력 삭제 값에 100을 곱한 다음 show interfaces <interface> 명령의 packets 출력 카운터 값 간에 결과를 나누어 수행할 수 있습니다. 이 작업의 결과는 해당 기간 동안 해당 인터페이스에 대한 출력 삭제의 %에 대한 아이디어를 제공합니다.
참고: show interfaces 및 show platform hardware qfp active statistics drop의 카운터는 마지막으로 지워진 이후 기록 및 누적됩니다. 다시 로드가 완료되면 카운터가 지워집니다.
다음 예제 출력을 참조하십시오.
---- show version ----
Hostname uptime is 51 weeks, 1 day, 14 hours, 17 minutes
---- show interface GigabitEthernet0/0/1 ----
GigabitEthernet0/0/1 is up, line protocol is up
Last clearing of "show interface" counters never
Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 1351
219128599 packets output, 84085726336 bytes, 0 underruns
이 예제 출력은 인터페이스의 카운터가 지워지지 않았음을 나타냅니다. 즉, 디바이스의 가동 시간이 지난 51주 동안 총 출력의 비율이 ( 1351 x 100 ) / 219128599 = .0006%입니다.
이 백분율을 해석하면 이 인터페이스의 총 출력 감소량이 크지 않을 수 있습니다. 이 카운터는 기록 및 누적되며 가동 시간이 길어지면 감소량이 영향을 미치지 않습니다.
로드 간격
Load interval(로드 간격)은 로드 통계를 계산하는 데 데이터가 사용되는 기간을 나타내는 인터페이스 레벨의 컨피그레이션 매개변수입니다.
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface gigabitEthernet 0/0/0
Router(config-if)#load-interval ?
<30-600> Load interval delay in seconds
load-interval 매개변수의 결과는 입력 및 출력 속도 값 아래의 show interface 명령과 함께 반영됩니다.
---- show interfaces gigabitEthernet 0/0/0 ----
GigabitEthernet0/0/0 is administratively down, line protocol is down
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
이는 show interfaces 명령을 실행할 때 bits per second 속도를 확인하는 순간 중요합니다.
입력 및 출력 속도 값은 인터페이스에서 들어오고 나가는 초당 비트를 이해하는 데 유용합니다.
모든 인터페이스의 입력 및 출력 속도 값에 대한 폭넓은 개요를 보려면 show interface summary 명령을 사용하고 물리적 인터페이스에서 집계 출력 속도를 가져옵니다. 이는 특정 시점의 초당 총 집계 비트를 이해하는 데 도움이 됩니다. 이 예제 출력에서 RXBS 및 TXBS 카운터를 참조하십시오.
---- show interfaces summary ----
*: interface is up
IHQ: pkts in input hold queue IQD: pkts dropped from input queue
OHQ: pkts in output hold queue OQD: pkts dropped from output queue
RXBS: rx rate (bits/sec) RXPS: rx rate (pkts/sec)
TXBS: tx rate (bits/sec) TXPS: tx rate (pkts/sec)
TRTL: throttle count
Interface IHQ IQD OHQ OQD RXBS RXPS TXBS TXPS TRTL
-----------------------------------------------------------------------------------------------------------------
* GigabitEthernet0/0/0 1 0 0 0 9000 19 0 0 0
GigabitEthernet0/0/1 0 0 0 0 0 0 0 0 0
GigabitEthernet0/0/2 0 0 0 0 0 0 0 0 0
* GigabitEthernet0/0/3 0 0 0 0 9000 19 0 0 0
일시적으로 QoS 정책 제거
문제를 해결하려면 영향을 받는 인터페이스에서 QoS 정책을 일시적으로 제거합니다. 인터페이스 컨피그레이션 레벨에서 no service-policy output <policy-name> 명령을 사용합니다.
- QoS 정책 없이 드롭이 지속될 경우 이 문제는 QoS와 관련이 없습니다.
- QoS 정책을 제거한 후 삭제가 중단될 경우 해당 정책이 원인일 수 있습니다.
참고: TAC 지원이 필요한 경우 서비스 품질에 따른 폐기 여부를 따로 판단하는 것이 해당 사례를 초기에 적절한 전문가에게 전달하는 데 중요합니다.
참고: 삭제는 ipsec 기능 때문일 수도 있습니다. Ipsec 삭제는 일반적으로 터널 소스로 사용되는 물리적 인터페이스에서 집계됩니다. 터널이 사용될 때만 드롭이 있는 경우, 지원이 필요한 경우 TAC에 이를 알리는 것이 중요합니다. 이렇게 하면 해당 팀이 초기에 케이스를 전달할 수 있습니다
관련 문서 및 문서