Este documento explica el mecanismo de descarte selectivo de paquetes (SPD) y cómo se puede supervisar y ajustar.
Nota: Este documento no explica cómo resolver un número creciente de caídas de entrada en la salida show interfaces en un Cisco 12000 Series Internet Router. Para obtener más información sobre este problema, consulte Resolución de problemas de caídas de entrada en el router de Internet de la serie 12000 de Cisco.
No hay requisitos previos específicos para este documento.
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
Router Cisco serie 7200
Cisco 7500 Series Router
’Router de Internet la serie Cisco 12000’
Todas las versiones del software Cisco IOS®
La información que se presenta en este documento se originó a partir de dispositivos dentro de un ambiente de laboratorio específico. All of the devices used in this document started with a cleared (default) configuration. Si la red está funcionando, asegúrese de haber comprendido el impacto que puede tener un comando antes de ejecutarlo.
El Descarte selectivo de paquetes (SPD) es un mecanismo para administrar las colas de entrada de niveles de procesos en el Procesador de ruta (RP). La meta de SPD es dar prioridad a los paquetes de protocolo de ruteo y otras señales importantes de mantenimiento de control de tráfico de la capa 2 durante períodos de congestionamiento de la cola al nivel del proceso.
Históricamente, en plataformas como los sistemas Cisco 7x00 y 7500 no CEF (Cisco Express Forwarding), el procesador de rutas enviaba una importante cantidad de paquetes de tránsito a fin de introducirlos en la memoria caché de fast switching. En consecuencia, en este caso, se requería que SPD diera prioridad a los paquetes del protocolo de ruteo sobre los paquetes de tránsito que comparten la misma cola.
Actualmente, en el router de Internet serie 12000 de Cisco y en el 7500 que ejecuta CEF, sólo el tráfico destinado al router propiamente dicho es enviado al nivel de procesamiento. En este caso, SPD se usa para priorizar paquetes de protocolo de ruteo ante la presencia de tráfico de administración, como el Protocolo de administración simple (SNMP) o cuando ocurre un ataque de Negación de servicio (DoS) que envía tráfico al RP.
En la serie 12000 de Cisco, cuando una tarjeta de línea determina que un paquete entrante necesita ser impulsado al RP para su procesamiento, el paquete viaja a través de la fibra del switch como Celdas de Cisco y, finalmente, es recibido por la Matriz de puerta de campo programable (FPGA) del Reensamblaje y segmentación de celdas de Cisco (CSAR).
El objetivo es manejar el tráfico entre el entramado de switches y RP CPU y es aquí donde se llevan a cabo las verificaciones SPD. Esto se aplica a los paquetes IP, los paquetes de Servicio de red no orientado a la conexión (CLNS), las señales de mantenimiento de Capa 2 y a los paquetes similares impulsados al RP. SPD efectúa dos controles y puede potencialmente dejar caer un paquete en uno de estos estados:
Verificación del estado de SPD
Control de la cola de entrada
La cola del proceso IP en el RP se divide en dos partes: una cola de paquetes general y una cola de prioridad. Los paquetes colocados en la cola de paquetes general están sujetos a la verificación de estado SPD, y los que se ponen en la cola de prioridad no lo están. Los paquetes que reúnen las condiciones para la cola de prioridades del paquete son los paquetes con prioridad alta, tales como aquellos con precedencia IP 6 ó 7 y no deben perderse. Sin embargo, los paquetes que no califican pueden descartarse aquí, según la longitud de la cola general de paquete en función del estado SPD. La cola del paquete general puede estar en tres estados y, como tal, los paquetes de baja prioridad se atienden de modo diferente:
NORMAL: tamaño de cola <= min
DESCARTE ALEATORIO: min <= tamaño de cola <= máx.
CAÍDA COMPLETA: max <= tamaño de cola
En el estado NORMAL, nunca eliminamos paquetes bien formados o deformados.
En el estado ARRANDAR, descartamos al azar paquetes bien formados. Si se configura el modo agresivo, descartamos todos los paquetes mal formados; de lo contrario, los tratamos como paquetes bien formados.
Nota: Estas caídas aleatorias se denominan flujos SPD. Básicamente, cuando la interfaz se sobrecarga, se producen purgas. Las pérdidas de memoria intermedia hacen que aumente el contador de purga.
En el estado FULL DROP, dejamos todos los paquetes correctos e incorrectos. Estos valores mínimos (predeterminados en 73) y máximos (predeterminados en 74) se derivan de la cola de retención más pequeña en el chasis, pero pueden ser anulados con los comandos globales ip spd queue min-threshold y ip spd queue max-threshold.
SPD se puede configurar para dos modos diferentes: normal (predeterminado) y agresivo. La única diferencia entre los dos es cómo el router supervisa paquetes IP no válidos (suma de comprobación no válida, versión incorrecta, longitud del encabezado incorrecta, longitud del paquete incorrecta). SPD descarta los paquetes de IP mal formados cuando estamos en modo agresivo y en estado de pérdida aleatoria. El modo agresivo se puede configurar usando el comando ip spd mode agresive.
Nota: El modo agresivo no se implementa en el router de Internet de la serie 12000 de Cisco, ya que los paquetes IP mal formados son descartados directamente por la tarjeta de línea de ingreso y estos paquetes no son impulsados al Procesador de ruta Gigabit (GRP). Como resultado, no se necesita el modo agresivo en esta plataforma en particular.
La cola de entrada se mantiene por interfaz de hardware, compartida entre todas las subinterfaces. Sin SPD, todos los paquetes se descartan si la cola de entrada está llena al recibirse el paquete. El tamaño predeterminado de la cola de entrada es 75 y se puede configurar por interfaz usando el comando de configuración de la interfaz hold-queue [size] en la interfaz. Puede verse la cantidad de paquetes en la cola de entrada en el campo de "cola de entrada" en el comando show interfaces.
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
Nota: La disminución del tamaño de la cola de entrada en una interfaz puede causar un gran número de caídas de entrada en todas las otras interfaces. Asegúrese de tener un tamaño de cola de retención de entrada mínimo de al menos 75.
Incluso con SPD, el comportamiento de los paquetes IP normales no se modifica; sin embargo, los paquetes del protocolo de ruteo reciben mayor prioridad porque SPD reconoce los paquetes del protocolo de ruteo por el campo de precedencia IP. Por lo tanto, si la precedencia IP se encuentra establecida en 6, entonces se le da prioridad al paquete.
SPD prioriza estos paquetes permitiendo que el software los envíe a la cola de entrada de nivel de proceso por encima del límite de la cola de entrada normal. La cantidad de paquetes permitidos que exceden el límite normal se denomina spd headroom (la cantidad predeterminada es 100), lo que significa que un paquete de alta precedencia no se pierde si el tamaño de la cola de espera de entrada es menor que 175 (tamaño predeterminado de la cola de entrada + tamaño spd headroom).
A partir de la versión 12.0(22)S del software Cisco IOS, el espacio en encabezado spd predeterminado es de 1000 para que el router de Internet de la serie 12000 de Cisco se adapte a redes SP más grandes. Esto se debe a que se utiliza la conexión entre pares de Protocolo de puerta de enlace marginal (BGP) con un número creciente de vecinos para anunciar una cantidad creciente de rutas por interfaces más rápidas. Una única compensación de BGP a menudo puede dar como resultado miles de caídas de cola de entrada en una sola interfaz, lo que puede dificultar seriamente los tiempos de convergencia.
La capacidad SPD headroom se puede configurar mediante el comando spd headroom. Su nivel actual se puede ver en la salida del comando show spd o 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
Nota: El tamaño de la cola normal IP también puede ser monitoreado por el comando show ip spd.
Hasta hace poco, los paquetes que no son de IP, como los paquetes de Connectionless Network Service Intermediate System-to-Intermediate System (CLNS ISIS), los paquetes del Point-to-Point Protocol (PPP) y las señales de mantenimiento del High-Level Data Link Control (HDLC) se trataban como prioridad normal como resultado de ser de Layer 2 en lugar de Layer 3. Además, Interior Gateway Protocols (IGPs) que operan en capa 3 o superior se le dieron prioridad sobre los paquetes IP normal, pero le dió la misma prioridad como paquetes de BGP. Por lo tanto, durante la convergencia BGP o durante momentos de actividad BGP muy elevada, los mensajes de saludo y las señales de mantenimiento del IGP a menudo se descartaban; de esta manera, las adyacencias IGP dejaban de funcionar.
Dado que la estabilidad de IGP y de los links es mucho más tenue e importante que la estabilidad de BGP, tales paquetes adquieren ahora la prioridad más alta y un espacio en encabezado SPD extendido con un valor predeterminado de 10 paquetes. Esto significa que los paquetes no se eliminan si el tamaño de la cola de retención de entrada es inferior a 185 (tamaño predeterminado de la cola de entrada + tamaño de margen de SPD + margen extendido de SPD).
El encabezado SPD extendido se puede configurar mediante el comando spd extended [size], y su nivel actual se puede ver a partir del resultado del comando show spd o 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
Nota: En el router de Internet de la serie 12000 de Cisco, las señales de mantenimiento HDLC y PPP, junto con los paquetes del protocolo de ruteo CLNS ISIS, se tratan como de alta prioridad y se pueden poner en cola en el encabezado SPD extendido desde la versión 12.0(12)S1 del software del IOS de Cisco. Desde la versión 12.0(18)S del software del IOS de Cisco, todos los paquetes IGP se pueden poner en cola también en el encabezado SPD extendido.
Antes del lanzamiento de la versión 12.0(22)S del software Cisco IOS, los valores predeterminados eran:
Tamaño de la cola de entrada = 75
Tamaño de sala SPD = 100
Tamaño de margen ampliado = 10
Luego del lanzamiento de la versión 12.0(22) del software del IOS de Cisco, los valores predeterminados son:
Tamaño de la cola de entrada = 75
Tamaño de sala SPD = 1000
Tamaño de margen ampliado = 10
En el primer caso, esto ofrece:
Los paquetes IP con procedencia normal tienen permitido hacer cola hasta el límite de cola predeterminado (75).
A los paquetes IP de alta prioridad se les permite permanecer en cola hasta el límite de cola predeterminado + spd_headroom (175 o 1075 dependiendo de la versión del software del IOS de Cisco)
Los paquetes de señal de mantenimiento CLNS, IGP y LC pueden almacenarse en cola hasta el límite de cola predeterminado + spd_headroom + spd_ext_headroom (185 ó 1085 según la versión de software del IOS de Cisco).
Aquí se proporcionan consejos o información adicional acerca de SPD:
En forma predeterminada, SPD está en estado "activado". Se puede habilitar/inhabilitar usando el comando spd enable global.
Inicialmente, SPD estaba disponible únicamente en las interfaces de Paquete sobre Sonet (PoS).
Antes de la versión 12.0(21)S del software Cisco IOS, SPD no funcionaba sobre tarjetas de línea Gigabit Ethernet (Motor 1 y Motor 2) y sobre tarjetas de línea Fast Ethernet instaladas en un router de Internet de la serie Cisco 12000. La cola de retención de entrada tuvo que ser incrementada para almacenar los paquetes en exceso.
En los routers de las series 7200/7500, de Cisco el contador SPD de purgación (descarte) puede observarse en el resultado del comando show interfaces a partir de las versiones de software del IOS de Cisco 12.1(1), 12.(1)T y 12.0(9)ST para almacenamiento en cola sin FIFO (Primero en entrar primero en salir) y desde 12.2(7), 12.2(7)T y 12.1(7)E para almacenamiento en cola FIFO. En otras versiones y en el Cisco 12000 Series Internet Router, este contador sólo se ve ingresando el comando show interface switching. Por ejemplo, el comando show interface pos 0/1 switching se puede utilizar para ver flujos SPD, caídas agresivas y prioridad.
Aquí tiene un ejemplo:
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