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 Tenant 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 tenant systems.

Application Quality of Service for Tenant Systems Overview

The application quality of service (AppQoS) feature expands the capability of Junos OS class of service (CoS) for tenant 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.

Tenant 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 tenant system. You can configure a default AppQoS rule set to manage the application- traffic-control within the tenant 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 tenant 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 tenant system as an application service. If the traffic matches the specified application the application-aware quality of service is applied for tenant system.

For AppQoS, traffic is grouped based on rules that associate a defined forwarding class with selected applications for tenant 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 tenant 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 tenant 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 Tenant Systems

This example shows how to enable application quality of service (AppQoS) within a tenant 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 tenant 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 tenant systems. You configure the class of service (CoS) for tenant systems. The AppQoS rule sets are included in the tenant systems 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 tenants TSYS1 class-of-service application-traffic-control rate-limiters HTTP-BW-RL bandwidth-limit 512
set tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 match application junos:HTTP
set tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then forwarding-class best-effort
set tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then dscp-code-point 001000
set tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then loss-priority high
set tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then log
set tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then rate-limit server-to-client HTTP-BW-RL
set tenants TSYS1 security policies from-zone untrust to-zone trust policy from_internet match source-address any
set tenants TSYS1 security policies from-zone untrust to-zone trust policy from_internet match destination-address any
set tenants TSYS1 security policies from-zone untrust to-zone trust policy from_internet match application any
set tenants TSYS1 security policies from-zone trust to-zone trust policy p1 match dynamic-application junos:web
set tenants TSYS1 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 Tenant 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 for a tenant system:

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

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

    content_copy zoom_out_map
    user@host# set tenants TSYS1 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 tenant system TSYS1.

    content_copy zoom_out_map
    user@host# set tenants TSYS1 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 tenant system TSYS1.

    content_copy zoom_out_map
    user@host# set tenants TSYS1 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 tenant system TSYS1.

    content_copy zoom_out_map
    user@host# set tenants TSYS1 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 tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then log
    user@host# set tenants TSYS1 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 tenant system TSYS1.

    content_copy zoom_out_map
    user@host# set tenants TSYS1 security policies from-zone untrust to-zone trust policy from_internet match source-address any
    user@host# set tenants TSYS1 security policies from-zone untrust to-zone trust policy from_internet match destination-address any
    user@host# set tenants TSYS1 security policies from-zone untrust to-zone trust policy from_internet match application any
    user@host# set tenants TSYS1 security policies from-zone trust to-zone trust policy p1 match dynamic-application junos:web
    user@host# set tenants TSYS1 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 tenants TSYS1 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 tenants TSYS1
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 tenant systems.

Action

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

content_copy zoom_out_map
user@host>show class-of-service application-traffic-control counter tenant TSYS1
Tenant System: TSYS1

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 tenant systems.

Action

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

content_copy zoom_out_map
user@host>show class-of-service application-traffic-control statistics rate-limiter tenant TSYS1
Tenant System: TSYS1

pic: 0/0
Meaning

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

footer-navigation