10 de noviembre de 2006

¿Qué es AutoQos?

Con el avance progresivo de las redes convergentes, y particularmente de algunos servicios como los de telefonía y video sobre IP (CoIP comunicaciones sobre IP) se ha introducido un concepto que es cada día más generalizado: Calidad de Servicio (QoS).

Paralelamente, y como ya nos tiene acostumbrados, Cisco marcha a la vanguardia de la introducción de estas nuevas tecnologías y propuestas. Cisco IOS implementa hoy varios métodos diferentes de implementación de QoS, tantos y tan complejos como para que se haya dedicado libros completos solamente al tema.

Pues bien, Cisco ha desarrollado una nueva forma de QoS denominada AutoQoS y que tiene como propósito facilitarle al Administrador de la red el seteo básico de los atributos de QoS.

Revisemos primero lo básico
QoS ofrece entre otros, estos beneficios:

  • Prioriza el tráfico que es sensible al delay; por ejemplo, para asegurarnos de que el tráfico de voz no sea afectado por un delay excesivo se le da prioridad al momento de reenviarlo.
  • Prioriza tráfico de modo tal que las aplicaciones no-críticas para la operación de la empresa no ralenticen o entorpezcan el tráfico que corresponde a aplicacíones críticas para el negocio de la empresa.
  • Prioriza tráfico para asegurar que tráfico indeseable en la red no sobrecargue el uso de ancho de banda.
  • Preservar el ancho de banda dilatando el reenvío de información no crítica para la empresa.

En dispositivos Cisco IOS se puede configurar QoS de diferentes modos. Las 4 opciones principales son:

  • Configurar QoS manualmente creando listas de acceso para identificar tráfico que luego es controlado con comandos específicos de QoS.
  • Utilizar el QoS Wizard de SDM (Security Device Manager) de Cisco para crear políticas QoS predefinidas que pueden ser editadas más tarde.
  • Utilizar AutoQoS para crear políticas basadas en el flujo de tráfico en tiempo real a través del router o switch.
  • Utilizar AutoQos para crear políticas predefinidas para el flujo de tráfico de VoIP a través de los dispositivos Cisco IOS.

Los beneficios de AutoQoS
AutoQoS se encuentra disponible en los routers Cisco IOS desde la serie 2600 hasta la serie 7200 y también en la mayoría de los routers Cisco que utilizan versiones de IOS 12.2(15)T y posteriores. AutoQoS ofrece los siguientes beneficios:

  • No requiere una comprensión avanzada de QoS del mismo modo que si se desea configurar desde la línea de comandos.
  • Se pueden modificar las políticas de QoS y reutilizarlas, del mismo modo que si se tratara de un template.
  • Se ahorra mucho tiempo de configuración.

Antes de ejecutar los comandos AutoQoS, se debe habilitar CEF utilizando el comando

Router(config)#ip cef

Adicionalmente se requiere la configuración de la declaración de ancho de banda en las interfaces ya que AutoQoS utiliza esta información cuando se configuran limitaciones de ancho de banda por protocolo para ser priorizados.

Router(config)#interface serial0/0
Router(config-if)#bandwidth 2000000

Si se modifica la configuración de este parámetro una vez que se activó AutoQoS, será necesario reiniciar AutoQoS. También es necesario tener presente no configurar AutoQoS en modo configuración global, sino en las interfaces.

Configuración de AutoQoS
Su configuración es muy simple y fácil, lo verdaderamente complicado es comprender qué es lo que se está configurando, modificar la configuración si es necesario, y probar lo hecho para ver si funciona como se esperaba. A modo de ejemplo configuremos AutoQoS para VoIP.

AutoQoS para VoIP opera sobre cierto tipo de interfaces. El ejemplo más simple es su activación en un enlace E1 punto a punto entre las interfaces seriales de 2 routers que utilizan este enlace para enviar tráfico de VoIP.

Para configurar AutoQoS, la secuencia de comandos en la interfaz que hace de origen del tráfico que deseamos controlar es:

Router(config)#interface serial0/0
Router(config-if)#auto qos voip

Con ese solo comando, Cisco IOS automáticamente genera una serie de comandos de configuración que se pueden verificar utilizando show running-config:

class-map match-any AutoQoS-VoIP-Remark
.match ip dscp ef
.match ip dscp cs3
.match ip dscp af31
class-map match-any AutoQoS-VoIP-Control-UnTrust
.match access-group name AutoQoS-VoIP-Control
class-map match-any AutoQoS-VoIP-RTP-UnTrust
.match protocol rtp audio
.match access-group name AutoQoS-VoIP-RTCP
!
!
policy-map AutoQoS-Policy-UnTrust
.class AutoQoS-VoIP-RTP-UnTrust
..priority percent 70
..set dscp ef
.class AutoQoS-VoIP-Control-UnTrust
..bandwidth percent 5
..set dscp af31
.class AutoQoS-VoIP-Remark
..set dscp default
.class class-default
..fair-queue
!

interface Serial0/0
.auto qos voip
.service-policy output AutoQoS-Policy-UnTrust
!
ip access-list extended AutoQoS-VoIP-Control
.permit tcp any any eq 1720
.permit tcp any any range 11000 11999
.permit udp any any eq 2427
.permit tcp any any eq 2428
.permit tcp any any range 2000 2002
.permit udp any any eq 1719
.permit udp any any eq 5060
ip access-list extended AutoQoS-VoIP-RTCP
.permit udp any any range 16384 32767


Calma... no es el objeto de este artículo analizar estas modificaciones :)
Si deseás comprenderlas, sugiero estudiar en serio QoS. Simplemente pretende que tomemos conciencia de lo que quise decir al afirmar que la configución de AutoQoS es fácil, y que lo complejo es comprender lo que se está haciendo y mucho más modificar este configuración.

Algunos elementos básicos para comprender lo que está haciendo:

  • Las listas de acceso definen cierto tipo de tráfico.
  • Los class-maps convierten ese tráfico en clases. El comando identifica el tráfico que debe colocar en cada clase a través de la lista de acceso.
  • El policy-map asigna prioridades a las clases.
  • Ese policy-map está aplicado a la interface, para afectar el tráfico que sale a través de ella.

Este mismo procedimiento debe aplicarse en la interfaz del otro extremo del enlace, Es altamente recomendable implementar primero este comando en un laboratorio de prueba, antes de utilizarlo en la red en producción.

Ir A la información sobre la Guía

Recursos en línea:

¿Tenés alguna información adicional para aportar en este tema....?
Perfecto!!!! agregá un comentario con el detalle.
Muchas gracias.
Oscar Gerometta

24 comentarios:

  1. Muy alclarador tu artículo. Soy usuaria de las comunicaciones IP desde hace unos años, en concreto utilizo los servicios de PeopleCall (http://www.peoplecall.com) y estoy convencida de que a corto plazo la telefonía IP se impondrá, ya lo está haciendo, como la única alternativa real a la tradicional. Imagino que es también cuestión de tiempo que en torno a un fenómeno de estas características comience a surgir una terminología propia, de la que, tú, con este artículo, empiezas a darnos pistas.

    Gracias.

    ResponderEliminar
  2. Yo tengo una duda. Esto vale por ejemplo para comunicar dos centralitas remotas las cuales las tengo comuniacdas por dos routers cisco. mi pregunta es. Si yo quiero hacer Qos voip para las llamadas salientes hacia mi ISP de Voip yo logicamento no tengo acceso a su router por lo tanto no puedo configurar el autoqos. Valdría con hacerlo solo en mi router ? o tendría que configurarlo de otra forma ?

    saludos

    ResponderEliminar
  3. Estimado.
    No tengo muy claro cómo es tu red. Hablás de 2 "centralitas", pero también de un SP de VoIP. De cualquier modo, la implementación de calidad de servicio tiene sentido en la medida en que tenemos control de la totalidad de la ruta que debe recorrer el circuito. De lo contrario, en el punto en que no tenemos control el tráfico puede ser categorizado de otra forma, o al menos ser tratado con modalidad FIFO, con lo que no tiene sentido la implementación de QoS.
    Saludos.

    ResponderEliminar
  4. Entendido. En caso de que quiera dar preferencia a los paquetes voip para llamadas salientes a internet sobre otro tipo de paquetes, que podría usar?

    Gracias

    ResponderEliminar
  5. En ese caso, si el único propósito es priorizar el tráfico de voz en la interfaz de salida a Internet, la activación de autoqos voip puede ser suficiente.
    Saludos.

    ResponderEliminar
  6. Hola

    Me surge una duda. Veo que el AutoQoS hace referencia al protocolo RTP/RTCP para priorizar. Si yo trabajo con el protocolo IAX ¿que opciones tengo?

    ResponderEliminar
  7. AutoQos es un macro predefinido que detecta explícitamente esos protocolos.
    Si necesitás aplicar calidad de servicio a otros protocolos deberás configurar manualmente utilizando MQC.

    ResponderEliminar
  8. Hola... Tengo en mi red dos gateways de voz y varios servidores asterisk, y he activado en mi catalyst autoqos para las interfaces donde estan conectados (tanto gw como servidores). Mi duda es la siguiente:
    AutoQoS está priorizando el trafico voip en esas interfaces (practicamente por esas interfaces solo hay trafico voip) o esta priorizando el trafico voip a nivel global, es decir, da prioridad a estas interfaces sobre las demas.??
    Muchas gracias.

    ResponderEliminar
  9. Tomás
    La priorización de tráfico se realiza por interfaz, y así es como opera AutoQos, que además, haz activado en las interfaces de tu elección.
    Una nota a la implementación que mostrás.
    QoS es más que solamente priorizar tráfico. Esa priorización depende del modo en que se encuentra marcado ese tráfico. Los únicos que generan tráfico de voz no son los servidores Astericks y los gateways. También los dispositivos terminales generan tráfico de voz. ¿Verificaste cómo está siendo marcado el tráfico en cada caso?

    ResponderEliminar
  10. Muy interesante este artículo Oscar.

    Tengo una duda que quizás puedas aclararme, ¿es posible la configuracióne de manera remota y asíncrona (iniciando el proceso desde el servidor) ?

    Gracias.

    ResponderEliminar
  11. Antia
    En principio podés operar accediendo SDM con http o https. SDM te permite configurarlo de modo que los comandos no se envían hasta que das tu orden.
    Sin embargo esto no permite hacer operaciones programadas.
    La otra opción para hacerlo remotamente es utilizar alguna consola de management remoto vía SNMP, como por ejemplo CiscoWorks.

    ResponderEliminar
  12. HOLA ME GUSTA SUS materi pero me gustaria saber o que me acesore como implementar QOS EN VOIP CON EQUIPOS CISCO

    ResponderEliminar
  13. Estimado.
    La implementación detallada de QoS en una red, sea para VoIP u otro objetivo, requiere un análisis detallado de la misma y de las políticas de la organización que utiliza la red para sus comunicaciones.
    Si lo que estás buscando es hacerlo por tí mismo, y tienes conocimientos limitados en el tema, te sugiero utilizar el feature de AutoQoS, el que te va a permitir una implementación completa extremo a extremo, sin necesidad de conocer en profundidad el tema.
    Ahora... si tu red no es completa Cisco, o no soporta AutoQos, no hay otra solución que sentarse a trabajar. En ese caso, si tus conocimientos son limitados deberías buscar una consultoría.
    Si te fijas, al final del post vas a encontrar los enlaces que te llevarán a la documentación de AutoQoS en el sitio de Cisco.

    ResponderEliminar
  14. Estimado Oscar, tengo un router 2911 k9, trate de ejecutar sdm pero me dice que no es compatible el ios es 15.01, debo instalar tambien el sdm en el router o este no esta soportado??

    Tengo 2 ejecutando vpn con ipsec, pero quiero priorizar voip uso asterisk con iax y gsm, el auto qos seria suficiente según tu articulo verdad??

    Gracias por vuestros articulos.

    Saludos.
    -PEDRO.

    ResponderEliminar
    Respuestas
    1. Pedro.
      SDM ha sido discontinuado como interfaz gráfica en los ISR y no está soportado en IOS 15.x
      Debieras utilizar la plataforma nueva: CCP, que es igualmente libre y muy semejante a SDM.
      Puedes consultar la información correspondiente en este post: http://librosnetworking.blogspot.com.ar/2010/12/una-nueva-interfaz-grafica-ccp.html

      Eliminar
  15. Dos dudas acerca de Qos. La primera cuando yo configuro una cola de prioridad estricta con un limite. ¿Qué sucede cuando supera este limite y el resto de la red necesita enviar datos? ¿Lo encola y lo trata como default? ¿Se pueden aplicar dos policy map en una interfaz uno de entrada y otro de salida? ¿Cada class-map define una cola?

    ResponderEliminar
  16. Son varias :)
    En primer lugar, la cola de prioridad estricta establece un límite estricto (valga la redundancia) al volumen de tráfico. Todo tráfico que exceda el límite será descartado. Eso significa una cola de prioridad estricta.
    Se puede aplicar sólo un polily-map sobre el tráfico entrante y uno sobre el tráfico saliente por interfaz.
    De acuerdo a lo que estés haciendo (no se en qué contexto preguntás por el class-map) cada class-map define una cola de memoria en la medida en que está utilizado dentro de un policy-map y aplicado a una interfaz.

    ResponderEliminar
  17. Efectivamente el class map lo preguntaba en el contexto de las qos para luego aplicarlo en un policy-map y en una interfaz. Respecto al cola de prioridad estricta con el comando priority yo había leido que si había suficiente ancho de banda ese tráfico seguía enviándose, siempre y cuando el resto del tráfico no necesitase enviar. Efectivamente el policy-map se puede aplicar en entrada. Pero me refería a que en un puerto WAN que yo he marcado el tráfico de salida hacía ¿tiene sentido aplicar un policy-map de entrada?

    ResponderEliminar
    Respuestas
    1. Es correcto tu planteo de marcación del tráfico. Pero en una red WAN, recibes tráfico que puedes haber marcado en otro sector de la red. Como por ejemplo, una sucursal puede recibir tráfico desde la casa central y ya lo recibe marcado.
      Respecto del comando priority, ese comando limita (es un policy) el ancho de banda. El comando que permite utilizar el ancho de banda remanente es bandwidth, pero en este caso no es una cola de prioridad estricta.

      Eliminar
  18. Hola Oscar un gusto saludarte, yo tengo un cisco 2960 y lo tengo conectado hacia un servidor polycom en donde me pongo en contacto con nuestras sucursales a traves de video conferencias, la pregunta seria para esa interfaz del switch como aplicarias los comandos del QOS?

    ResponderEliminar
    Respuestas
    1. Andrés
      Calidad de servicio no es primariamente un tema de comandos de implementación, sino de diseño. La implementación de calidad de servicio debe considerarse la integridad de la ruta en función del servicio; en tu caso la ruta entre las terminales de video conferencia y el servidor, y la ruta entre terminales. Implementar QoS en un puerto de un dispositivo no tiene efecto real en la implementación si luego de ese puerto no hay tratamiento diferencial del tráfico. Sobre todo si tienes una WAN en el medio.

      Eliminar
  19. Interesante respuesta Oscar, segun desde mi perspectiva en base a lo que me acabas de decir, creo que el qos va depender tambien de como tengamos controlado el trafico, un ejemplo claro los ( ACL ) porque si en este momento configuro qos en donde esta conectado el server video conferencias no tendria efecto porque actualmente no tengo implementado listas de acceso.

    ResponderEliminar
    Respuestas
    1. Si te refieres a que es necesaria una implementación de seguridad previa, no; la implementación de seguridad y la de QoS son independientes, como son independientes las políticas. Por supuesto que si priorizo un tráfico que luego está bloqueado, de nada sirve priorizarlo.
      Y si te refieres a la misma implementación de QoS, eso es relativo. Se pueden utilizar ACLs para clasificar el tráfico que se desea priorizar, pero esto dependerá en tu caso, en primer lugar, de cómo opera el servidor de videoconferencia. En muchos casos estos servidores ya generan el tráfico marcado a nivel de capa 2 y capa 3, con lo que es un paso que puede evitarse según cómo se implemente la política.

      Eliminar

Gracias por tu comentario.
En este blog los comentarios están moderados, por lo que su publicación está pendiente hasta la revisión del mismo.