Optimizing Junos' QoS Policies for Enhanced Performance

Quality of Service (QoS) is a critical aspect of network engineering, especially when it comes to managing network traffic and ensuring optimal performance. In this blog post, we will delve into the details of how to optimize QoS policies on Junos devices for enhanced performance, a topic that is crucial for students studying for the JNCIS-ENT certification.

Understanding QoS

Before we dive into the specifics of Junos QoS, it's important to understand what QoS is. QoS is a set of techniques to manage network resources by setting priorities for specific types of data on the network. This helps to ensure that critical data gets the bandwidth it needs, even during periods of high network traffic.

Junos QoS Overview

Junos OS supports several QoS features that allow you to classify, prioritize, schedule, and rate-limit traffic. These features include:

Optimizing QoS Policies

Now, let's look at how to optimize these QoS features for enhanced performance.

Class of Service (CoS)

The first step in optimizing QoS is to properly classify your traffic. This involves identifying the different types of traffic on your network and assigning them to appropriate classes. For example, you might have one class for voice traffic, another for video, and another for general data.

In Junos, you can classify traffic based on various criteria, including IP addresses, port numbers, and protocol types. Here's an example of how to classify traffic based on IP addresses:

set class-of-service classifiers inet-precedence source-address forwarding-class voice

This command classifies all traffic from the IP address range into the 'voice' class.

Schedulers and Scheduler Maps

Once you've classified your traffic, you can use schedulers and scheduler maps to control how much bandwidth is allocated to each class. For example, you might want to allocate more bandwidth to voice and video traffic, and less to general data.

Here's an example of how to create a scheduler for the 'voice' class:

set class-of-service schedulers voice bandwidth percent 30

This command allocates 30% of the total bandwidth to the 'voice' class.


Policers allow you to rate-limit traffic to prevent network congestion. For example, you might want to limit the rate of non-critical data to ensure that it doesn't consume all the available bandwidth.

Here's an example of how to create a policer for the 'data' class:

set class-of-service policer data-policer if-exceeding bandwidth-limit 1m
set class-of-service policer data-policer if-exceeding burst-size-limit 50k
set class-of-service policer data-policer then discard

These commands create a policer that discards 'data' class traffic if it exceeds a rate of 1 Mbps or a burst size of 50 KB.

Rewrite Rules

Finally, rewrite rules allow you to modify the CoS values of packets as they pass through the device. This can be useful for ensuring that your QoS policies are applied consistently across your network.

Here's an example of how to create a rewrite rule for the 'voice' class:

set class-of-service rewrite-rules dscp voice class voice dscp 46

This command sets the DSCP value of 'voice' class packets to 46 as they pass through the device.


Optimizing QoS policies on Junos devices is a complex task that requires a deep understanding of network traffic and QoS techniques. However, with the right knowledge and skills, you can effectively manage your network resources and ensure optimal performance. Good luck with your JNCIS-ENT certification studies!

© Ben Jacobson.RSS