Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
list Table of Contents
file_download PDF
{ "lLangCode": "en", "lName": "English", "lCountryCode": "us", "transcode": "en_US" }
English
keyboard_arrow_right

AppQoS for Logical Systems

date_range 09-Jun-23

Application quality of service (AppQoS) enable you to identify and control access to specific applications and provides the granularity of the stateful firewall rule base to match and enforce quality of service (QoS) at the application layer. AppQoS feature expands the capability of Junos OS class of service (CoS) for logical systems.

Application Quality of Service Support for Logical Systems Overview

The application quality of service (AppQoS) feature expands the capability of Junos OS class of service (CoS) for logical systems. This includes marking DSCP values based on Layer-7 application types, honoring application-based traffic through loss priority settings, and controlling transfer rates on egress PICs based on Layer-7 application types.

When a network experiences congestion and delay, some packets must be dropped. Junos OS CoS allows you to divide traffic into classes and offer various levels of throughput and packet loss when congestion occurs. This allows packet loss to happen according to the rules you configure.

Logical system enables you to partition a single device into multiple domains to perform security and routing functions.

Starting in Junos OS Release 19.3R1, AppQoS is supported when the SRX Series Firewall is configured with logical system. You can configure a default AppQoS rule set to manage the application- traffic-control within the logical system. AppQoS provides the ability to prioritize and meter the application traffic to provide better service to business-critical or high-priority application traffic.

AppQoS rule sets are included in the logical system to implement application-aware quality-of-service control. You can configure a rule set with rules under the application-traffic-control option, and attach the AppQoS rule set to a logical system as an application service. If the traffic matches the specified application the application-aware quality of service is applied for logical system.

For AppQoS, traffic is grouped based on rules that associate a defined forwarding class with selected applications for logical system. The match criteria for the rule includes one or more applications. When traffic from a matching application encounters the rule, the rule action sets the forwarding class, and remarks the DSCP value and loss priority to values appropriate for the application.

The AppQoS DSCP rewriter conveys a packet’s quality of service through both the forwarding class and a loss priority. The AppQoS rate-limiting parameters control the transmission speed and volume for its associated queues for logical system. The default AppQoS rule set is leveraged from one of the existing AppQoS rule sets, which are configured under the [edit class-of-service application-traffic-control] hierarchy level.

Rate limiters are applied in rules based on the application of the traffic for logical system. Two rate limiters are applied for each session: client-to-server and server-to-client. This usage allows traffic in each direction to be provisioned separately.

Example: Configure Application Quality of Service for Logical Systems

This example shows how to enable application quality of service (AppQoS) within a logical system to provide prioritization and rate limiting for the traffic.

Requirements

This example uses the following hardware and software components:

  • An SRX Series Firewall configured with logical systems.

  • Junos OS Release 19.3R1 and later releases.

Before you begin:

Overview

In this example, you configure an AppQoS rule set and invoke AppQoS as an application service in the logical system. You configure the class of service (CoS) for logical system. The AppQoS rule sets are included in the logical system to implement application-aware quality-of-service control.

Configuration

CLI Quick Configuration

To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, copy and paste the commands into the CLI at the [edit] hierarchy level, and then enter commit from configuration mode.

content_copy zoom_out_map
set logical-systems LSYS1 class-of-service application-traffic-control rate-limiters HTTP-BW-RL bandwidth-limit 512
set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 match application junos:HTTP
set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then forwarding-class best-effort
set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then dscp-code-point 001000
set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then loss-priority high
set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then log
set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then rate-limit server-to-client HTTP-BW-RL
set logical-systems LSYS1 security policies from-zone untrust to-zone trust policy from_internet match source-address any
set logical-systems LSYS1 security policies from-zone untrust to-zone trust policy from_internet match destination-address any
set logical-systems LSYS1 security policies from-zone untrust to-zone trust policy from_internet match application any
set logical-systems LSYS1 security policies from-zone trust to-zone trust policy p1 match dynamic-application junos:web
set logical-systems LSYS1 security policies from-zone untrust to-zone trust policy from_internet then permit application-services application-traffic-control rule-set RS1

Configuring AppQoS with a Logical System

Step-by-Step Procedure

The following example requires you to navigate various levels in the configuration hierarchy. For instructions on how to do that, see Using the CLI Editor in Configuration Mode in the Junos OS CLI User Guide.

To configure AppQoS with a Logical System:

  1. Configure the AppQoS real-time run information about application rate limiting of current or recent sessions for logical system LSYS1.

    content_copy zoom_out_map
    user@host# set logical-systems LSYS1 class-of-service application-traffic-control rate-limiters HTTP-BW-RL bandwidth-limit 512
    
  2. Configure the AppQoS rules and application match criteria for logical system LSYS1.

    content_copy zoom_out_map
    user@host# set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 match application junos:HTTP
    
  3. Configure the AppQoS rules and the forwarding class for logical system LSYS1.

    content_copy zoom_out_map
    user@host# set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then forwarding-class best-effort
    
  4. Configure the AppQoS rules and the dscp-code-point for logical system LSYS1.

    content_copy zoom_out_map
    user@host# set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then dscp-code-point 001000
    
  5. Configure the AppQoS rules and the loss priority for logical system LSYS1.

    content_copy zoom_out_map
    user@host# set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then loss-priority high
    
  6. Assign the rate limiters for rule-sets.

    content_copy zoom_out_map
    user@host# set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then log
    user@host# set logical-systems LSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then rate-limit server-to-client HTTP-BW-RL
    
  7. Assign the class-of-service rule set to the security policy for logical system LSYS1.

    content_copy zoom_out_map
    user@host# set logical-systems LSYS1 security policies from-zone untrust to-zone trust policy from_internet match source-address any
    user@host# set logical-systems LSYS1 security policies from-zone untrust to-zone trust policy from_internet match destination-address any
    user@host# set logical-systems LSYS1 security policies from-zone untrust to-zone trust policy from_internet match application any
    user@host# set logical-systems LSYS1 security policies from-zone trust to-zone trust policy p1 match dynamic-application junos:web
    user@host# set logical-systems LSYS1 security policies from-zone untrust to-zone trust policy from_internet then permit application-services application-traffic-control rule-set RS1
    

Results

From configuration mode, confirm your configuration by entering the show logical-systems LSYS1 command. If the output does not display the intended configuration, repeat the configuration instructions in this example to correct it.

content_copy zoom_out_map
user@host# show logical-systems LSYS1
security {
    policies {
        from-zone untrust to-zone trust {
            policy from_internet {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit {
                        application-services {
                            application-traffic-control {
                                rule-set RS1;
                            }
                        }
                    }
                }
            }
        }
        from-zone trust to-zone trust {
            policy p1 {
                match {
                    dynamic-application junos:web;
                }
            }
        }
    }
}
class-of-service {
    application-traffic-control {
        rate-limiters HTTP-BW-RL {
            bandwidth-limit 512;
        }
        rule-sets RS1 {
            rule RL1 {
                match {
                    application junos:HTTP;
                }
                then {
                    forwarding-class best-effort;
                    dscp-code-point 001000;
                    loss-priority high;
                    rate-limit {
                        server-to-client HTTP-BW-RL;
                    }
                    log;
                }
            }
        }
    }
}

If you are done configuring the device, enter commit from configuration mode.

Verification

To confirm that the configuration is working properly, perform the below tasks:

Verifying the class-of-service application-traffic-control counter

Purpose

Verify the class-of-service application-traffic-control counter for logical systems.

Action

To verify the configuration is working properly, enter the show class-of-service application-traffic-control counter logical-system LSYS1 command.

content_copy zoom_out_map
user@host>show class-of-service application-traffic-control counter logical-system LSYS1
Logical System: LSYS1

pic: 0/0
  Counter type                                                    Value
 Sessions processed                                               1
 Sessions marked                                                  0
 Sessions honored                                                 0
 Sessions rate limited                                            0
 Client-to-server flows rate limited                              0
 Server-to-client flows rate limited                              0
 Session default ruleset hit                                      0
 Session ignored no default ruleset                               0
Meaning

The output displays AppQoS DSCP marking and honoring statistics based on Layer 7 application classifiers.

Verifying the class-of-service application-traffic-control statistics rate-limiter

Purpose

Verify the class-of-service application-traffic-control statistics rate-limiter for logical systems.

Action

To verify the configuration is working properly, enter the show class-of-service application-traffic-control statistics rate-limiter logical-system LSYS1 command.

content_copy zoom_out_map
user@host>show class-of-service application-traffic-control statistics rate-limiter logical-system LSYS1
Logical System: LSYS1

pic: 0/0
Meaning

The output displays AppQoS real-time run information about application rate limiting of current or recent sessions.

footer-navigation