How to Assign Forwarding Classes to Queues in Junos

When classifying traffic, you must match the traffic and assign that traffic to a queue. The branch routers (J-series routers) support up to eight different queues, numbered 0 through 7. By default, the first four of these queues are used by the four forwarding classes:

  • Queue 0 — best effort: Any packet without a DSCP value set is forwarded in this queue. This is the default for all non–network-control traffic.

  • Queue 1 — expedited forwarding: Note that no predefined schedulers are associated with this queue. If you want to use this queue, you need to explicitly configure the forwarding class and then configure the scheduler to be used.

  • Queue 2 — assured forwarding: Note that no predefined schedulers are associated with this queue. If you want to use this queue, you need to explicitly configure the forwarding class and then configure the scheduler to be used.

  • Queue 3 — network control: Network control traffic is forwarded using this queue. Remember that this queue is serviced with a low priority, but traffic isn’t dropped from this queue. The low here means packet loss priority, which is the drop probability bit (with local significance to the device). If the PLP is low, it’s less likely to be dropped during congestion than those having a high priority marking.

Although the default action is to use these queues for the specified forwarding classes, you can still use these queues for other things. In fact, you may want to define different actions for even these four forwarding classes, assigning traffic to different queues.

So the real question here is, “How do you use these in a real network?”

Imagine that the network has the different types of traffic with the corresponding sensitivities to delay and jitter.

Traffic Type Applications Forwarding Class Queue Forwarding Class Name
Voice Real-time voice calls expedited-forwarding 4 cos_voice
Video Streaming video assured-forwarding 5 cos_video
Business critical apps Sales apps, Oracle, etc. assured-forwarding 6 cos_buscrit
Noncritical apps Data sniffers best-effort 7 cos_noncrit

With these types of applications, you may want to create your own queues and then allocate a certain percentage of available bandwidth to these types of applications. Traffic that doesn’t fall into these categories can use the default queues for transit. To use these queues, you have to assign them to forwarding classes, which are then used to forward traffic:

[edit class-of-service]
forwarding-classes {
  queue 0 best-effort;
  queue 1 expedited-forwarding;
  queue 2 assured-forwarding;
  queue 3 network-control;
  queue 4 cos-voice;
  queue 5 cos-video;
  queue 6 cos-buscrit;
  queue 7 cos-noncrit;
}

This configuration defines eight queues into which packets can be distributed. The assumption is that each of these queues will be allocated some percentage of the total bandwidth.

Queues 0 through 3 represent the default queues. You don’t need to explicitly configure them. They’re configured here for illustrative purposes only. You could even configure your own queues in place of these if you wanted to separate, say, certain other applications or signaling traffic.

blog comments powered by Disqus
Advertisement

Inside Dummies.com