Description

Configure class of service (CoS) on your switch to manage traffic so that when the network experiences congestion and delay, critical applications are protected. Using CoS, you can divide traffic on your switch into classes and provide various levels of throughput and packet loss. This is especially important for traffic that is sensitive to jitter and delay, such as voice traffic.

This example shows how to configure CoS on a single EX Series switch in the network.

 

For Juniper Networks EX series.

Solution

Topology

 

Step-by-Step Procedure

To configure and apply CoS:

  1. Configure one-to-one mappings between eight forwarding classes and eight queues:
[edit class-of-service]
user@switch# set forwarding-classes class app queue-num 5
user@switch# set forwarding-classes class mail queue-num 1
user@switch# set forwarding-classes class db queue-num 2
user@switch# set forwarding-classes class erp queue-num 3
user@switch# set forwarding-classes class video queue-num 4
user@switch# set forwarding-classes class best-effort queue-num 0
user@switch# set forwarding-classes class voice queue-num 6
user@switch# set forwarding-classes class network-control queue-num 7
  1. Define the firewall filter voip_class to classify the VoIP traffic:
[edit firewall]
user@switch# set family ethernet-switching filter voip_class
  1. Define the term voip:
[edit firewall]
user@switch# set family ethernet-switching filter voip_class term voip from source-address 192.168.1.1/28
user@switch# set family ethernet-switching filter voip_class term voip from source-address 192.168.1.2/28
user@switch# set family ethernet-switching filter voip_class term voip protocol udp
user@switch# set family ethernet-switching filter voip_class term voip source-port 2698
user@switch# set family ethernet-switching filter voip_class term voip then forwarding-class voice loss-priority low
  1. Define the term network_control (for the voip_class filter):
[edit firewall]
user@switch# set family ethernet-switching filter voip_class term network_control from precedence [net-control internet-control]
user@switch# set family ethernet-switching filter voip_class term network_control then forwarding-class network-control loss-priority low
  1. Define the term best_effort_traffic with no match conditions (for the voip_class filter):
[edit firewall]
user@switch# set family ethernet-switching filter voip_class term best_effort_traffic then forwarding-class best-effort loss-priority low
  1. Apply the firewall filter voip_class as an input filter to the interfaces for the VoIP phones:
[edit interfaces]
user@switch# set ge-0/0/0 description phone1-voip-ingress-port
user@switch# set ge-0/0/0 unit 0 family ethernet-switching filter input voip_class
user@switch# set ge-0/0/1 description phone2-voip-ingress-port
user@switch# set ge-0/0/1 unit 0 family ethernet-switching filter input voip_class
  1. Apply port shaping on the interface ge-0/0/0:
[edit]
user@switch# set class-of-service interfaces ge-0/0/0 shaping-rate 100m
  1. Define the firewall filter video_class to classify the video traffic:
[edit firewall]
user@switch# set family ethernet-switching filter video_class
  1. Define the term video:
[edit firewall]
user@switch# set family ethernet-switching filter video_class term video from source-address 192.168.1.17/28
user@switch# set family ethernet-switching filter video_class term video protocol udp
user@switch# set family ethernet-switching filter video_class term video source-port 2979
user@switch# set family ethernet-switching filter video_class term video then forwarding-class video loss-priority low
  1. Define the term network_control (for the video_class filter):
[edit firewall]
user@switch# set family ethernet-switching filter video_class term network_control from precedence [net-control internet-control]
user@switch# set family ethernet-switching filter video_class term network_control then forwarding-class network-control loss-priority low
  1. Define the term best_effort_traffic with no match conditions (for the video_class filter):
[edit firewall]
user@switch# set family ethernet-switching filter video_class term best_effort_traffic then forwarding-class best-effort loss-priority low
  1. Apply the firewall filter video_class as an input filter to the interface for the surveillance camera:
[edit interfaces]
user@switch# set ge-0/0/2 description video-ingress-port
user@switch# set ge-0/0/2 unit 0 family ethernet-switching filter input video_class
  1. Define the firewall filter app_class to classify the application server traffic:
[edit firewall]
user@switch# set family ethernet-switching filter app_class
  1. Define the term app (for the app_class filter):
[edit firewall]
user@switch# set family ethernet-switching filter app_class term app from source-address 192.168.1.33/28
user@switch# set family ethernet-switching filter app_class term app protocol tcp
user@switch# set family ethernet-switching filter app_class term app source-port [1494 2512 2513 2598 2897]
user@switch# set family ethernet-switching filter app_class term app then forwarding-class app loss-priority low
  1. Define the term mail (for the app_class filter):
[edit firewall]
user@switch# set family ethernet-switching filter app_class term mail from source-address 192.168.1.34/28
user@switch# set family ethernet-switching filter app_class term mail protocol tcp
user@switch# set family ethernet-switching filter app_class term mail source-port [25 143 389 691 993 3268 3269]
user@switch# set family ethernet-switching filter app_class term mail then forwarding-class mail loss-priority low
  1. Define the term db (for the app_class filter):
[edit firewall]
user@switch# set family ethernet-switching filter app_class term db from source-address 192.168.1.35/28
user@switch# set family ethernet-switching filter app_class term db protocol tcp
user@switch# set family ethernet-switching filter app_class term db source-port [1521 1525 1527 1571 1810 2481]
user@switch# set family ethernet-switching filter app_class term db then forwarding-class db loss-priority low
  1. Define the term erp (for the app_class filter):
[edit firewall]
user@switch# set family ethernet-switching filter app_class term erp from source-address 192.168.1.36/28
user@switch# set family ethernet-switching filter app_class term erp protocol tcp
user@switch# set family ethernet-switching filter app_class term erp source-port [3200 3300 3301 3600]
user@switch# set family ethernet-switching filter app_class term erp then forwarding-class erp loss-priority low
  1. Define the term network_control (for the app_class filter):
[edit firewall]
user@switch# set family ethernet-switching filter app_class term network_control from precedence [net-control internet-control]
user@switch# set family ethernet-switching filter app_class term network_control then forwarding-class network-control loss-priority low
  1. Define the term best_effort_traffic (for the app_class filter):
[edit firewall]
user@switch# set family ethernet-switching filter app_class term best_effort_traffic then forwarding-class best-effort loss-priority low
  1. Apply the firewall filter app_class as an input filter to the interfaces for the servers hosting applications:
[edit interfaces]
user@switch# set ge-0/0/3 unit 0 family ethernet-switching filter input app_class
user@switch# set ge-0/0/4 unit 0 family ethernet-switching filter input app_class
user@switch# set ge-0/0/5 unit 0 family ethernet-switching filter input app_class
user@switch# set ge-0/0/6 unit 0 family ethernet-switching filter input app_class
  1. Configure schedulers:
[edit class-of-service]
user@switch# set schedulers voice-sched shaping-rate percent 10
user@switch# set schedulers voice-sched buffer-size percent 10
user@switch# set schedulers voice-sched priority strict-high
user@switch# set schedulers video-sched priority low
user@switch# set schedulers video-sched transmit-rate percent 15
user@switch# set schedulers app-sched buffer-size percent 10
user@switch# set schedulers app-sched priority low
user@switch# set schedulers app-sched transmit-rate percent 10
user@switch# set schedulers mail-sched buffer-size percent 5
user@switch# set schedulers mail-sched priority low
user@switch# set schedulers mail-sched transmit-rate percent 5
user@switch# set schedulers db-sched buffer-size percent 10
user@switch# set schedulers db-sched priority low
user@switch# set schedulers db-sched transmit-rate percent 10
user@switch# set schedulers erp-sched buffer-size percent 10
user@switch# set schedulers erp-sched priority low
user@switch# set schedulers erp-sched transmit-rate percent 10
user@switch# set schedulers nc-sched shaping-rate percent 5
user@switch# set schedulers nc-sched buffer-size percent 5
user@switch# set schedulers nc-sched priority strict-high
user@switch# set schedulers nc-sched transmit-rate percent 5
user@switch# set schedulers be-sched buffer-size percent 35
user@switch# set schedulers be-sched priority low
user@switch# set schedulers be-sched transmit-rate percent 35

 

  1. Assign the forwarding classes to schedulers with the scheduler map ethernet-cos-map:
[edit class-of-service]
user@switch# set scheduler-maps ethernet-cos-map forwarding-class voice scheduler voice-sched
user@switch# set scheduler-maps ethernet-cos-map forwarding-class video scheduler video-sched
user@switch# set scheduler-maps ethernet-cos-map forwarding-class app scheduler app-sched
user@switch# set scheduler-maps ethernet-cos-map forwarding-class mail scheduler mail-sched
user@switch# set scheduler-maps ethernet-cos-map forwarding-class db scheduler db-sched
user@switch# set scheduler-maps ethernet-cos-map forwarding-class erp scheduler erp-sched
user@switch# set scheduler-maps ethernet-cos-map forwarding-class network-control scheduler nc-sched
user@switch# set scheduler-maps ethernet-cos-map forwarding-class best-effort scheduler be-sched
  1. Associate the scheduler map with the outgoing interfaces:
[edit class-of-service interfaces]
user@switch# set ge-0/0/20 scheduler-map ethernet-cos-map
user@switch# set ge-0/0/21 scheduler-map ethernet-cos-map
  1. Apply queue shaping for the best-effort queue:
[edit]
user@switch# set class-of-service schedulers voice-sched-queue-shap shaping-rate 30m
user@switch# set class-of-service scheduler-maps sched-map-be forwarding-class best-effort scheduler voice-sched-queue-shap
user@switch# set class-of-service interfaces ge-0/0/2 scheduler-map sched-map-be

 

Modification History

9/20/2023