AppQoS for Tenant Systems
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:
Read the Application Quality of Service for Tenant Systems Overview to understand how and where this procedure fits in the overall support for AppQos.
No special configuration beyond device initialization is required before configuring this feature.
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.
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:
Configure the AppQoS real-time run information about application rate limiting of current or recent sessions for tenant system TSYS1.
user@host# set tenants TSYS1 class-of-service application-traffic-control rate-limiters HTTP-BW-RL bandwidth-limit 512
Configure the AppQoS rules and application match criteria for tenant system TSYS1.
user@host# set tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 match application junos:HTTP
Configure the AppQoS rules and the forwarding class for tenant system TSYS1.
user@host# set tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then forwarding-class best-effort
Configure the AppQoS rules and the dscp-code-point for tenant system TSYS1.
user@host# set tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then dscp-code-point 001000
Configure the AppQoS rules and the loss priority for tenant system TSYS1.
user@host# set tenants TSYS1 class-of-service application-traffic-control rule-sets RS1 rule RL1 then loss-priority high
Assign the rate limiters for rule-sets.
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
Assign the class-of-service rule set to the security policy for tenant system TSYS1.
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.
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
- Verifying the class-of-service application-traffic-control statistics rate-limiter
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.
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.
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.