ADC

HTTP/3 configuration and Stat summary

To configure a HTTP/3 protocol for sending multiple streams of HTTP/3 data using Quick UDP Internet Connections (QUIC), follow these steps:

Frontend configuration:

  1. Enable SSL and load balancing features.
  2. Add load balancing and content switching (optional) virtual servers of type HTTP_QUIC.
  3. Associate QUIC profile with the HTTP_QUIC virtual servers.
  4. Enable HTTP/3 on the HTTP_QUIC virtual server.
  5. Bind the SSL certificate-key pair with the HTTP_QUIC virtual servers.
  6. Associate the SSL/TLS profile with the HTTP_QUIC virtual servers.

Backend configuration:

  1. Enable SSL and load balancing features.
  2. Add services or service groups of type HTTP_QUIC.
  3. Associate QUIC profile with the HTTP_QUIC services or service groups.
  4. Associate the SSL/TLS profile with the HTTP_QUIC services or service groups.
  5. Add a custom monitor of type QUIC.
  6. Associate a QUIC monitor to the HTTP_QUIC services or service groups.

Enable SSL and load balancing

Before you begin, make sure that the SSL and Load Balancing features are enabled on the appliance. Enabling SSL and load balancing provides a robust solution that enhances both the security and performance of your network. SSL ensures that data is protected, while load balancing ensures that services remain responsive and available even under high traffic conditions.

At the command prompt type:

enable ns feature ssl lb
<!--NeedCopy-->

Add load balancing and content switching (optional) virtual servers of type HTTP_QUIC for HTTP/3 service

You add a load balancing virtual server to accept HTTP/3 traffic over QUIC.

Note:

The load balancing virtual server of type HTTP_QUIC has built-in QUIC, SSL, and HTTP3 profiles. If you prefer to create user-define profiles, you can add new profiles and bind it with the load balancing virtual server.

add lb vserver <vserver-name> HTTP_QUIC <IP-address> <UDP-listening-port>
add cs vserver <vserver-name> HTTP_QUIC <IP-address> <UDP-listening-port>
<!--NeedCopy-->

Example:

add lb vserver lb-http3 HTTP_QUIC 1.1.1.1 443
add cs vserver cs-http3 HTTP_QUIC 10.10.10.10 443
<!--NeedCopy-->

Associate QUIC profile with HTTP_QUIC virtual server

You can create a QUIC profile and specify QUIC parameters for the QUIC service and associate it to the load balancing virtual server. You must either create a user-defined profile or use the in-built QUIC profile and bind the profile to the load balancing virtual server.

Step 1: Configure a user-defined QUIC profile.

At the command prompt, type:

set quic profile <profile_name> -transport_param <value>
<!--NeedCopy-->

Example:

set quic profile quic_http3 -ackDelayExponent 10 -activeConnectionIDlimit 4

The different QUIC transport parameters are as follows:

  • -ackDelayExponent An integer value advertised by NetScaler to the remote QUIC endpoint, indicating an exponent that the remote QUIC endpoint must use to decode the ACK Delay field in QUIC ACK frames sent by NetScaler.

  • -activeConnectionIDlimit An integer value advertised by NetScaler to the remote QUIC endpoint. It specifies the maximum number of QUIC connection IDs from the remote QUIC endpoint, that NetScaler is willing to store.

  • -activeConnectionMigration Specify whether NetScaler must allow the remote QUIC endpoint to perform active QUIC connection migration.

  • -congestionCtrlAlgorithm Specify the congestion control algorithm to be used for QUIC connections.

  • -initialMaxData An integer value advertised by NetScaler to the remote QUIC endpoint, specifying the initial limit (in bytes) for the amount of data that can be sent on a QUIC connection.

  • -initialMaxStreamDataBidiLocal An integer value advertised by NetScaler to the remote QUIC endpoint, specifying the initial flow control limit (in bytes) for bi-directional QUIC streams initiated by NetScaler.

  • -initialMaxStreamDataBidiRemote An integer value advertised by NetScaler to the remote QUIC endpoint, specifying the initial flow control limit (in bytes) for bi-directional QUIC streams started by the remote QUIC endpoint.

  • -initialMaxStreamDataUni An integer value advertised by NetScaler to the remote QUIC endpoint, specifying the initial flow control limit (in bytes) for uni-directional streams started by the remote QUIC endpoint.

  • -initialMaxStreamsBidi An integer value advertised by NetScaler to the remote QUIC endpoint, specifying the initial maximum number of bi-directional streams the remote QUIC endpoint must initiate.

  • -initialMaxStreamsUni An integer value advertised by NetScaler to the remote QUIC endpoint, specifying the initial maximum number of uni-directional streams the remote QUIC endpoint must initiate.

  • -maxAckDelay An integer value advertised by NetScaler to the remote QUIC endpoint, specifying the maximum amount of time (in milliseconds) by which NetScaler delays sending acknowledgments.

  • -maxIdleTimeout An integer value advertised by NetScaler to the remote QUIC endpoint, specifying the maximum idle timeout (in seconds) for a QUIC connection. A QUIC connection is silently discarded by NetScaler if it remains idle for too long. The idle timeout is determined by the minimum of the timeout values advertised by NetScaler and the remote QUIC endpoint. Also, the connection is discarded if it remains idle for three times the current Probe Timeout (PTO).

  • -maxUDPPayloadSize An integer value advertised by NetScaler to the remote QUIC endpoint, specifying the size of the largest UDP datagram payload, in bytes, that NetScaler is willing to receive on a QUIC connection.

  • -newTokenValidityPeriod An integer value, specifying the validity period, in seconds, of address validation tokens issued through QUIC NEW_TOKEN frames sent by NetScaler.

  • -retryTokenValidityPeriod An integer value, specifying the validity period, in seconds, of address validation tokens issued through QUIC Retry packets sent by NetScaler.

  • -statelessAddressValidation Specify whether NetScaler must perform stateless address validation for QUIC clients, by sending tokens in QUIC Retry packets during QUIC connection establishment, and by sending tokens in QUIC NEW_TOKEN frames after QUIC connection establishment.

Step 2: Associate the user-defined QUIC profile to a load balancing virtual server of type HTTP_QUIC

At the command prompt, type:

set lb vserver <name>@ [[-IPAddress <ip_addr|ipv6_addr|*>@]  <serviceName>@] [-persistenceType <persistenceType>] [-quicProfileName <string>]
<!--NeedCopy-->

Example:

set lb vserver lb-http3 -quicProfileName quic_http3

Enable and bind HTTP/3 on a HTTP_QUIC virtual server

To enable HTTP/3 on an HTTP_QUIC virtual server, a set of configuration parameters is added to the HTTP profile configuration. To facilitate ease of configuration, when you add an HTTP_QUIC virtual server, a new default or built-in HTTP profile is available on the appliance. The profile has the HTTP/3 support set to ENABLED and is bound to the HTTP_QUIC virtual servers unless a user-added HTTP profile is associated. The HTTP/3 parameters in the HTTP profile determine whether to select and advertise the HTTP/3 protocol during the TLS Application Layer Protocol Negotiation (ALPN) extension in the QUIC handshake.

You can create a HTTP/3 profile and specify HTTP parameters for the HTTP/3 service and load balancing virtual server. You must either create a user-defined profile or use the in-built HTTP/3 profile and bind the profile to the load balancing virtual server.

Step 1: Configure a user-defined HTTP/3 profile.

At the command prompt, type:

Add ns httpProfile <profile_name> -http3 ENABLED
<!--NeedCopy-->

Example:

add ns httpProfile http3_quic –http3 ENABLED

Step 2: Bind the user-defined HTTP/3 profile to a load balancing virtual server of type http_quic

At the command prompt, type:

set lb vserver <name>@ [-IPAddress <ip_addr|ipv6_addr|*>@]  <serviceName>@] [-persistenceType <persistenceType>] [-httpProfileName <string>]
<!--NeedCopy-->

Example:

set lb vserver lb-http3 –httpProfileName http3_quic

Bind SSL certificate-key pair with HTTP_QUIC virtual server

For processing encrypted traffic, you must add an SSL certificate-key pair and bind it to the HTTP_QUIC virtual server.

At the command prompt, type:

bind ssl vserver <vServerName> -certkeyName <certificate-KeyPairName>

<!--NeedCopy-->

Example:

bind ssl vserver lb-http3 -certkeyName rsa_certkeypair

For more information, see Bind SSL certificate topic.

Bind SSL/TLS profile with a HTTP_QUIC virtual server

Virtual servers of the type HTTP_QUIC have in-built TLS 1.3 server functionality because the QUIC protocol uses TLS 1.3 as a mandatory security component. To configure a HTTP_QUIC virtual server, a new default or built-in SSL profile of type -QUIC-FrontEnd is added. The SSL profile has TLS 1.3 version enabled with TLS 1.3 cipher suites (and elliptic curves) configured. The SSL profile must then be bound to the newly added HTTP_QUIC virtual servers. You can create an SSL profile and specify SSL encryption parameters for the Transport Layer Protocol (TLP) version 1.1 service and load balancing virtual server. You must either create a user-defined profile or use the in-built SSL profile and bind the profile to the load balancing virtual server.

Step 1: Configure a user-defined SSL profile.

At the command prompt, type:

add ssl profile <name> -sslprofileType QUIC-FrontEnd
<!--NeedCopy-->

Example:

add ssl profile ssl_profile1 -sslprofileType QUIC-FrontEnd -tls13 ENABLED -tls12 DISABLED -tls11 DISABLED -tls1 DISABLED

Step 2: Bind the user-defined SSL profile to a load balancing virtual server of type HTTP_QUIC.

At the command prompt, type:

set ssl vserver <name>@ [-sslProfile <string>]
<!--NeedCopy-->

Example:

set ssl vserver lb-http3 -sslprofile ssl_profile1

Add services or service groups of type HTTP_QUIC

Adding services of type HTTP_QUIC allows you to configure individual network services to use the QUIC protocol for their communication. This setup ensures that each service can take full advantage of the performance and security benefits provided by QUIC.

At the command prompt, type:

add service <serviceName> <IPaddress> <serviceType> <port>
add serviceGroup <serviceGroupName> <serviceGroupType>
<!--NeedCopy-->

Example:

add service http_quic_service1 192.0.2.5 HTTP_QUIC 443
add serviceGroup http_quic_serviceGroup1 HTTP_QUIC
<!--NeedCopy-->

Associate QUIC profile with HTTP_QUIC services or service groups

By associating QUIC profile with HTTP_QUIC services or service groups, you ensure that these services can use the benefits of QUIC. This includes improved performance, faster connection establishment, and enhanced security features.

At the command prompt, type:

set service <serviceName> -quicProfile <quicProfileName>
set serviceGroup <serviceGroupName> -quicProfile <quicProfileName>
<!--NeedCopy-->

Example:

set service http_quic_service1 -quicProfile quic_profile1
set serviceGroup http_quic_serviceGroup1 -quicProfile quic_profile1
<!--NeedCopy-->

Associate the SSL/TLS profile with HTTP_QUIC services or service groups

By associating the SSL/TLS profile with HTTP_QUIC services or service groups, you ensure that the data transmitted over these services is encrypted and secure. This association helps in maintaining the confidentiality and integrity of the data, protecting it from potential eavesdropping and tampering.

To configure an HTTP_QUIC service or service group with the new default SSL profile of type QUIC-BackEnd, follow these steps:

Step 1: Create an SSL profile of type QUIC-BackEnd.

You can either create a user-defined profile or use the built-in SSL profile. The QUIC-BackEnd SSL profile is pre-configured with TLS 1.3 (along with appropriate TLS 1.3 cipher suites) and elliptic curves.

add ssl profile <name> -sslprofileType <Type>
<!--NeedCopy-->

Example:

add ssl profile ssl_profile1 -sslprofileType QUIC-BackEnd -tls13 ENABLED -tls12
DISABLED -tls11 DISABLED -tls1 DISABLED
<!--NeedCopy-->

Step 2: Bind the SSL profile to HTTP_QUIC service or service group.

At the command prompt, type:

set ssl service <serviceName> -sslProfile <sslProfileName>
set ssl serviceGroup <serviceGroupName> -sslProfile <sslProfileName>
<!--NeedCopy-->

Example:

set ssl service http_quic_service1 -sslProfile ssl_profile1
set ssl serviceGroup http_quic_serviceGroup1 -sslProfile ssl_profile1
<!--NeedCopy-->

Add a custom monitor of type QUIC

Adding a custom monitor of type QUIC allows you to actively monitor the health and performance of services that use the QUIC protocol. This type of monitor can check various metrics such as connection latency, packet loss, and throughput, ensuring that your QUIC-enabled services are functioning optimally.

At the command prompt, type:

add lb monitor <monitor name> <monitor type>
<!--NeedCopy-->

Example:

add lb monitor quic_monitor QUIC
<!--NeedCopy-->

Associate a QUIC monitor to the HTTP_QUIC services or service groups

At the command prompt, type:

bind service <serviceName> -monitorName <monitorName>
bind serviceGroup <serviceGroupName> -monitorName <monitorName>
<!--NeedCopy-->

Example:

bind service http_quic_service1 -monitorName quic_monitor1
bind serviceGroup http_quic_servicegroup1 -monitorName quic_monitor1
<!--NeedCopy-->

Enable SSL and load balancing features by using the GUI

Complete the following steps to enable SSL and load balancing features:

  1. Navigate to System > Settings.
  2. On the Configure Basic Features page, select the SSL and Load Balancing.
  3. Click OK to enable the features.

GUI for enabling SSL and load balancing features

Add load balancing and content switching (optional) virtual servers of type HTTP_QUIC by using the GUI

  1. Navigate to Traffic Management > Load Balancing > Virtual Servers.
  2. Click Add to create a load balancing virtual server of type HTTP_QUIC.
  3. On the Load Balancing Virtual Server page, click Profiles.
  4. In the Profiles section, select the profile type as QUIC. Note: QUIC, HTTP/3 and SSL profiles are built-in ones.
  5. Click OK and then Done.

Add load balancing and content switching (optional) virtual servers

Associate QUIC profile with the HTTP_QUIC virtual server by using the GUI

Step 1: Add QUIC profile.

  1. Navigate to System > Profiles > QUIC Profile.
  2. Click Add.
  3. On the QUIC Profile page, set the following parameters. Each parameter helps to fine-tune the behavior and performance of QUIC connections. For a detailed description of each parameter, see the Associate QUIC protocol CLI section.

    1.  `Ack Delay` Exponent
    1.  Active Connection ID Limit
    1.  Active Connection Migration
    1.  Congestion Control Algorithm
    1.  Initial Maximum Data
    1.  Initial Maximum Stream Data Bidi Local
    1.  Initial Maximum Stream Data Bidi Remote
    1.  Initial Maximum Stream Data Unit
    1.  Initial Maximum Stream bidi
    1.  Initial Maximum Stream Uni
    1.  Maximum Acknowledgment Delay
    1.  Maximum Idle Timeout
    1.  Maximum UDP Data GramsperBurst
    1.  New Token Validity Period
    1.  Retry Token Validity Period
    1.  Stateless Address Validation
    
    <!--NeedCopy-->
    

    Associate QUIC profile with the HTTP_QUIC virtual server

Step 2: Associate QUIC profile with load balancing virtual server of type HTTP_QUIC.

  1. In the Traffic Management > Virtual Server, select the virtual server of type HTTP_QUIC.
  2. In the Profiles section, select the QUIC profile.

    Note:

    QUIC, HTTP/3 and SSL profiles are built-in ones.

  3. Click OK and then Done.

Associate SSL/TLS profile with the virtual server of type SSL by using the GUI

Step 1: Add SSL profile.

  1. Navigate to System > Profiles > SSL Profile.
  2. Click Add.
  3. On the QUIC Profile page, set the SSL parameters. For a detailed description, see the SSL Profile configuration topic.
  4. Click OK and Close.

    Associate SSL/TLS protocol parameters with the virtual server of type SSL

Step 2: Associate SSL profile with a load balancing virtual server of type SSL.

  1. In the Traffic Management > Virtual Server, select a virtual server.
  2. In the SSL profile section, select the SSL profile.
  3. Click OK and then Done.

    Associate SSL profile with load balancing virtual server of type SSL

Add services or service groups of the type HTTP_QUIC by using the GUI

  1. Navigate to Traffic Management > Load Balancing > Services or Service Groups.
  2. Click Add to create a service or service group.
  3. Enter a name for the service or service group.
  4. Select HTTP_QUIC from the Protocol drop-down menu.
  5. Configure the other settings as required.
  6. Click Create to add the service or service group.

Associate QUIC profile with the HTTP_QUIC services or service groups by using the GUI

Step1: Edit the service or service group.

  1. Navigate to Traffic Management > Load Balancing > Services/service groups.
  2. Select the HTTP_QUIC service or service group that you want to configure.
  3. Click Edit.

Step 2: Associate QUIC profile.

  1. On the Load Balancing Service or Load Balancing Service Group page, go to the Profiles tab and click Edit.
  2. Create a QUIC profile or select the previously created QUIC profile from the drop-down menu.
  3. Click OK to save the changes.

Associate the SSL/TLS profile with the HTTP_QUIC services or service groups by using the GUI

Step1: Edit the service or service group.

  1. Navigate to Traffic Management > Load Balancing > Services/service groups.
  2. Select the HTTP_QUIC service or service group that you want to configure.
  3. Click Edit.

Step 2: Associate SSL profile.

  1. On the Load Balancing Service or Load Balancing Service Group page, go to the SSL Profile tab and click Edit.
  2. In the SSL profile window, set the SSL Profile Type to QUIC-BackEnd and configure other settings as needed.
  3. Click OK to save the changes.

Associate a QUIC monitor to the HTTP_QUIC services or service groups by using the GUI

Step 1: Create a QUIC monitor.

  1. Go to Traffic Management > Load Balancing > Monitors.
  2. Click Add to create a monitor.
  3. On the Create Monitor page, set the Type to QUIC and configure other settings as needed.
  4. Click Create to save the monitor.

Step 2. Bind the QUIC monitor to a HTTP_QUIC service or service group.

  1. Navigate to Traffic Management > Load Balancing > Services or Service Groups.
  2. Select the HTTP_QUIC service or service group that you previously created and click Edit.
  3. Go to the Monitors tab.
  4. On the Service Load Balancing Monitor Binding page, click Add Binding.
  5. In the Load Balancing Monitor Binding window, select the QUIC monitor you created.
  6. Click Bind to associate the monitor with the service or service group.
  7. Click Close to complete the binding.

View QUIC and HTTP/3 statistics

The following commands display a detailed summary of QUIC and HTTP3 statistics. At the command prompt, type the following:

> stat quic
> stat quic –detail
<!--NeedCopy-->

To clear the statistics display, type one of the following:

> stat quic -clearstats basic
> stat quic -clearstats full

<!--NeedCopy-->

To display a detailed summary of HTTP/3 statistics:

> stat http3
> stat http3 –detail
<!--NeedCopy-->

To clear the statistics display, type one of the following:

> stat http3 -clearstats basic
> stat http3 -clearstats full
<!--NeedCopy-->
HTTP/3 configuration and Stat summary