EN ESTA PÁGINA
Ejemplo: Configurar y aplicar un clasificador de agregado de comportamiento DSCP predeterminado
Un clasificador de Junos OS identifica y separa los flujos de tráfico y proporciona los medios para priorizar el tráfico más adelante en el proceso de clase de servicio (CoS).
Un clasificador de agregado de comportamiento (BA) realiza esta función asociando valores de CoS bien conocidos con clases de reenvío y prioridades de pérdida. Para habilitar un clasificador predeterminado, basta con aplicarlo a las interfaces de su dispositivo. Si no se aplica un clasificador predeterminado a una interfaz, no se aplica.
Junos OS ofrece varios tipos de clasificador de BA predeterminados, que puede combinar y complementar con clasificadores de BA personalizados según sea necesario para lograr sus objetivos generales de clasificación de tráfico. En este ejemplo, se muestra cómo aplicar el clasificador de puntos de código DiffServ (DSCP) predeterminado (BA) y verificar su funcionalidad.
Requisitos
Para comprobar este procedimiento, en este ejemplo se utiliza un generador de tráfico. El generador de tráfico puede estar basado en hardware o puede ser software que se ejecuta en un servidor o máquina host. Si no tiene acceso a un generador de tráfico, puede usar ping extendido para la verificación. Este enfoque también se muestra.
La funcionalidad de este procedimiento es ampliamente compatible con dispositivos que ejecutan Junos OS. El ejemplo que se muestra aquí fue probado y verificado en enrutadores serie MX que ejecutan Junos OS versión 10.4.
Visión general
La base de Junos OS CoS es la diferenciación del tráfico. Asignar tráfico a diferentes clases de servicio proporciona la diferenciación necesaria. Desde el punto de vista de un enrutador, la clase de servicio asignado a un paquete define cómo se comporta el enrutador con el paquete. El concepto de diferenciación del tráfico está presente en todas las herramientas de CoS y, como resultado, las clases de servicio están presentes en todo el diseño de CoS. Un clasificador tiene una entrada, el paquete entrante, y tiene N salidas posibles, donde N es el número de posibles clases de servicio en las que se puede clasificar el paquete.
La clasificación de BA se utiliza cuando el tráfico que entra en el dispositivo ya tiene valores de CoS de confianza en el encabezado del paquete. Por ejemplo, el clasificador de BA DSCP predeterminado especifica que los paquetes que vienen con puntos de código 000000 se asignan a la clase de reenvío de mejor esfuerzo y se les da una prioridad de pérdida de baja.
Una clase de reenvío y una prioridad de pérdida se asignan de forma predeterminada a cada DSCP conocido. Para ver esto, ejecute el show class-of-service classifier
comando.
user@host> show class-of-service classifier type dscp Classifier: dscp-default, Code point type: dscp, Index: 7 Code point Forwarding class Loss priority 000000 best-effort low 000001 best-effort low 000010 best-effort low 000011 best-effort low 000100 best-effort low 000101 best-effort low 000110 best-effort low 000111 best-effort low 001000 best-effort low 001001 best-effort low 001010 assured-forwarding low 001011 best-effort low 001100 assured-forwarding high 001101 best-effort low 001110 assured-forwarding high 001111 best-effort low 010000 best-effort low 010001 best-effort low 010010 best-effort low 010011 best-effort low 010100 best-effort low 010101 best-effort low 010110 best-effort low 010111 best-effort low 011000 best-effort low 011001 best-effort low 011010 best-effort low 011011 best-effort low 011100 best-effort low 011101 best-effort low 011110 best-effort low 011111 best-effort low 100000 best-effort low 100001 best-effort low 100010 best-effort low 100011 best-effort low 100100 best-effort low 100101 best-effort low 100110 best-effort low 100111 best-effort low 101000 best-effort low 101001 best-effort low 101010 best-effort low 101011 best-effort low 101100 best-effort low 101101 best-effort low 101110 expedited-forwarding low 101111 best-effort low 110000 network-control low 110001 best-effort low 110010 best-effort low 110011 best-effort low 110100 best-effort low 110101 best-effort low 110110 best-effort low 110111 best-effort low 111000 network-control low 111001 best-effort low 111010 best-effort low 111011 best-effort low 111100 best-effort low 111101 best-effort low 111110 best-effort low 111111 best-effort low
La clase de reenvío determina la cola de salida. De forma predeterminada, todo el tráfico del mejor esfuerzo usa la cola 0.
Para ver las colas asociadas, de forma predeterminada, con cada clase de reenvío, utilice el show class-of-service forwarding-class
comando. (Para mayor claridad, algunos de los resultados están excluidos.)
user@host> show class-of-service forwarding-class Forwarding class ID Queue best-effort 0 0 expedited-forwarding 1 1 assured-forwarding 2 2 network-control 3 3
Los programadores utilizan la prioridad de pérdida junto con el algoritmo de detección temprana aleatoria (RED) para controlar el descarte de paquetes durante los períodos de congestión. Cuando esté pensando en prioridades de pérdida, tenga en cuenta que, a menos que las configure, no tienen significado. El comportamiento predeterminado de caída es esperar hasta que la cola esté 100 % completa y, luego, comenzar a soltar paquetes de forma indiscriminada. Cuando la cola cae por debajo del 100 % completa, los paquetes dejan de caer.
El comportamiento predeterminado de caída se muestra en el show class-of-service drop-profile
comando.
user@host> show class-of-service drop-profile Drop profile: <default-drop-profile>, Type: discrete, Index: 1 Fill level Drop probability 100 100
Para crear significados para las diversas prioridades de pérdida, debe configurar perfiles de caída personalizados. Por ejemplo, podría definir la prioridad de baja pérdida para significar una probabilidad de caída del 10 % cuando la cola está completa del 75 % y una probabilidad de caída del 40 % cuando el nivel de llenado de la cola es del 95 %. Podría definir la prioridad de alta pérdida para significar una probabilidad de caída del 50 por ciento cuando el nivel de llenado es del 25 por ciento y una probabilidad de caída del 90 por ciento cuando el nivel de llenado es del 50 por ciento. Los perfiles de caída personalizados no se incluyen en este ejemplo, pero se mencionan aquí para mayor claridad, ya que los clasificadores asignan prioridades de pérdida. Es importante comprender que estas asignaciones no tienen sentido hasta que se crean perfiles de caída.
La operación predeterminada del clasificador se muestra en la Figura 1. La figura muestra dos paquetes IPv4 que entran en una interfaz y se clasifican según los puntos de código DSCP en los encabezados del paquete.
Los clasificadores se describen con más detalle en el siguiente video de Byte de aprendizaje de Juniper Networks.
Topología
La figura 2 muestra la red de ejemplo.
Es importante aplicar la configuración de clase de servicio en la topología, en lugar de aplicarla a un solo dispositivo. Además, aunque la clasificación tenga efecto en las interfaces entrantes, debe aplicar clasificadores BA a todas las interfaces de núcleo y de núcleo. Esto se debe a que una sola interfaz puede ser de entrada o de salida, dependiendo de la dirección del tráfico. Por ejemplo, a medida que el tráfico fluye del host 1 al host 2, las interfaces entrantes son ge-1/0/7 en el dispositivo R2 y ge-2/0/6 en el dispositivo R3. A medida que el tráfico fluye en la otra dirección, desde el host 2 hasta el host R1, las interfaces entrantes son ge-1/0/3 en el dispositivo R2 y ge-1/0/7 en el dispositivo R1.
El clasificador de BA no se aplica a ge-1/0/1 en el dispositivo R1 o ge-2/0/5 en el dispositivo R3, ya que estas interfaces no son de núcleo. Generalmente, en las interfaces de borde, se usaría un clasificador de varios campos, no un clasificador ba.
La configuración rápida de CLI muestra la configuración de todos los dispositivos de Juniper Networks en la figura 2. La sección Procedimiento paso a paso describe los pasos en el dispositivo R2.
Configuración
Procedimiento
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red y, luego, copie y pegue los comandos en la CLI en el [edit]
nivel de jerarquía.
Dispositivo R1
set interfaces ge-1/0/1 unit 0 family inet address 172.16.50.2/30 set interfaces ge-1/0/7 unit 0 family inet address 10.30.0.1/30 set class-of-service interfaces ge-1/0/7 unit 0 classifiers dscp default
Dispositivo R2
set interfaces ge-1/0/3 unit 0 family inet address 10.40.0.1/30 set interfaces ge-1/0/7 unit 0 family inet address 10.30.0.2/30 set class-of-service interfaces ge-1/0/3 unit 0 classifiers dscp default set class-of-service interfaces ge-1/0/7 unit 0 classifiers dscp default
Dispositivo R3
set interfaces ge-2/0/5 unit 0 family inet address 172.16.70.2/30 set interfaces ge-2/0/6 unit 0 family inet address 10.40.0.2/30 set class-of-service interfaces ge-2/0/6 unit 0 classifiers dscp default
Procedimiento paso a paso
El siguiente ejemplo requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener instrucciones sobre cómo hacerlo, consulte Uso del editor de CLI en modo de configuración en la Guía del usuario de CLI.
Para habilitar el clasificador de agregado de comportamiento DSCP predeterminado:
-
Configure las interfaces del dispositivo.
[edit interfaces] user@R2# set ge-1/0/3 unit 0 family inet address 10.40.0.1/30 user@R2# set ge-1/0/7 unit 0 family inet address 10.30.0.2/30
-
Habilite el clasificador DSCP predeterminado en las interfaces.
[edit class-of-service interfaces] user@R2# set ge-1/0/3 unit 0 classifiers dscp default user@R2# set ge-1/0/7 unit 0 classifiers dscp default
Resultados
Desde el modo de configuración, ingrese los comandos y show class-of-service
para confirmar la show interfaces
configuración. Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
user@R2# show interfaces ge-1/0/3 { unit 0 { family inet { address 10.40.0.1/30; } } } ge-1/0/7 { unit 0 { family inet { address 10.30.0.2/30; } } }
user@R2# show class-or-service interfaces { ge-1/0/3 { unit 0 { classifiers { dscp default; } } } ge-1/0/7 { unit 0 { classifiers { dscp default; } } } }
Si ha terminado de configurar el dispositivo, ingrese commit
desde el modo de configuración.
Verificación
Confirme que la configuración funciona correctamente.
Verificar clasificadores de agregados de comportamiento
Propósito
Compruebe que el clasificador de agregado de comportamiento predeterminado está habilitado en las interfaces de dispositivo. Tenga en cuenta que, aunque el clasificador opera con paquetes entrantes, puede ver la asignación de cola resultante en la interfaz de salida.
Acción
Desactive las estadísticas de interfaz en el dispositivo R2.
user@R2> clear interface statistics ge-1/0/3
Mediante ping extendido desde el dispositivo R1 o un generador de paquetes que se ejecuta en un host o servidor, envíe paquetes con el punto de código establecido en 001010.
Ambos métodos se muestran aquí. El generador de paquetes utilizado es hping.
Cuando utilice ping extendido para establecer los puntos de código DSCP en el encabezado del paquete IPv4, se requiere el valor decimal de tipo de servicio (ToS) (en este caso, 40) en la
tos
opción delping
comando.Cuando utilice hping para establecer los puntos de código DSCP en el encabezado del paquete IPv4, se requiere el valor hex toS (en este caso, 28) en la
--tos
opción delhping
comando.
Si sus habilidades de conversión de binario a hex o de binario a decimal son oxidadas, puede usar una calculadora en línea, como http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html .
Nota:Cuando convierta un valor de punto de código DSCP binario, asegúrese de agregar dos ceros adicionales al final. Entonces, en lugar de 001010, use 00101000. Estos valores 0 (los bits 7 y 8) se reservan e ignoran, pero si no los incluye en la conversión, sus valores hex y decimales serán incorrectos.
Ping extendido enviado desde el dispositivo R1
user@R1> ping 172.16.70.1 tos 40 rapid count 25 PING 172.16.70.1 (172.16.70.1): 56 data bytes !!!!!!!!!!!!!!!!!!!!!!!!! --- 172.16.70.1 ping statistics --- 25 packets transmitted, 25 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.430/0.477/0.847/0.079 ms
hping enviado desde el host 1
root@host1> hping 172.16.70.1 --tos 28 -c 25 HPING 172.16.70.1 (eth1 172.16.70.1): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.3 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=1 win=0 rtt=0.6 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=2 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=3 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=4 win=0 rtt=0.6 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=5 win=0 rtt=0.3 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=6 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=7 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=8 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=9 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=10 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=11 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=12 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=13 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=14 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=15 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=16 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=17 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=18 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=19 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=20 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=21 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=22 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=23 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=24 win=0 rtt=0.4 ms
En el dispositivo R2, compruebe que la cola 2 se está incrementando.
El punto de código 001010 está asociado con el reenvío garantizado, que usa la cola 2 de forma predeterminada.
user@R2> show interfaces extensive ge-1/0/3 | find "queue counters" Queue counters: Queued packets Transmitted packets Dropped packets 0 0 0 0 1 0 0 0 2 50 25 0 3 3 3 0 Queue number: Mapped forwarding classes 0 best-effort 1 expedited-forwarding 2 assured-forwarding 3 network-control
Significado
El resultado muestra que la cola 2 se ha incrementado en 50 paquetes después de enviar 50 paquetes a través del enrutador.