En este capítulo se explica cómo crear archivos de configuración IPQoS. El capítulo trata los siguientes temas.
Definición de una directiva QoS en el archivo de configuración IPQoS (Mapa de tarea)
Crear un archivo de configuración IPQoS para un servidor de aplicaciones
En este capítulo se asume que el usuario ha definido una directiva QoS completa y que está listo para utilizarla como base para el archivo de configuración IPQoS. Si necesita instrucciones sobre la planificación de directivas QoS, consulte el tema Planificación de la directiva de calidad de servicio.
Este mapa de tarea enumera las tareas generales para crear un archivo de configuración IPQoS y contiene vínculos a las secciones en que se describe cómo realizar esas tareas.
Tarea |
Descripción |
Para obtener instrucciones |
---|---|---|
1. Planificar la configuración de red con IPQoS. |
Decidir qué sistemas de la red local van a utilizar IPQoS. | |
2. Planificar la directiva QoS para sistemas IPQoS de la red. |
Identificar flujos de tráfico como diferentes clases de servicio. A continuación, determinar qué flujos requieren administración del tráfico. | |
3. Crear el archivo de configuración IPQoS y definir la primera acción. |
Crear el archivo IPQoS, invocar el clasificador IP y definir una clase para procesar. |
Cómo crear el archivo de configuración IPQoS y definir las clases de tráfico |
4. Crear filtros para un clase. |
Añadir los filtros que determinan qué tráfico se selecciona y organiza en una clase. | |
5. Añadir más clases y filtros al archivo de configuración IPQoS. |
Crear más clases y filtros para que los procese el clasificador IP. |
Cómo crear un archivo de configuración IPQoS para un servidor web "Best-Effort" |
6. Añadir una instrucción action con parámetros para configurar los módulos de medición. |
Si la directiva QoS solicita control de flujo, asigne tasas de control de flujo y niveles de cumplimiento al medidor. |
Cómo configurar el control de flujo en el archivo de configuración IPQoS |
7. Añadir una instrucción action con parámetros para configurar el marcador. |
Si la poítica QoS solicita comportamientos de reenvío diferenciados, defina cómo deben reenviarse las clases de tráfico. |
Cómo definir el reenvío de tráfico en el archivo de configuración IPQoS |
8. Añadir una instrucción action con parámetros para configurar el módulo de control de flujo. |
Si la directiva QoS solicita recopilación de estadísticas sobre flujos de tráfico, defina cómo deben recopilarse las estadísticas de control. |
Cómo activar el control para una clase en el archivo de configuración IPQoS |
9. Aplicar el archivo de configuración IPQoS. |
Añadir el contenido de un archivo de configuración IPQoS especificado a los módulos de núcleo apropiados. |
Cómo aplicar una nueva configuración a los módulos de kernel IPQoS |
10. Configurar los comportamientos de reenvío en los archivos de enrutador. |
Si algún archivo de configuración IPQoS de la red define los comportamientos de reenvío, añada los puntos DSCP resultantes a los archivos de planificación correspondientes del enrutador. |
La directiva QoS de la red está definida en el archivo de configuración IPQoS. Este archivo de configuración se crea con un editor de texto. Después, se proporciona el archivo como un argumento a ipqosconf, la herramienta de configuración IPQoS. Al solicitar a ipqosconf que aplique la directiva definida en el archivo de configuración, la directiva se escribe en el núcleo del sistema IPQoS. Si necesita información detallada sobre el comando ipqosconf, consule la página de comando man ipqosconf(1M). Si necesita instrucciones sobre el uso de ipqosconf, consulte la sección Cómo aplicar una nueva configuración a los módulos de kernel IPQoS.
Un archivo de configuración IPQoS consiste en un árbol de instrucciones de acción que implementan la directiva QoS definida en la sección Planificación de la directiva de calidad de servicio. El archivo de configuración IPQoS configura los módulos IPQoS. Cada instrucción de acción contiene un conjunto de clases, filtros o parámetros que procesará el módulo al que llame la instrucción de acción.
Para ver la sintaxis completa del archivo de configuración IPQoS, consulte el Ejemplo 37–3 y la página de comando man ipqosconf(1M).
Las tareas de este capítulo explican cómo crear archivos de configuración IPQoS para tres sistemas con IPQoS. Estos sistemas forman parte de la topología de red de la empresa BigISP, introducida en la Figura 33–4.
Goldweb: Un servidor web que aloja sitios web de clientes que tienen acuerdos SLA de nivel alto
Userweb: Un servidor web menos potente que aloja páginas personales de usuarios que tienen acuerdos SLA de tipo “best-effort”
BigAPPS – Servidor de aplicaciones que ofrece sesrvicios de correo, noticas y FTP a clientes con servicios de nivel alto y "best-effort"
Estos tres archivos de configuración ilustran las configuraciones IPQoS más comunes. Puede usar los archivos de muestra de la siguiente sección como plantilla para su implementación IPQoS.
Esta sección es una introducción al archivo de configuración IPQoS en la que se muestra cómo crear una configuración para un servidor web de nivel alto. También se muestra cómo configurar un nivel de servicio diferente mediante otro archivo de configuración para un servidor que aloja páginas web personales. Ambos servidores forman parte del ejemplo de red que se muestra en la Figura 33–4.
El siguiente archivo de configuración define actividades IPQoS para el servidor Goldweb. Este servidor aloja el sitio web de Goldco, la compañía que tiene un acuerdo SLA de nivel alto.
fmt_version 1.0 action { module ipgpc name ipgpc.classify params { global_stats TRUE } class { name goldweb next_action markAF11 enable_stats FALSE } class { name video next_action markEF enable_stats FALSE } filter { name webout sport 80 direction LOCAL_OUT class goldweb } filter { name videoout sport videosrv direction LOCAL_OUT class video } } action { module dscpmk name markAF11 params { global_stats FALSE dscp_map{0-63:10} next_action continue } } action { module dscpmk name markEF params { global_stats TRUE dscp_map{0-63:46} next_action acct } } action { module flowacct name acct params { enable_stats TRUE timer 10000 timeout 10000 max_limit 2048 } }
El siguiente archivo de configuración define actividades IPQoS en Userweb. Este servidor aloja sitios web de usuarios con acuerdos SLA de bajo precio o "best-effort". Este nivel de servicio garantiza el mejor servicio que puede ofrecerse a clientes "best-effort" después de que el sistema IPQoS administre el tráfico de clientes con acuerdos SLA de nivel alto.
fmt_version 1.0 action { module ipgpc name ipgpc.classify params { global_stats TRUE } class { name Userweb next_action markAF12 enable_stats FALSE } filter { name webout sport 80 direction LOCAL_OUT class Userweb } } action { module dscpmk name markAF12 params { global_stats FALSE dscp_map{0-63:12} next_action continue } }
Puede crear el primer archivo de configuración IPQoS en el directorio que le resulte más fácil para su mantenimiento. En las tareas de este capítulo se utiliza el directorio /var/ipqos como ubicación para archivos de configuración IPQoS. En el siguiente procedimiento se genera el segmento inicial del archivo de configuración IPQoS introducido en el Ejemplo 34–1.
Al crear el archivo de configuración IPQoS, asegúrese de comenzar y finalizar cada instrucción de acción y cláusula con llaves ({ }). Para ver un ejemplo del uso de llaves, consulte el Ejemplo 34–1.
Inicie una sesión en el servidor web de nivel alto y cree un archivo de configuración IPQoS con extensión .qos.
Los archivos de configuración IPQoS deben comenzar con el número de versión fmt_version 1.0 como primera línea sin comentar.
A continuación del parámetro de abertura, escriba la instrucción de acción, que configura el clasificador IP genérico ipgpc.
Esta primera acción inicia el árbol de instrucciones de acción que compone el archivo de configuración IPQoS. Por ejemplo, el archivo /var/ipqos/Goldweb.qos comienza con la instrucción de acción inicial para llamar al clasificador ipgpc.
fmt_version 1.0 action { module ipgpc name ipgpc.classify |
Inicia el archivo de configuración IPQoS.
Inicia la instrucción de acción.
Configura el clasificador ipgpc como la primera acción del archivo de configuración.
Define el nombre de la instrucción de acción de clasificador, que siempre debe ser ipgpc.classify.
Si necesita información sintáctica detallada sobre instrucciones de acción, consulte la sección Instrucción action y la página de comando man ipqosconf(1M).
Añada una cláusula params con el parámetro de estadísticas global_stats.
params { global_stats TRUE } |
El parámetro global_stats TRUE de la instrucción ipgpc.classify activa la recoplicación de estadísticas para dicha acción. global_stats TRUE también activa la recopliación de estadísticas por clase cuando una definición de cláusula de clase especifica enable_stats TRUE.
Activar las estadísticas afecta al rendimiento. Puede ser útil recopilar estadísticas en un archivo de configuración IPQoS nuevo para verificar que IPQoS funciona correctamente. Más adelante, puede desactivar la recopliación de estadísticas cambiando el argumento de global_stats a FALSE.
Las estadísticas globales son tan solo uno de los parámetros que se pueden definir en la cláusula params. Si necesita más información sobre sintaxis y otros datos de las cláusulas params, consulte la sección Cláusula params y la página de comando man ipqosconf(1M).
Defina una cláusula que identifique el tráfico vinculado al servidor de nivel alto.
class { name goldweb next_action markAF11 enable_stats FALSE } |
Esta instrucción se denomina una cláusula class. Una cláusula class tiene el siguiente contenido.
Crea la clase goldweb para identificar el tráfico vinculado al servidor Goldweb.
Incica al módulo ipgpc que debe pasar los paquetes de la clase goldweb a la instrucción de acción markAF11. La instrucción de acción markAF11 llama al marcador dscpmk.
Activa la recopilación de estadísticas de la clase goldweb. Aunque, debido a que el valor de enable_stats es FALSE, las estadísticas de esta clase no están activadas.
Si necesita información detallada sobre la sintaxis de la cláusula class, consulte la sección Cláusula class y la página de comando man ipqosconf(1M).
Defina una clase que identifique una aplicación que deba tener reenvío de máxima prioridad.
class { name video next_action markEF enable_stats FALSE } |
Crea la clase video para identificar el tráfico saliente de video streaming del servidor Goldweb.
Indica al módulo ipgpc que debe pasar los paquetes de la clase video a la instrucción markEF después de que ipgpc haya terminado el procesamiento. La instrucción markEF llama al marcador dscpmk.
Activa la recopliación de estadísticas de la clase video. Aunque, debido a que el valor de enable_stats es FALSE, la recopilación de estadísticas para esta clase no se activa.
Para definir filtros para la clase creada, consulte la sección Cómo definir filtros en el archivo de configuración IPQoS.
Para crear otra cláusula para el archivo de configuración, consulte la sección Cómo crear el archivo de configuración IPQoS y definir las clases de tráfico.
El siguiente procedimiento muestra cómo definir filtros para una clase en el archivo de configuración IPQoS.
En el procedimiento se asume que ya ha comenzado la creación del archivo y ha definido clases. Los pasos continúan con la generación del archivo /var/ipqos/Goldweb.qos creado en la sección Cómo crear el archivo de configuración IPQoS y definir las clases de tráfico.
Al crear el archivo de configuración IPQoS, asegúrese de comenzar y finalizar cada clásula class y cada filtro con llaves ({ }). Para ver un ejemplo del uso de llaves, consulte el Ejemplo 34–1.
Abra el archivo de configuración IPQoS y busque la última clase definida.
Por ejemplo, en el servidor con IPQoS Goldweb, empezaría después de la siguiente cláusula class de /var/ipqos/Goldweb.qos:
class { name video next_action markEF enable_stats FALSE } |
Defina una cláusula filter para seleccionar el tráfico saliente del sistema IPQoS.
filter { name webout sport 80 direction LOCAL_OUT class goldweb } |
Asigna el nombre webout al filtro.
Selecciona el tráfico con origen en el puerto 80, el puerto de tráfico HTTP (web).
Selecciona el tráfico saliente del sistema local.
Identifca la clase a la que pertenece el filtro, en este caso, la clase goldweb.
Si necesita información detallada y sintáctica sobre la cláusula filter del archivo de configuración IPQoS, consulte la sección Cláusula filter.
Defina una clásula filter para seleccionar el tráfico de video streaming del sistema IPQoS.
filter { name videoout sport videosrv direction LOCAL_OUT class video } |
Asgina el nombre videoout al filtro.
Selecciona el tráfico con un puerto de origen videosrv, un puerto definido anteriormente para la aplicación de video streaming en este sistema.
Selecciona el tráfico saliente del sistema local.
Identifica la clase a la que pertenece el filtro, en este caso, la clase video.
Para definir comportamientos de reenvío para los módulos de marcador, consulte la sección Cómo definir el reenvío de tráfico en el archivo de configuración IPQoS.
Para definir parámetros de control de flujo para los módulos de medidor, consulte la sección Cómo configurar el control de flujo en el archivo de configuración IPQoS.
Para activar el archivo de configuración IPQoS, consulte la sección Cómo aplicar una nueva configuración a los módulos de kernel IPQoS.
Para definir filtros adicionales, consulte la sección Cómo definir filtros en el archivo de configuración IPQoS.
Para crear clases para flujos de tráfico de aplicaciones, consulte la sección Cómo definir el archivo de configuración IPQoS para un servidor de aplicaciones.
El siguiente procedimiento muestra cómo definir el reenvío de tráfico añadiendo comportamientos por salto para una clase en el archivo de configuración IPQoS.
En el procedimiento se asume que ya tiene un archivo de configuración IPQoS con clases y filtros definidos. Los pasos continúan con la creación del archivo /var/ipqos/Goldweb.qos del Ejemplo 34–1.
El procedimiento muestra cómo configurar el reenvío de tráfico utilizando el módulo de marcador dscpmk. Si necesita información sobre el reenvío de tráfico en sistemas VLAN utilizando el marcador dlclosmk, consulte la sección Uso del marcador dlcosmk con dispositivos VLAN.
Abra el archivo de configuración IPQoS y localice el final del último filtro definido.
Por ejemplo, en el servidor con IPQoS Goldweb, empezaría después de la siguiente cláusula filter en /var/ipqos/Goldweb.qos:
filter { name videoout sport videosrv direction LOCAL_OUT class video } } |
Observe que esta cláusula filter se encuentra al final de la instrucción action del clasificador ipgpc. Por lo tanto, necesita una llave de cierre para finalizar el filtro y otra para finalizar la instrucción action.
Invoque al marcador con la siguiente instrucción action.
action { module dscpmk name markAF11 |
Llama al módulo de marcador dscpmk.
Asigna el nombre markAF11 a la instrucción action .
La clase goldweb definida anteriormente incluye una instrucción next_action markAF11. Esta instrucción envía los flujos de tráfico a la instrucción de acción markAF11 cuando el clasificador ha finalizado el procesamiento.
Defina acciónes que debe ejecutar el marcador en el flujo de tráfico.
params { global_stats FALSE dscp_map{0-63:10} next_action continue } } |
Activa la recopilación de estadísticas de la instrucción action del marcador markAF11. Aunque, debido a que el valor de enable_stats es FALSE, no se recopilan estadísticas.
Asigna un DSCP de valor 10 a los encabezados de paquetes de la clase de tráfico goldweb, que el marcador está procesando en ese momento.
Indica que no se necesita más procesamiento en los paquetes de la clase de tráfico goldweb, y que estos paquetes pueden volver al flujo de red.
El DSCP de valor 10 indica al marcador que debe definir todas las entradas del mapa dscp en el valor decimal 10 (binario 001010). Este punto de código indica que los paquetes de la clase de tráfico goldweb están sujetos al comportamiento por salto AF11. AF11 garantiza que todos los paquetes con DSCP de valor 10 reciben un servicio de alta prioridad y baja probabilidad de descarte. Por lo tanto, el tráfico saliente para clientes de nivel alto en Goldweb recibe la prioridad más alta diponilble para el PHB de reenvío asegurado (AF). Para ver una tabla de puntos DSCP para AF, consulte la Tabla 37–2.
Inicie otra instrucción action de marcador.
action { module dscpmk name markEF |
Llama al módulo de marcador dscpmk.
Asigna el nombre markEF a la instrucción action.
Defina acciones que deba ejecutar el marcador en el flujo de tráfico.
params { global_stats TRUE dscp_map{0-63:46} next_action acct } } |
Activa la recopilación de estadísticas en la clase video, que selecciona paquetes de video streaming.
Asgina un DSCP de valor 46 a los encabezados de paquetes de la clase de tráfico video, que el marcador está procesando en ese momento.
Indica al módulo dscpmk que debe pasar los paquetes de la clase video a la instrucción acct action cuando dscpmk haya completado el procesamiento. La instrucción acct action invoca al módulo flowacct.
El DSCP de valor 46 indica al módulo dscpmk que debe establecer todas las entradas del mapa dscp en el valor decimal 46 (binario 101110) en el campo DS. Este punto de código indica que los paquetes de la clase de tráfico video están sujetos al comportamiento por salto de reenvío acelerado (EF).
El punto de código recmendado para EF es 46 (binario 101110). Otros puntos DSCP asignan comportamientos PHB AF a un paquete.
El PHB EF garantiza que los paquetes con el DSCP de valor 46 reciben la máxima precendencia en sistemas IPQoS y Diffserv. Las aplicaciones streaming requieren el servicio de prioridad más alta, por eso se les asignan comportamientos PHB EF en la directiva QoS. Si necesita más información sobre PHB de reenvío acelerado, consulte la sección Reenvío acelerado (EF) PHB.
Añada los puntos DSCP que ha creado a los archivos correspondientes del enrutador Diffserv.
Si necesita más información, consulte Cómo configurar un enrutador en una red con IPQoS.
Para empezar a recopilar estadísticas de control de flujo sobre el tráfico, consulte la sección Cómo activar el control para una clase en el archivo de configuración IPQoS.
Para definir comportamientos de reenvío para los módulos de marcador, consulte la sección Cómo definir el reenvío de tráfico en el archivo de configuración IPQoS.
Para definir parámetros de control de flujo para los módulos de medidor, consulte la sección Cómo configurar el control de flujo en el archivo de configuración IPQoS.
Para activar el archivo de configuración IPQoS, consulte la sección Cómo aplicar una nueva configuración a los módulos de kernel IPQoS.
Para definir filtros adicionales, consulte la sección Cómo definir filtros en el archivo de configuración IPQoS.
Para crear clases para flujos de tráfico de aplicaciones, consulte la sección Cómo definir el archivo de configuración IPQoS para un servidor de aplicaciones.
El siguiente procedimiento muestra como activar el control de una clase de tráfico en el archivo de configración IPQoS. El procedimiento muestra como definir el control de flujo para la clase video, introducida en la sección Cómo crear el archivo de configuración IPQoS y definir las clases de tráfico. Esta clase selecciona el tráfico de video streaming, que debe formar parte de un acuerdo SLA de nivel alto del cliente.
En el procedimiento se asume que ya tiene un archivo de configuración IPQoS con clases, filtros y acciones de medición definidas, si correponde, y acciones de marcado, si corresponde. Los pasos continúan con la creación del archivo /var/ipqos/Goldweb.qos del Ejemplo 34–1.
Abra el archivo de configuración IPQoS y localice el final de la última instrucción action definida.
Por ejemplo, en el servidor con IPQoS Goldweb, empezaría después de la siguiente instrucción action markEF en /var/ipqos/Goldweb.qos.
action { module dscpmk name markEF params { global_stats TRUE dscp_map{0-63:46} next_action acct } } |
Inice una instrucción action que llame al control de flujo.
action { module flowacct name acct |
Invoca al módulo de control de flujo flowacct.
Asigna el nombre acct a la instrucción action
Defina una cláusula params para el control de la clase de tráfico.
params { global_stats TRUE timer 10000 timeout 10000 max_limit 2048 next_action continue } } |
Activa la recopilación de estadísticas de la clase video, que selecciona paquetes de video streaming.
Especifica la duración del intervalo, en milisengundos, que se utiliza al explorar la tabla de flujos para detectar flujos con tiempo de espera superado. En este parámetro, el intervalo es de 10000 milisegundos.
Especifica el valor de tiempo de espera de intervalo mínimo. El tiempo de espera de un flujo se supera cuando los paquetes del flujo no se envían durante un intervalo de tiempo de espera. En este parámetro, se supera el tiempo de espera de paquetes cuando transcurren 10000 milisegundos.
Determina el número máximo de registros de flujos en la tabla de flujos para esta instancia de acción.
Indica que no es necesario más procesamiento en los paquetes de la clase de tráfico video y que los paquetes pueden volver al flujo de red.
El módulo flowacct recopila información estadística sobre los flujos de paquetes de una clase específica hasta que se supera un valor de timeout.
Para configurar comportamientos por salto en un enrutador, consulte la sección Cómo configurar un enrutador en una red con IPQoS.
Para activar el archivo de configuración IPQoS, consulte la sección Cómo aplicar una nueva configuración a los módulos de kernel IPQoS.
Para crear clases para flujos de tráfico de aplicaciones, consulte la sección Cómo definir el archivo de configuración IPQoS para un servidor de aplicaciones.
El archivo de configuración IPQoS para un servidor web "best-effort" es ligeramente diferente al de un servidor web de nivel alto. Como muestra, en el procedimiento se utiliza el archivo de configuración del Ejemplo 34–2.
Inicie una sesión en el servidor web "best-effort".
Cree un archivo de configuración IPQoS con extensión .qos.
fmt_vesion 1.0 action { module ipgpc name ipgpc.classify params { global_stats TRUE } |
El archivo /var/ipqos/userweb.qos debe comenzar con la intrucción action parcial para invocar al clasificador ipgpc. Además, la instrucción action también tiene una cláusula params para activar la recopilación de estadísticas. Si necesita una explicación de esta instrucción action, consulte la sección Cómo crear el archivo de configuración IPQoS y definir las clases de tráfico.
Defina una clase que identifique el tráfico vinculado con el servidor web "best-effort".
class { name userweb next_action markAF12 enable_stats FALSE } |
Crea una clase llamada userweb para reenvíar el tráfico web de usuarios.
Indica al módulo ipgpc que debe transferir los paquetes de la clase userweb a la instrucción action markAF12 cuando ipgpc haya completado el procesamiento. La instrucción action markAF12 invoca al marcador dscpmk.
Activa la recopilación de estadísticas para la clase userweb. Aunque, debido a que el valor de enable_stats es FALSE, no se recopilan estadísticas para esta clase.
Para ver una explicación de la tarea de la cláusula class, consulte la sección Cómo crear el archivo de configuración IPQoS y definir las clases de tráfico.
Defina una cláusula filter para seleccionar los flujos de tráfico de la clase userweb.
filter { name webout sport 80 direction LOCAL_OUT class userweb } } |
Asigna el nombre webout al filtro.
Selecciona el tráfico con origen en el puerto 80, el puerto de tráfico HTTP (web).
Selecciona el tráfico saliente del sistema local.
Identifica la clase a la que pertenece el filtro, en este caso, la clase userweb.
Para ver una explicación de la tarea de la cláusula filter, consulte la sección Cómo definir filtros en el archivo de configuración IPQoS.
Inice la instrucción action para invocar al marcador dscpmk.
action { module dscpmk name markAF12 |
Invoca al módulo de marcador dscpmk.
Asigna el nombre markAF12 a la instrucción action .
La clase definida previamente userweb incluye una instrucción next_action markAF12. Esta instrucción envía flujos de tráfico a la instrucción action markAF12 cuando el clasificador finaliza el procesamiento.
Defina parámetros que debe usar el marcador para procesar el flujo de tráfico.
params { global_stats FALSE dscp_map{0-63:12} next_action continue } } |
Activa la recopilación de estadísticas para la instrucción action del marcador markAF12. Aunque, debido a que el valor de enable_stats es FALSE, no se recopilan estadísticas.
Asigna un valor DSCP de 12 a los encabezados de paquetes de la clase de tráfico userweb, que esté procesando el marcador en ese momento.
Indica que no es necesario más procesamiento en los paquetes de la clase de tráfico userweb, y que los paquetes pueden volver al flujo de red.
El valor DSCP de 12 indica al marcador que debe definir todas las entradas del mapa dscp en el valor decimal 12 (binario 001100). Este punto de código indica que los paquetes de la clase de tráfico userweb están sujetos al comportamiento por salto AF12. AF12 garantiza que todos los paquetes con el DSCP de valor 12 en el campo DS reciben un servicio de probabilidad de descarte media y prioridad alta.
Cuando haya completado el archivo de configuración IPQoS, aplique la configuración.
Para añadir clases y otra configuración para flujos de tráfico de aplicaciones, consulte la sección Cómo definir el archivo de configuración IPQoS para un servidor de aplicaciones.
Para configurar comportamientos por salto en un enrutador, consulte la sección Cómo configurar un enrutador en una red con IPQoS.
Para activar el archivo de configuración IPQoS, consulte la sección Cómo aplicar una nueva configuración a los módulos de kernel IPQoS.
En esta sección se explica cómo crear un archivo de configuración para un servidor de aplicaciones que proporciona aplicaciones básicas a clientes. En el procedimiento se usa como ejemplo el servidor BigAPPS de la Figura 33–4.
El siguiente archivo de configuración define actividades IPQoS para el servidor BigAPPS. Este servidor aloja FTP, correo electrónico (SMTP) y noticias de red (NNTP) para clientes.
fmt_version 1.0 action { module ipgpc name ipgpc.classify params { global_stats TRUE } class { name smtp enable_stats FALSE next_action markAF13 } class { name news next_action markAF21 } class { name ftp next_action meterftp } filter { name smtpout sport smtp class smtp } filter { name newsout sport nntp class news } filter { name ftpout sport ftp class ftp } filter { name ftpdata sport ftp-data class ftp } } action { module dscpmk name markAF13 params { global_stats FALSE dscp_map{0-63:14} next_action continue } } action { module dscpmk name markAF21 params { global_stats FALSE dscp_map{0-63:18} next_action continue } } action { module tokenmt name meterftp params { committed_rate 50000000 committed_burst 50000000 red_action_name AF31 green_action_name markAF22 global_stats TRUE } } action { module dscpmk name markAF31 params { global_stats TRUE dscp_map{0-63:26} next_action continue } } action { module dscpmk name markAF22 params { global_stats TRUE dscp_map{0-63:20} next_action continue } }
Inicie una sesión en el servidor de aplicaciones con IPQoS y cree un archivo IPQoS con extensión .qos.
Por ejemplo, /var/ipqos/BigAPPS.qos para el servidor de aplicaciones. Empiece con los siguientes comandos necesarios para iniciar la instrucción action que invoca al clasificador ipgpc:
fmt_version 1.0 action { module ipgpc name ipgpc.classify params { global_stats TRUE } |
Si necesita una explicación de la instrucción action inicial, consulte la sección Cómo crear el archivo de configuración IPQoS y definir las clases de tráfico.
Cree clases para seleccionar el tráfico de tres aplicaciones en el servidor BigAPPS.
Añada las definicioes de clases después de la instrucción action de apertura.
class { name smtp enable_stats FALSE next_action markAF13 } class { name news next_action markAF21 } class { name ftp enable_stats TRUE next_action meterftp } |
Crea una clase llamada smtp, que incluye los flujos de tráfico de correo electrónico que debe administrar la aplicación SMTP
Activa la recopilación de estadísticas para la clase smtp. Aunque, debido a que el valor de enable_stats es FALSE, no se recopilan estadísticas para esta clase.
Indica al módulo ipgpc que debe transferir los paquetes de la clase smtp a la instrucción action markAF13 cuando ipgpc haya completado el procesamiento.
Crea una clase llamada news, que incluye los flujos de tráfico de noticias de red que debe administrar la aplicación NNTP.
Indica al módulo ipgpc que debe transferir los paquetes de la clase news a la instrucción action markAF21 cuando ipgpc haya completado el procesamiento.
Crea una clase llamada ftp, que administra el tráfico saliente gstionado por la aplicación FTP.
Activa la recopilación de estadísticas para la clase ftp.
Indica al módulo ipgpc que debe transferir los paquetes de la clase ftp a la instrucción action meterftp cuando ipgpc haya completado el procesamiento.
Si necesita más información sobre cómo definir clases, consulte la sección Cómo crear el archivo de configuración IPQoS y definir las clases de tráfico.
Defina cláusulas filter para seleccionar el tráfico de las clases definidas en el paso 2.
filter { name smtpout sport smtp class smtp } filter { name newsout sport nntp class news } filter { name ftpout sport ftp class ftp } filter { name ftpdata sport ftp-data class ftp } } |
Asigna el nombre smtpout al filtro.
Selecciona el tráfico con puerto de origen 25, el puerto para la aplicación sendmail (SMTP).
Identifica la clase a la que pertenece el filtro, en este caso, la clase smtp.
Asigna el nombre newsout al filtro.
Selecciona el tráfico con nombre de puerto origen nntp, el nombre de puerto para la aplicación de noticias de red (NNTP).
Identifica la clase a la que pertenece el filtro, en este caso, la clase news.
Asigna el nombre ftpout al filtro.
Selecciona los datos de control con un puerto origen 21, el número de puerto para tráfico FTP.
Asigna el nombre ftpdata al filtro.
Selecciona el tráfico con puerto de origen 20, el número de puerto para tráfico FTP.
Identifica la clase a la que pertenecen los filtros ftpout y ftpdata, en este caso ftp.
Para definir filtros, consulte la sección Cómo definir filtros en el archivo de configuración IPQoS.
Para definir comportamientos de reenvío para el tráfico de aplicaciones, consulte la sección Cómo configurar el reenvío para el tráfico de aplicaciones en el archivo de configuración IPQoS.
Para configurar el control de flujo utilizando los módulos de medición, consulte la sección Cómo configurar el control de flujo en el archivo de configuración IPQoS.
Para configurar la recopilación de datos sobre el flujo, consulte la sección Cómo activar el control para una clase en el archivo de configuración IPQoS.
En el siguiente procedimiento se muestra cómo configurar el reenvío para el tráfico de aplicaciones. En el procedimiento, se definen comportamientos por salto para clases de tráfico de aplicaciones que pueden tener precedencia más baja que otro tráfico de la red. Los pasos continúan con la creación del archivo /var/ipqos/BigAPPS.qos del Ejemplo 34–3.
En el procedimiento se asume que ya tiene un archivo de configuración IPQoS con clases y filtros definidos para las aplicaciones que se van a marcar.
Abra el archivo de configuración IPQoS creado para el servidor de aplicaciones y localice el final de la última cláusula filter.
En el archivo /var/ipqos/BigAPPS.qos, el último filtro es el siguiente:
filter { name ftpdata sport ftp-data class ftp } } |
Invoque al marcador del siguiente modo:
action { module dscpmk name markAF13 |
Invoca al módulo de marcador dscpmk.
Asigna el nombre markAF13 a la instrucción action .
Defina el comportamiento por salto que debe marcarse en los flujos de tráfico de correo electrónico.
params { global_stats FALSE dscp_map{0-63:14} next_action continue } } |
Activa la recopilación de estadísticas para la instrucción action del marcador markAF13. Aunque, debido a que el valor de enable_stats es FALSE, no se recopilan estadísticas.
Asigna un DSCP de valor 14 a los encabezados de paquetes de la clase de tráfico smtp, que esté procesando el marcador en ese momento.
Indica que no se necesita más procesamiento en los paquetes de la clase de tráfico smtp. Estos paquetes pueden volver al flujo de red.
El valor DSCP de 14 indica al marcador que debe efinir todas las entradas del mapa dscp en el valor decimal 14 (binario 001110). El DSCP de valor 14 define el comportamiento por salto AF13. El marcador marca paquetes de la clase de tráfico smtp con el DSCP de valor 14 en el campo DS.
AF13 asigna todos los paquetes con un DSCP de 14 a una precedencia de alta probabilidad de descarte. Aunque, debido a que AF13 también garantiza una prioridad de Clase 1, el enrutador sigue garantizando una alta prioridad en cola al tráfico de correo electrónico saliente. Para ver una tabla de códigos para AF, consulte la Tabla 37–2.
Añada una instrucción action de marcador para definir un comportamiento por salto para el tráfico de noticias de red:
action { module dscpmk name markAF21 params { global_stats FALSE dscp_map{0-63:18} next_action continue } } |
Asigna el nombre markAF21 a la instrucción action .
Asigna un valor DSCP de 18 a los encabezados de paquetes de la clase de tráfico nntp que esté procesando el marcador en ese momento.
El valor DSCP de 18 indica al marcador que debe definir todas las entradas del mapa dscp en el valor decimal 18 (binario 010010). El valor DSCP 18 define el comportamiento por salto AF21. El marcador marca los paquetes de la clase de tráfico news con el valor DSCP 18 en el campo DS.
AF21 garantiza que todos los paquetes con un valor DSCP de 18 reciben una precedencia de baja probabilidad de descarte, pero sólo con prioridad Clase 2. Por lo tanto, la posibilidad de que se descarte el tráfico de noticias de red es bajo.
Para añadir información de configuración para servidores web, consulte la sección Cómo crear el archivo de configuración IPQoS y definir las clases de tráfico.
Para configurar el control de flujo utilizando los módulos de medición, consulte la sección Cómo configurar el control de flujo en el archivo de configuración IPQoS.
Para configurar la recopilación de datos sobre el flujo, consulte la sección Cómo activar el control para una clase en el archivo de configuración IPQoS.
Para configurar comportamientos de reenvío en un enrutador, consulte la sección Cómo configurar un enrutador en una red con IPQoS.
Para activar el archivo de configuración IPQoS, consulte la sección Cómo aplicar una nueva configuración a los módulos de kernel IPQoS.
Para controlar la tasa a la que un flujo de tráfico específico se envía en la red, debe definir parámetros para el medidor. Puede usar cualquiera de los dos módulos de medidor, tokenmt o tswtclmt, en el archivo de configuración IPQoS.
El siguiente procedimiento continúa con la creación del archivo de configuración IPQoS para el servidor de aplicaciones del Ejemplo 34–3. En el procedimiento, no sólo se configura el medidor, sino también las acciones de marcador a las que se llama desde la instrucción action.
En los pasos se asume que ya ha definido una clase y un filtro para controlar el flujo de la aplicación.
Abra el archivo de configuración IPQoS que ha creado para el servidor de aplicaciones.
En el archivo /var/ipqos/BigAPPS.qos , empiece después de la siguiente acción de marcador:
action { module dscpmk name markAF21 params { global_stats FALSE dscp_map{0-63:18} next_action continue } } |
Cree una instrucción action de medidor para controlar el flujo de tráfico de la clase ftp.
action { module tokenmt name meterftp |
Invoca al medidor tokenmt.
Asigna el nombre meterftp a la instrucción action .
Añada parámetros para configurar la tasa del medidor.
params { committed_rate 50000000 committed_burst 50000000 |
Asigna una tasa de transmisión de 50.000.000 bps al tráfico de la clase ftp.
Dedica un tamaño de ráfaga de 50.000.000 al tráfico de la clase ftp.
Para ver una explicación de los parámetros tokenmt, consulte la sección Configuración de tokenmt como medidor de doble tasa.
Añada parámetros para configurar las precedencias de cumplimiento de tráfico:
red_action markAF31 green_action_name markAF22 global_stats TRUE } } |
Idinca que si el flujo de tráfico de la clase ftp excede la tasa asignada, los paquetes se envían a la instrucción action del marcador markAF31.
Indica que si los flujos de tráfico de la clase ftp cumplen la tasa asignada, los paquetes se envían a la instrucción action de markAF22.
Activa las estadísticas de medición para la clase ftp.
Si necesita más información sobre el cumplimiento del tráfico, consulte la sección Módulo Meter.
Añada uns instrucción action de marcador para asignar un comportamiento por salto a los flujos de tráfico de la clase ftp que no cumplan la tasa.
action { module dscpmk name markAF31 params { global_stats TRUE dscp_map{0-63:26} next_action continue } } |
Invoca al módulo de marcador dscpmk.
Asigna el nombre markAF31 a la instrucción action.
Activa las estadísticas para la clase ftp.
Asigna un valor DSCP de 26 a los encabezados de paquetes de la clase de tráfico ftp cuando el tráfico excede la tasa asignada.
Indica que no se requiere más procesamiento para los paquetes de la clase de tráfico ftp. Estos paquetes pueden devolverse al flujo de red.
El valor DSCP de 26 indica al marcador que debe establecer todas las entradas del mapa dscp en el valor decimal 26 (binario 011010). El valor DSCP 26 define el comportamiento por salto AF31. El marcador marca los paquetes de la clase de tráfico ftp con el valor DSCP 26 en el campo DS.
AF31 garantiza que todos los paquetes con un valor DSCP de 26 reciben una precedencia de baja probabilidad de descarte, pero sólo con prioridad Clase 3. Por lo tanto, la posibilidad de que se descarte el tráfico FTP que no cumple la tasa es baja. Para ver una tabla de códigos para AF, consulte la Tabla 37–2.
Añada una instrucción action de marcador para asignar un comportamiento por salto a los flujos de tráfico ftp que cumplen la tasa asignada.
action { module dscpmk name markAF22 params { global_stats TRUE dscp_map{0-63:20} next_action continue } } |
Asigna el nombre markAF22 a la acción marker.
Asigna un valor DSCP de 20 a los encabezados de paquetes de la clase de tráfico ftp cuando el tráfico ftp cumple la tasa configurada.
El valor DSCP de 20 indica al marcador que debe definir todas las entradas del mapa dscp en el valor decimal 20 (binario 010100). El valor DSCP de 20 define el comportamiento por salto AF22. El marcador marca los paquetes de la clase de tráfico ftp con el valor DSCP de 20 en el campo DS.
AF22 garantiza que todos los paquetes con un valor DSCP de 20 reciben una precedencia de probabilidad de descarte media con prioridad de Clase 2. Por lo tanto, el tráfico FTP que cumple la tasa tiene garantizada una precedencia con probabilidad de descarte media entre los flujos envíados simultáneamente por el sistema IPQoS. Aunque el enrutador asigna una prioridad de reenvío más alta a las clases de tráfico con una marca de precedencia de probabilidad de descarte media de Clase 1 o superior. Para ver una tabla de códigos para AF, consulte la Tabla 37–2.
Añada los puntos DSCP que ha creado para el servidor de aplicaciones a los archivos correspondientes del enrutador Diffserv.
Para activar el archivo de configuración IPQoS, consulte la sección Cómo aplicar una nueva configuración a los módulos de kernel IPQoS.
Para añadir información de configuración para servidores web, consulte la sección Cómo crear el archivo de configuración IPQoS y definir las clases de tráfico.
Para configurar la recopilación de datos sobre el flujo, consulte la sección Cómo activar el control para una clase en el archivo de configuración IPQoS.
Para configurar comportamientos de reenvío en un enrutador, consulte la sección Cómo configurar un enrutador en una red con IPQoS.
Para proporcionar servicios diferenciados reales, debe incluir un enrutador con Diffserv en la red, como se describe en Estrategias de hardware para la red Diffserv. Los pasos necesarios para configurar Diffserv en un enrutador y actualizar los archivos del enrutador no se explican en esta guía.
En esta sección se detallan los pasos generales para coordinar la información de reenvío entre varios sistemas con IPQoS en la red y el enrutador Diffserv.
En el siguiente procedimiento se utiliza como ejemplo la topología de la Figura 33–4.
En el siguiente procedimiento se asume que ya ha configurado los sistemas IPQoS de la red realizando las tareas anteriores de este capítulo.
Revise los archivos de configuración de todos los sistemas con IPQoS de la red.
Identifique cada punto de código utilizado en las directivas QoS.
Haga una lista de los puntos de código, y los sistemas y clases a los que se aplican. La siguiente tabla ilustra áreas en las que puede haberse usado el mismo punto de código. Esta práctica es aceptable. Aunque debe especificar otros criterios en el archivo de configuración IPQoS, como un selector de precedencia, para determinar la precedencia de las clases con marcas idénticas.
Por ejemplo, en la red de muestra que se utiliza en los procedimientos de este capítulo, puede generar la siguiente tabla de puntos de código.
Sistema |
Clase |
PHB |
Punto de código DS |
---|---|---|---|
Goldweb |
video |
EF |
46 (101110) |
Goldweb |
goldweb |
AF11 |
10 (001010) |
Userweb |
webout |
AF12 |
12 (001100) |
BigAPPS |
smtp |
AF13 |
14 (001110) |
BigAPPS |
news |
AF18 |
18 (010010) |
BigAPPS |
ftp conformant traffic |
AF22 |
20 (010100) |
BigAPPS |
ftp nonconformant traffic |
AF31 |
26 (011010) |
Añada los puntos de código de los archivos de configuración IPQoS de la red a los archivos correspondientes del enrutador Diffserv.
Los puntos de código proporcionados deben facilitar la configuración del mecanismo de planificación Diffserv del enrutador. Consulte la documentación y el sitio web del fabricante del enrutador si necesita instrucciones.