Configuración del flujo básico de paquetes a través del proceso CoS de Junos OS
La figura 1 y la figura 2 muestran los componentes de las funciones de CoS de Junos OS, ilustrando la secuencia en la que interactúan.


La siguiente configuración muestra el flujo de paquetes a través del proceso CoS:
Definir clasificadores
Si confía en los valores de CoS en los encabezados de los paquetes, puede usar la clasificación agregada de comportamiento para asignar esos valores a una clase de reenvío y prioridad de eliminación. Por ejemplo:
[edit class-of-service] classifiers { exp exp_classifier { forwarding-class data-queue { loss-priority high code-points 001; loss-priority low code-points 000; } forwarding-class nc-queue { loss-priority high code-points 111; loss-priority low code-points 110; } forwarding-class video-queue { loss-priority high code-points 011; loss-priority low code-points 010; } forwarding-class voice-queue { loss-priority high code-points 101; loss-priority low code-points 100; } }
Si no confía en los valores CoS de los encabezados de los paquetes, puede utilizar la clasificación de varios campos más compleja para asignar tráfico de entrada a una clase de reenvío y prioridad de eliminación. Por ejemplo:
[edit firewall] family inet { filter classify { term sip { from { protocol [ udp tcp ]; port 5060; } then { forwarding-class nc-queue; loss-priority low; accept; } } } }
Ver también
Aplicar clasificadores a paquetes entrantes en interfaces
Los clasificadores agregados de comportamiento se aplican a las interfaces lógicas en el nivel de [edit class-of-service interfaces]
jerarquía. Por ejemplo:
[edit class-of-service] interfaces { so-* { unit 0 { classifiers { exp exp_classifier; } } } t3-* { unit 0 { classifiers { exp exp_classifier; } } } }
Los clasificadores de varios campos se aplican como filtros de entrada a las interfaces lógicas en el nivel jerárquico [edit interfaces]
. Por ejemplo:
[edit interfaces] fe-0/0/2 { unit 0 { family inet { filter { input classify; } address 10.12.0.13/30; } } }
Definir políticas para limitar el tráfico y controlar la congestión
Si necesita limitar la velocidad de un flujo de tráfico, ya sea descartando el exceso de tráfico (vigilancia rígida) o reasignando el exceso de tráfico a una clase de reenvío diferente o prioridad de pérdida (vigilancia suave), defina una política y aplique el aplicador a un filtro de firewall para ese flujo de tráfico. Por ejemplo:
[edit firewall] policer be-lp { if-exceeding { bandwidth-limit 10m; burst-size-limit 62500; } then loss-priority high; } family inet { filter be-lp { term t1 { from { protocol tcp; port 80; } then policer be-lp; then loss-priority low; then accept; } } }
Ver también
Definir perfiles de caída
Utilice perfiles de caída para definir las probabilidades de caída en todo el rango de ocupación del búfer de retardo, lo que respalda el proceso de detección temprana aleatoria (RED).
[edit class-of-service] drop-profiles { be-red { fill-level 20 drop-probability 25; fill-level 30 drop-probability 50; fill-level 40 drop-probability 75; fill-level 50 drop-probability 100; } }
Ver también
Asignar cada clase de reenvío a una cola
Para proporcionar servicios diferenciados a cada clase de reenvío, asigne cada clase de reenvío a su propia cola de salida. Por ejemplo:
[edit class-of-service] forwarding-classes { queue 0 data-queue; queue 1 video-queue; queue 2 voice-queue; queue 3 nc-queue; }
Ver también
Definir programadores
Defina las características del programador para cada clase de reenvío. Por ejemplo:
[edit class-of-service] schedulers { # data-scheduler { buffer-size percent 50; drop-profile-map loss-priority high protocol any drop-profile be-red; priority low; transmit-rate percent 50; } nc-scheduler { buffer-size percent 5; priority high; transmit-rate percent 5; } video-scheduler { buffer-size percent 25; priority strict-high; transmit-rate percent 25; } voice-scheduler { buffer-size percent 20; priority high; transmit-rate percent 20; } }
Ver también
Definir mapas del programador
Utilice asignaciones de programador para asignar programadores a clases de reenvío. Por ejemplo:
[edit class-of-service] scheduler-maps { sched1 { forwarding-class data-queue scheduler data-scheduler; forwarding-class nc-queue scheduler nc-scheduler; forwarding-class video-queue scheduler video-scheduler; forwarding-class voice-queue scheduler voice-scheduler; } }
Ver también
Definir reglas de reescritura de encabezado de CoS
Use reglas de reescritura para redefinir el patrón de bits CoS de los paquetes salientes. Por ejemplo:
[edit class-of-service] rewrite-rules { inet-precedence inet-rewrite { forwarding-class data-queue { loss-priority high code-point 001; loss-priority low code-point 000; } forwarding-class nc-queue { loss-priority high code-point 111; loss-priority low code-point 110; } forwarding-class video-queue { loss-priority high code-point 101; loss-priority low code-point 100; } forwarding-class voice-queue { loss-priority high code-point 011; loss-priority low code-point 010; } } }
Ver también
Aplicar asignaciones de programador y reglas de reescritura a interfaces de salida
[edit class-of-service] interfaces { ge-* { scheduler-map sched1; unit * { rewrite-rules { inet-precedence inet-rewrite; } } } }