이 문서에서는 SPD(Selective Packet Discard) 메커니즘과 모니터링 및 조정 방법에 대해 설명합니다.
참고: 이 문서에서는 Cisco 12000 Series 인터넷 라우터의 show interface 출력에서 증가하는 입력 삭제의 문제를 해결하는 방법에 대해 설명하지 않습니다.이 문제에 대한 자세한 내용은 Cisco 12000 Series 인터넷 라우터의 입력 삭제 문제 해결을 참조하십시오.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 규칙을 참조하십시오.
이 문서에 대한 특정 요건이 없습니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
Cisco 7200 Series 라우터
Cisco 7500 Series 라우터
Cisco 12000 Series 인터넷 라우터
모든 버전의 Cisco IOS® 소프트웨어
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.라이브 네트워크에서 작업하는 경우, 사용하기 전에 모든 명령의 잠재적인 영향을 이해해야 합니다.
SPD(Selective Packet Discard)는 RP(Route Processor)에서 프로세스 수준 입력 대기열을 관리하는 메커니즘입니다. SPD의 목표는 프로세스 레벨 대기열 혼잡 기간 동안 라우팅 프로토콜 패킷 및 기타 중요한 트래픽 제어 레이어 2에 우선 순위를 제공하는 것입니다.
과거에는 Cisco 7x00 및 비Cisco CEF(Express Forwarding) 7500 시스템과 같은 플랫폼에서 고속 스위칭 캐시를 채우기 위해 Route Processor가 상당한 수의 전송 패킷을 전달했습니다.따라서 이 경우 동일한 대기열을 공유하는 전송 패킷보다 라우팅 프로토콜 패킷의 우선 순위를 지정하기 위해 SPD가 필요했습니다.
현재 Cisco 12000 Series Internet Router와 CEF를 실행하는 7500에서는 라우터 자체로 향하는 트래픽만 프로세스 레벨로 전송됩니다.이 경우 SPD는 SNMP(Simple Network Management Protocol)와 같은 관리 트래픽이 있거나 RP로 트래픽을 전송하는 DoS(Denial of Service) 공격이 발생할 때 라우팅 프로토콜 패킷의 우선순위를 지정하는 데 사용됩니다.
Cisco 12000 Series에서 라인 카드가 수신 패킷을 RP로 펀딩해야 처리한다고 판단하면 패킷은 스위치 패브릭을 통해 Cisco Cells로 이동하며 Cisco CSAR(Cell Segmentation and Reassembly) FPGA(Field Programmable Gate Array)에 의해 수신됩니다.
스위치 패브릭과 RP CPU 간의 트래픽을 처리하는 것이 목적이며, 여기에서 SPD 검사가 수행됩니다.이는 IP 패킷, 연결 없는 네트워크 서비스(CLNS) 패킷, 레이어 2 keepalive 및 RP에 펀팅된 유사 패킷에 적용됩니다.SPD는 두 개의 검사를 수행하며, 다음 두 상태 중 하나에서 패킷을 삭제할 수 있습니다.
SPD 상태 확인
입력 대기열 확인
RP의 IP 프로세스 대기열은 두 부분으로 나누어집니다.일반 패킷 큐 및 우선 순위 대기열입니다.일반 패킷 큐에 있는 패킷은 SPD 상태 검사를 받으며, 우선 순위 대기열에 있는 패킷은 그렇지 않습니다.우선 순위 패킷 큐에 적합한 패킷은 IP 우선 순위 6 또는 7과 같은 우선 순위가 높은 패킷이며 절대 삭제되지 않아야 합니다.그러나 비한정자는 SPD 상태에 따라 일반 패킷 대기열의 길이에 따라 여기에서 삭제할 수 있습니다.일반 패킷 큐는 세 가지 상태일 수 있으며, 따라서 낮은 우선 순위 패킷은 다르게 서비스될 수 있습니다.
일반:큐 크기 <= 분
임의 삭제:최소 <= 큐 크기 <= 최대
전체 삭제:최대 <= 큐 크기
NORMAL 상태에서는 형식이 올바르고 형식이 잘못된 패킷을 삭제하지 않습니다.
RANDOM DROP 상태에서는 잘 구성된 패킷을 무작위로 삭제합니다.aggressive 모드가 구성된 경우 형식이 잘못된 모든 패킷을 삭제합니다.그렇지 않은 경우에는 제대로 구성된 패킷으로 처리합니다.
참고: 이러한 임의 삭제를 SPD 플러시라고 합니다.기본적으로 인터페이스가 오버로드되면 플러시가 발생합니다.버퍼 누락으로 인해 플러시 카운터가 증가합니다.
FULL DROP 상태에서는 모든 형식이 올바르고 형식이 잘못된 패킷을 삭제합니다.이러한 최소(기본값 73) 및 최대(기본값 74) 값은 섀시의 가장 작은 보류 대기열에서 파생되지만 전역 명령 ip spd queue min-threshold 및 ip spd queue max-threshold를 사용하여 재정의할 수 있습니다.
SPD는 두 가지 다른 모드로 구성할 수 있습니다.일반(기본값) 및 aggressive입니다.두 패킷의 유일한 차이점은 라우터가 잘못된 IP 패킷을 어카운팅하는 방식입니다(잘못된 체크섬, 잘못된 버전, 잘못된 헤더 길이, 잘못된 패킷 길이). aggaggregation 모드 및 Random drop 상태에서는 형식이 잘못된 IP 패킷이 SPD에 의해 삭제됩니다.적극적인 모드는 ip spd mode aggressive 명령을 사용하여 구성할 수 있습니다.
참고: 잘못된 형식의 IP 패킷이 인그레스 라인 카드에 의해 직접 삭제되고 이러한 패킷은 GRP(Gigabit Route Processor)로 펀딩되지 않으므로 Cisco 12000 Series Internet Router에서는 적극적인 모드가 구현되지 않습니다. 따라서 이 특정 플랫폼에서는 적극적인 모드가 필요하지 않습니다.
입력 대기열은 하드웨어 인터페이스별로 유지되며 모든 하위 인터페이스 간에 공유됩니다.SPD가 없으면 패킷이 수신될 때 입력 대기열이 가득 차면 모든 패킷이 삭제됩니다.기본 입력 대기열 크기는 75이며 인터페이스 컨피그레이션 명령에서 hold-queue [size]를 사용하여 인터페이스별로 구성할 수 있습니다.입력 대기열의 패킷 수는 show interfaces 명령의 "input queue" 필드에서 확인할 수 있습니다.
router#show interfaces pos 3/0 POS3/0 is up, line protocol is up Hardware is Packet over SONET Internet address is 137.40.55.2/24 MTU 4470 bytes, BW 2488000 Kbit, DLY 100 usec, rely 255/255, load 1/255 Encapsulation PPP, crc 32, loopback not set Keepalive not set Scramble disabled LCP Open Open: IPCP, CDPCP, OSICP, TAGCP Last input 00:00:01, output 00:00:00, output hang never Last clearing of "show interface" counters 2w3d Queueing strategy: fifo Output queue 0/40, 0 drops; input queue 0/75, 0 drops 30 second input rate 9000 bits/sec, 0 packets/sec 30 second output rate 0 bits/sec, 0 packets/sec 456292 packets input, 917329913 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 parity 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 112046977 packets output, 32078928095 bytes, 0 underruns 0 output errors, 0 applique, 3 interface resets 0 output buffer failures, 0 output buffers swapped out 1 carrier transitions
참고: 한 인터페이스에서 입력 대기열 크기를 줄이면 다른 모든 인터페이스에서 많은 수의 입력이 삭제될 수 있습니다.최소 입력 보류 대기열 크기는 75 이상이어야 합니다.
SPD에서도 일반 IP 패킷의 동작은 변경되지 않습니다.그러나 SPD는 IP 우선순위 필드에서 라우팅 프로토콜 패킷을 인식하므로 라우팅 프로토콜 패킷에 더 높은 우선순위가 부여됩니다.따라서 IP 우선 순위가 6으로 설정된 경우 패킷에 우선 순위가 지정됩니다.
SPD는 소프트웨어가 이러한 패킷을 일반 입력 대기열 제한을 초과하는 프로세스 수준 입력 대기열에 넣도록 허용함으로써 이러한 패킷의 우선 순위를 지정합니다.일반 제한을 초과하여 허용되는 패킷 수는 spd headroom이라고 하며, 기본값은 100입니다. 즉, 입력 보류 대기열의 크기가 175보다 작으면 우선 순위가 높은 패킷이 삭제되지 않습니다(입력 대기열 기본 크기 + 공간 공간 크기).
Cisco IOS Software Release 12.0(22)S의 경우와 마찬가지로, Cisco 12000 Series Internet Router의 공간 기본값은 더 큰 SP 네트워크를 수용할 수 있는 1000입니다.이는 BGP(Border Gateway Protocol) 피어링을 점점 더 많은 인접 디바이스와 함께 사용하여 끊임없이 증가하는 수의 경로를 더 빠른 인터페이스에 광고하기 때문입니다.BGP를 하나만 지우면 단일 인터페이스에서 수천 개의 입력 대기열이 삭제되는 경우가 종종 있으므로 컨버전스 시간이 크게 방해될 수 있습니다.
SPD 헤드룸은 spd headroom 명령을 사용하여 구성할 수 있습니다.현재 레벨은 show spd 또는 show ip spd 명령의 출력에서 볼 수 있습니다.
Router#show spd Headroom: 1000, Extended Headroom: 10 Router#show ip spd Current mode: normal Queue min/max thresholds: 73/74, Headroom: 1000, Extended Headroom: 10 IP normal queue: 0, priority queue: 0. SPD special drop mode: none
참고: IP 일반 대기열의 크기는 show ip spd 명령으로 모니터링할 수도 있습니다.
CLNS ISIS(연결 없는 네트워크 서비스 중간 시스템-중간 시스템) 패킷, PPP(Point-to-Point Protocol) 패킷, HDLC(High-Level Data Link Control) keepalive와 같은 비 IP 패킷은 최근까지는 레이어 3 대신 레이어 2가 되어 정상적인 우선 순위로 처리되었습니다. 또한 IGPs(Interior Gateway Protocols)는 레이어 3에서 작동했습니다. 일반 IP 패킷보다 우선순위가 지정되었지만 BGP 패킷과 동일한 우선순위를 지정했습니다.따라서 BGP 컨버전스 동안 또는 매우 높은 BGP 활동 중에 IGP hello 및 keepalive가 삭제되어 IGP 인접성이 저하되는 경우가 많습니다.
IGP와 링크 안정성은 BGP 안정성보다 더 지속적이고 중요하므로, 이러한 패킷은 이제 가장 높은 우선 순위를 지정하며 10개의 패킷으로 확장된 SPD 헤드룸을 제공합니다.즉, 입력 보류 대기열의 크기가 185보다 작으면 이러한 패킷이 삭제되지 않습니다(입력 대기열 기본 크기 + 공간 크기 + 공간 확장 헤드룸).
확장 SPD 헤드룸은 spd extended [size] 명령을 사용하여 구성할 수 있으며, 현재 레벨은 show spd 또는 show ip spd 명령의 출력에서 볼 수 있습니다.
Router#show ip spd Current mode: normal Queue min/max thresholds: 73/74, Headroom: 100, Extended Headroom: 10 IP normal queue: 0, priority queue: 0. SPD special drop mode: none
참고: Cisco 12000 Series Internet Router에서 HDLC 및 PPP keepalive와 CLNS ISIS 라우팅 프로토콜 패킷은 높은 우선 순위로 처리되며 Cisco IOS Software 릴리스 12.0(12)S1 이후 확장 SPD 헤드룸에서 대기될 수 있습니다. Cisco IOS Software 릴리스 12.0(18)S 이후 모든 IGP 패킷 확장 SPD 헤드룸에서도 대기열에 들어갈 수 있습니다.
Cisco IOS Software Release 12.0(22)S 이전의 기본값은 다음과 같습니다.
입력 큐 크기 = 75
SPD 헤드룸 크기 = 100
확장 헤드룸 크기 = 10
Cisco IOS Software Release 12.0(22)S 이후 기본값은 다음과 같습니다.
입력 큐 크기 = 75
SPD 헤드룸 크기 = 1000
확장 헤드룸 크기 = 10
첫 번째 사례에서는 다음을 제공합니다.
일반 우선 순위가 있는 IP 패킷은 기본 큐 제한(75)까지 큐에 추가할 수 있습니다.
우선 순위가 높은 IP 패킷은 기본 큐 제한 + spd_headroom(Cisco IOS 소프트웨어 릴리스에 따라 175 또는 1075)까지 큐에 추가할 수 있습니다.
CLNS, IGP 및 LC keepalive 패킷은 기본 큐 제한 + spd_headroom + spd_ext_headroom(Cisco IOS 소프트웨어 릴리스에 따라 185 또는 1085)까지 큐에 추가할 수 있습니다.
다음은 SPD에 대한 몇 가지 추가 팁/정보입니다.
기본적으로 SPD는 "on"입니다. spd enable 전역 명령을 사용하여 활성화/비활성화할 수 있습니다.
처음에 SPD는 PoS(Packet Over Sonet) 인터페이스에서만 사용할 수 있었습니다.
Cisco IOS Software Release 12.0(21)S 이전에는 Cisco 12000 Series 인터넷 라우터에 설치된 기가비트 이더넷 라인 카드(엔진 1 및 엔진 2) 및 고속 이더넷 라인 카드에서 SPD가 작동하지 않았습니다.초과 패킷을 저장하려면 입력 보류 대기열을 늘려야 했습니다.
Cisco 7200/7500 Series 라우터에서 SPD 플러시(삭제) 카운터는 비 FIFO에 대해 Cisco IOS Software 릴리스 12.1(1), 12.1(1)T 및 12.0(9)ST(First In Out First Out) 및 12.2(17) 이후 show interfaces 명령 출력에서 확인할 수 있습니다. 2.2(7)T 및 12.1(7)E(FIFO 대기열 처리)다른 릴리스 및 Cisco 12000 Series Internet Router에서 이 카운터는 show interface switching 명령을 입력해야만 볼 수 있습니다.예를 들어, show interface pos 0/1 switching 명령을 사용하여 SPD 플러시, 적극적인 삭제 및 우선순위를 확인할 수 있습니다.
예를 들면 다음과 같습니다.
7500_Router#show interfaces FastEthernet0/0/0 is up, line protocol is up Hardware is cyBus FastEthernet Interface, address is 0090.9282.7000 (bia 0090) MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, rely 255/255, load 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) Full-duplex, 100Mb/s, 100BaseTX/FX ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:01, output 00:00:01, output hang never Last clearing of "show interface" counters never Queueing strategy: fifo Output queue 0/40, 0 drops; input queue 0/75, 0 drops, 0 flushes 30 second input rate 4000 bits/sec, 9 packets/sec 30 second output rate 0 bits/sec, 0 packets/sec 2628397 packets input, 546327119 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 0 watchdog, 0 multicast 0 input packets with dribble condition detected 264792 packets output, 225434458 bytes, 0 underruns 0 output errors, 0 collisions, 20 interface resets 0 babbles, 0 late collision, 0 deferred 22 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out