Introducción
En primer lugar, permítanme escribir que paso la mayor parte del verano tratando de encontrar la manera correcta de hacer esto. Además, tuve que contratar un CCIE a tiempo completo durante una semana más o menos para ayudar y en el proceso tuvimos Cisco TAC tratando de descubrir un error en nuestros conmutadores de la serie 6500.
¿Por qué harías esto?
Hoy hay una explosión virtual de aplicaciones de medios enriquecidos en la red IP. Esta explosión de contenido y tipos de medios, tanto administrados como no administrados, requiere que los arquitectos de redes revisen sus diseños de calidad de servicio (QoS).
El primer paso puede parecer obvio y superfluo, pero en realidad es crucial: defina claramente los objetivos comerciales que sus políticas de QoS deben permitir. Estos pueden incluir cualquiera / todos de los siguientes:
- Garantizar la calidad de voz cumple con los estándares empresariales.
- Garantizar una alta calidad de experiencia (QoE) para video.
- Aumento de la productividad del usuario al aumentar los tiempos de respuesta de la red para aplicaciones interactivas.
- Administrar aplicaciones que son "cerdos de ancho de banda".
- Identificación y eliminación de prioridades de aplicaciones de consumo.
- Mejora de la disponibilidad de la red.
- Fortalecimiento de la infraestructura de red.
Con estos objetivos en mente, los arquitectos de redes pueden identificar claramente qué aplicaciones son relevantes para su negocio. Por el contrario, esta experiencia también hará evidente qué aplicaciones no son relevantes para lograr los objetivos comerciales. Dichas aplicaciones podrían ser aplicaciones orientadas al consumidor y / o entretenimiento. Al final todo depende de ti.
La solución
Quería hacer esto lo más fácil y libre de configuración posible. Con eso en mente, combinado con el hecho de que QoS siempre debe procesarse en hardware, el CCIE que contraté me recomendó utilizar la función Auto-QoS en Cisco.
Por lo tanto, en lugar de marcar el tráfico en el nivel de acceso, los usuarios finales o los servidores pueden realizar el marcado. Auto-QoS proporciona las clases correctas para el transporte del tráfico a través de la red. Esto me permitió decidir qué aplicaciones o servicios deberían priorizarse o no priorizarse a través de las políticas de grupo de directorio activo.
Para empezar, quería hacerlo simple. Esto significaba priorizar las aplicaciones de VoIP y Video, que ya está predefinida en Auto-QoS cuando está utilizando dispositivos IP de Cisco / TelePresence / Cameras, etc., lo cual hacemos.
Resumen de topología
Hacemos uso de los siguientes equipos de acceso / núcleo.
- Núcleo: Cisco 897 series, Cisco 3650 Series, Cisco 3850 Series y Cisco 6500 Series
- Acceso: Cisco 3560CX Compact series y Cisco 2960X Series
Nuestra topología se basa principalmente en una topología en estrella, observe el siguiente dibujo de topología (Utilizamos BGP en nuestra WAN MPLS):
QoS en la capa de acceso
La configuración es muy simple y directa, cuando se utiliza Auto-QoS. Remarcar el tráfico y enviarlo al MPLS ISP es un poco más complicado, pero mostraré ejemplos a continuación.
Todos los conmutadores de acceso están configurados con Auto-QoS, donde todos los puertos de acceso y troncales / enlaces ascendentes son confiables con DSCP. Observe la siguiente tabla de QoS, donde todos los valores para DSCP, CoS, ToS, etc. se configuran en una tabla. Esto proporciona una buena visión general de las clases seleccionadas y la estructura en la que estoy tratando de lograr en mi diseño:
Auto-QoS utiliza los valores de AF (reenvío asegurado) para el marcado DSCP.
Habilitar Auto-QoS en el interruptor de acceso
Configuración global
mls qos (Activates QoS)
mls qos map cos-dscp 0 8 16 24 32 46 48 56 (Maps CoS to DSCP values, because CoS is a layer 2 marking, which cannot be routed)
auto qos srnd4 (Autogenerates all configuration in accordance to Cisco best practice SRND4 standard)
Configuración del puerto
auto qos trust dscp (Activates QoS and trusts DSCP on a port)
priority-queue out (Sends all traffic to the priority queues)
Eso es todo, el conmutador y los puertos ahora ejecutarán Auto-QoS.
Guía de configuración de Auto-QoS para la serie 2960X: https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960x/software/15-0_2_EX/qos/configuration_guide/b_qos_152ex_2960-x_cg/ b_qos_152ex_2960-x_cg_chapter_011.html
Habilitar Auto-QoS en la capa Core
Hay una gran diferencia en la forma en que QoS es manejado por los conmutadores Core. Cisco 6500 Series no es compatible con Auto-QoS SRND4, por lo tanto, tendremos que configurar manualmente QoS y asignarlo a las clases correctas para preservar el diseño de Auto-QoS. Las series Cisco 3650 y 3850 admiten Auto-QoS SRND4 y, por lo tanto, es bastante simple de configurar:
Habilitar Auto-QoS en las series 3650 y 3850
Configuración global
auto qos srnd4 (Activates and autogenerates the QoS configuration)
Configuración del puerto
auto qos trust dscp (Activates and autogenerates the QoS configuration)
Al conectar el Core al MPLS ISP, queremos comentar el tráfico en 5 clases (porque esto es lo que admite nuestro ISP). Esto es así, que el tráfico se priorizará a través del MPLS a todas las ubicaciones en la topología (consulte el dibujo como referencia). Su ISP puede ser diferente y, por lo tanto, el comentario debe hacerse para que se ajuste a su diseño. El siguiente ejemplo es cómo comenta todo el tráfico en 5 clases.
Debe copiar el mapa de políticas "AutoQos-4.0-Output-Policy" de Auto-QoS generado automáticamente y luego crear uno nuevo. DEBE utilizar los mismos mapas de clase generados por Auto-QoS. Si intenta crear el suyo propio, se ignorarán, por lo tanto, se utilizan los mismos mapas de clase y el marcado se realiza a partir de esas clases:
policy-map WAN-OUTPUT-QoS (The name can be whatever you like)
class AutoQos-4.0-Output-Priority-Queue
set dscp ef
priority level 1 percent 10
class AutoQos-4.0-Output-Control-Mgmt-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af21
class AutoQos-4.0-Output-Multimedia-Conf-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af41
class AutoQos-4.0-Output-Trans-Data-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af21
class AutoQos-4.0-Output-Bulk-Data-Queue
bandwidth remaining percent 2
queue-buffers ratio 10
set dscp default
class AutoQos-4.0-Output-Scavenger-Queue
bandwidth remaining percent 1
queue-buffers ratio 10
set dscp cs1
class AutoQos-4.0-Output-Multimedia-Strm-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af41
class class-default
bandwidth remaining percent 25
Las 5 clases se priorizarán en adelante y se enviarán al MPLS de la siguiente manera:
- Valor DSCP AF: EF (VoIP)
- Valor DSCP AF: af41 (Todos los medios de video)
- Valor DSCP AF: af21 (datos transaccionales, etc.)
- Valor DSCP AF: predeterminado (AF = 0 y DSCP = 0 Datos masivos, por ejemplo)
- Valor DSCP AF: cs1 (clase Scavenger para Bittorrent, etc.)
Los porcentajes de ancho de banda se usan como restantes. Esto significa que todas las clases pueden usar el 100% del ancho de banda y el préstamo de las otras clases si no se usa el ancho de banda. Es como compartir el ancho de banda, lo que significa que cualquiera que sea la clase con prioridad más alta podrá enviar tráfico si el enlace está congestionado.
Las clases y los porcentajes del mapa de políticas se pueden modificar según sea necesario para satisfacer sus requisitos individuales.
En el enlace ascendente del puerto al ISP, se debe configurar lo siguiente:
interface XXX
auto qos trust dscp
service-policy input AutoQos-4.0-Trust-Dscp-Input-Policy
service-policy output WAN-OUTPUT-QoS
Eso es todo para las series 3650 y 3850.
Habilitación de QoS en la serie 6500
La serie 6500 no es compatible con Auto-QoS SRND4. Es muy básico y solo comprende los valores de CoS de capa 2 para VoIP. Esto significa que debe configurar todas las QoS desde cero, para adaptarse a la infraestructura de Auto-QoS desde la capa de acceso. La QoS debe configurarse según el módulo que esté instalado en el chasis. También debe crear mapas de políticas para la entrada y la salida (entrada / salida).
El Supervisor solo entiende CoS entre el módulo y el ASIC en el chasis.
Para activar Auto-QoS para CoS, debe utilizar el siguiente comando global:
auto qos default
Esto creará un mapa de tabla de CoS a DSCP, pero no todos los valores cumplen con el estándar Auto-QoS SRND4 (CoS 7 se asigna a 54, que debería ser 56). Por lo tanto, deberá eliminar el mapa de tabla y reemplazarlo con lo siguiente:
no table-map cos-discard-class-map
table-map cos-discard-class-map
map from 0 to 0
map from 1 to 8
map from 2 to 16
map from 3 to 24
map from 4 to 32
map from 5 to 46
map from 6 to 48
map from 7 to 56
Para crear QoS y mapas de políticas, necesitamos averiguar qué modelo de colas está utilizando un módulo. En el siguiente ejemplo, la cola Ingress y Egress es la misma, pero en algunos módulos las colas Rx y Tx son diferentes y, por lo tanto, deberá crear mapas de políticas de acuerdo con el modelo de colas. Para averiguar qué modelo de colas está utilizando una interfaz, debe emitir el siguiente comando. El siguiente ejemplo se basa en el módulo: C6800-16P10G
show queueing interface xxx | sec Transmit queues
Transmit queues [type = 1p7q4t]
show queueing interface xxx | sec Receive queues
Receive queues [type = 1p7q4t]
Tal como están escritas, las colas son las mismas en este módulo y, por lo tanto, podemos usar la misma política para entrada y salida.
1p7q4t básicamente significa: 1 cola prioritaria, 7 colas normales, donde las 7 colas normales tienen 4 umbrales. Puede obtener más información buscando el nombre del módulo y haciendo cola. Este módulo, el C6800-16P10G, se explica en este enlace:
https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-6800-series-switches/datasheet-c78-733662.html
Ver tabla 1, Colas.
En primer lugar, necesitamos crear los mapas de clase, que se utilizarán para todos los mapas de políticas. Esto coincidirá con los valores de DSCP para las clases individuales que coinciden con las clases de Auto-QoS SRND4. Tenga en cuenta que los mapas de clase se crean como colas lan con la instrucción match-all, que funciona como AND / OR en la programación. match-all = AND & match-any = OR.
Consulte la siguiente guía de configuración; Diseño de Cisco Campus QoS simplificado, donde se proporcionan ejemplos de configuración para diferentes módulos en la parte inferior de la presentación:
http://honim.typepad.com/files/campus-qos-design-simplified-brkcrs-2501.pdf
225 páginas, el enlace es lento.
Creación de mapas de clase (configuración global):
class-map type lan-queuing match-all REALTIME-1P7Q4T
match dscp cs4 cs5 ef
class-map type lan-queuing match-all CONTROL-1P7Q4T
match dscp cs2 cs3 cs6 cs7
class-map type lan-queuing match-all MM_CONF-1P7Q4T
match dscp af41 af42 af43
class-map type lan-queuing match-all MM_STREAM-1P7Q4T
match dscp af31 af32 af33
class-map type lan-queuing match-all TRANS_DATA-1P7Q4T
match dscp af21 af22 af23
class-map type lan-queuing match-all BULK_DATA-1P7Q4T
match dscp af11 af12 af13
class-map type lan-queuing match-all SCAVENGER-1P7Q4T
match dscp cs1
Puede cambiar los nombres o editar a su gusto, para satisfacer sus necesidades.
Después de crear los mapas de clase, crearé el mapa de políticas. Define la prioridad del valor DSCP y establece el ancho de banda en las diferentes colas, después de que coincida con un valor DSCP.
policy-map type lan-queuing 1P7Q4T
class REALTIME-1P7Q4T
priority
class CONTROL-1P7Q4T
bandwidth remaining percent 10
class MM_CONF-1P7Q4T
bandwidth remaining percent 20
random-detect dscp-based
random-detect dscp af41 percent 80 100
random-detect dscp af42 percent 70 100
random-detect dscp af42 percent 60 100
class MM_STREAM-1P7Q4T
bandwidth remaining percent 15
random-detect dscp-based
random-detect dscp af31 percent 80 100
random-detect dscp af32 percent 70 100
random-detect dscp af33 percent 60 100
class TRANS_DATA-1P7Q4T
bandwidth remaining percent 15
random-detect dscp-based
random-detect dscp af21 percent 80 100
random-detect dscp af22 percent 70 100
random-detect dscp af23 percent 60 100
class BULK_DATA-1P7Q4T
bandwidth remaining percent 9
random-detect dscp-based
random-detect dscp af11 percent 80 100
random-detect dscp af12 percent 70 100
random-detect dscp af13 percent 60 100
class SCAVENGER-1P7Q4T
bandwidth remaining percent 1
class class-default
random-detect dscp-based
random-detect dscp default percent 80 100
Después de crear el mapa de políticas, debe aplicarlo a una interfaz:
interface xxx
service-policy type lan-queuing input 1P7Q4T
service-policy type lan-queuing output 1P7Q4T
Para verificar su configuración y ver que se está haciendo cola, puede usar el siguiente comando (puede que necesite cerrar / no cerrar la interfaz para que surta efecto):
show queueing interface xxx
Para comentar el tráfico en la serie 6500, debe crear nuevos mapas de clase y un nuevo mapa de políticas. Los mapas de clase no se crean como colas lan y la declaración de coincidencia es match-any = OR en lugar de match-all, ya que queremos verificar múltiples valores uno tras otro. Entonces, si el primer valor no coincide con el paquete, se comprobará el siguiente y así sucesivamente.
Quiero señalar que aquí es donde tuvimos que involucrar a Cisco TAC, porque surgió el siguiente error:
https://bst.cloudapps.cisco.com/bugsearch/bug/CSCuz52151
En su lugar, tuvimos que cambiar los mapas de clase para que no coincidan con los valores de AF a los valores DSCP sin procesar (clase de descarte). También tuvimos que actualizar el switch a la versión 152-1.SY5 (MD). Después de seguir estas instrucciones no hemos tenido ningún problema desde entonces.
La configuración es la siguiente:
class-map match-any WAN-HIGH
match discard-class 32
match discard-class 40
match discard-class 46
class-map match-any WAN-GOLD
match discard-class 26
match discard-class 28
match discard-class 30
match discard-class 34
match discard-class 36
match discard-class 38
class-map match-any WAN-SILVER
match discard-class 16
match discard-class 18
match discard-class 20
match discard-class 22
match discard-class 24
match discard-class 48
match discard-class 56
class-map match-any WAN-BEST_EFFORT
match discard-class 0
match discard-class 10
match discard-class 12
match discard-class 14
class-map match-any WAN-SCAVENGER
match discard-class 8
Después de esto creamos el mapa de políticas:
policy-map WAN-OUTPUT-QoS
class WAN-HIGH
set dscp ef
class WAN-GOLD
set dscp af41
class WAN-SILVER
set dscp af21
class WAN-BEST_EFFORT
set dscp default
class WAN-SCAVENGER
set dscp cs1
Luego necesitamos aplicarlo a una interfaz:
interface xxx
service-policy output WAN-OUTPUT-QoS
service-policy type lan-queuing input 1P7Q4T
Eso es. Espero que esta información te ayude. Entiendo cuando la gente dice que QoS es complicado. Se puede hacer de varias maneras y el ejemplo anterior es solo una muestra de cómo se puede hacer. Sé que Cisco está trabajando para difundir el estándar Auto-QoS SRND4 a más y más dispositivos para ayudar a crear una buena base para la Calidad de Servicio.