Configuring Video Optimization over TCP

To optimize video traffic over TCP, begin by enabling the video optimization feature. The appliance then activates the built-in detection policies to detect the incoming video traffic and identify the type of video. User configurable optimization policies for each video type specify the optimization bit rate needed for optimizing the traffic.

Configuring Video Optimization over TCP by using the CLI

To configure video optimization on a NetScaler appliance, you perform the following tasks:

  1. Enable the video optimization feature.
  2. Add virtual servers for HTTP and HTTPS traffic.
  3. Bind all the built-in detection policies to a load balancing virtual server for HTTP traffic.
  4. Bind all the built-in detection policies to an SSL-bridge load balancing virtual server for HTTPS traffic.
  5. Add the desired optimization policies for HTTP and HTTPS traffic.
  6. Bind optimization policies to a load balancing virtual server for HTTP Traffic.
  7. Bind optimization policies to an SSL-bridge load balancing virtual server for HTTPS traffic.

Enabling Video Optimization

If you want the NetScaler appliance to detect, optimize, and report video traffic, you must enable the Video Optimization feature and set optimization to ON. After enabling the feature you can use built-in detection policies to identify the incoming video traffic, and you can configure optimization policies to optimize encrypted ABR traffic. To optimize ABR video traffic, you must configure the download bit rate (also called the pacing rate).

You must also enable the load balancing feature, and if you want to use video optimization for HTTPS traffic you must enable the SSL feature.

To enable the video optimization feature

 At the command prompt, type the following command:

enable ns feature VideoOptimization

Note

If you want to monitor the video optimization performance and video insight reports you must enable the AppFlow feature and then access the Video Analytics feature on Citrix Application Delivery Management (ADM). For more information, see Video Insight documentation.

Creating Virtual Servers for HTTP and HTTPS Video Traffic

A NetScaler appliance uses different virtual servers for detecting and optimizing the different types of incoming video traffic. The appliance supports the following types of virtual servers for TCP traffic.

  • HTTP Load Balancing virtual server. For detecting HTTP video traffic, the appliance uses an HTTP load balancing virtual server. It manages HTTP video requests that the appliance receives from clients.
  • SSL-Bridge Load Balancing virtual server. To detect encrypted video traffic, you must configure an SSL bridge virtual server on the appliance.

To add an HTTP Load Balancing virtual server for detecting HTTP video traffic

At the command prompt, type the following:

add lb vserver <name> HTTP * 80 -persistenceType NONE

Example:

add lb vserver ProxyVserver-HTTP HTTP * 80 -persistenceType NONE -cltTimeout 120

To add an SSL Bridge virtual server for detecting HTTPS video traffic

At the command prompt, type the following:

add lb vserver <name> SSL_BRIDGE * 443 -persistenceType NONE

Example:

add lb vserver ProxyVserver-SSL SSL_BRIDGE * 443 -persistenceType NONE -cltTimeout 180

Binding Built-In Detection Policies to an HTTP Load Balancing Virtual Server

To detect video traffic over an HTTP connection, you must bind all the built-in detection policies to a load balancing virtual server. You must bind the policies to either request-time or response-time processing, depending on the policy type.

To bind detection policies for different video types to an HTTP load balancing virtual server

At the command prompt, type the appropriate command for each type. The available commands are:

bind lb vserver <name> -policyName ns_videoopt_http_abr_netflix -priority <integer> -type (REQUEST | RESPONSE)

bind lb vserver <name>   -policyName ns_videoopt_http_abr_netflix2 -priority <integer> -type (REQUEST | RESPONSE)

bind lb vserver <name>   -policyName ns_videoopt_http_abr_youtube -priority <integer>  -type (REQUEST | RESPONSE)

bind lb vserver <name>    -policyName ns_videoopt_http_pd_youtube -priority <integer>  -type (REQUEST | RESPONSE)

bind lb vserver <name>    -policyName ns_videoopt_http_pd_youtube2  -priority <integer>  -type (REQUEST | RESPONSE)

bind lb vserver  <name>   -policyName ns_videoopt_http_pd_youtube3 -priority <integer>  -type (REQUEST | RESPONSE)

bind lb vserver  <name>  -policyName ns_videoopt_http_abr_generic -priority <integer> -type (REQUEST | RESPONSE)

Example:

bind lb vserver ProxyVserver-HTTP    -policyName ns_videoopt_http_abr_netflix -priority 400  type RESPONSE

bind lb vserver ProxyVserver-HTTP    -policyName ns_videoopt_http_abr_netflix2 -priority 500 -type RESPONSE

bind lb vserver ProxyVserver-HTTP    -policyName ns_videoopt_http_abr_youtube -priority 600  -type RESPONSE

bind lb vserver ProxyVserver-HTTP    -policyName ns_videoopt_http_pd_youtube -priority 800  -type RESPONSE

bind lb vserver ProxyVserver-HTTP    -policyName ns_videoopt_http_pd_youtube2 -priority 900 -type RESPONSE

bind lb vserver  ProxyVserver-HTTP   -policyName ns_videoopt_http_pd_youtube3 -priority 1000 -type REQUEST

bind lb vserver  ProxyVserver-HTTP   -policyName ns_videoopt_http_abr_generic -priority 1100 -type RESPONSE

Binding the HTTP Body Content Detection Policy to Load Balancing Virtual Server

To detect video traffic over HTTP, you must bind the body content detection policy to the load balancing virtual server. You can use the following command:

bind lb vserver <name> -policyName ns_videoopt_http_body_detection -priority <integer> -type (REQUEST | RESPONSE)

Example:

bind lb vserver ProxyVserver-HTTP -policyName ns_videoopt_http_body_detection -priority 1500 -type REQUEST

Binding Built-In Detection Policies to an SSL-Bridge Load Balancing Virtual Server

To detect video traffic over an HTTPS connection, you must bind built-in detection policies to a SSL Bridge load balancing virtual server.

To bind a detection policy to an SSL bridge load balancing virtual server

At the command prompt, type the appropriate command for each type. The available commands are:

bind lb vserver <name> -policyName ns_videoopt_https_abr_netflix -priority <positive_integer> -type (REQUEST | RESPONSE)

bind lb vserver <name> -policyName ns_videoopt_https_abr_youtube -priority <positive_integer> -type (REQUEST | RESPONSE)

bind lb vserver <name> -policyName ns_videoopt_https_abr_generic -priority <positive_integer> -type (REQUEST | RESPONSE)

Example:

bind lb vserver ProxyVserver-SSL -policyName ns_videoopt_https_abr_netflix -priority 120 -type REQUEST

bind lb vserver ProxyVserver-SSL -policyName ns_videoopt_https_abr_youtube -priority 140 -type REQUEST

bind lb vserver ProxyVserver-SSL -policyName ns_videoopt_https_abr_generic -priority 150 -type REQUEST

Adding Optimization Policies for Pacing ABR traffic

To optimize ABR traffic, you have to configure optimization policies and the associated actions. You then bind the policies to the same load balancing virtual servers to which you bound the detection policies. For each policy, create the action first, so that you can include it when you create the policy.

To add an optimization action

At the command prompt, type:

add videooptimization pacingaction <action Name> -rate <integer> [-comment <string>]

Where the rate parameter specifies the rate in Kbps at which to send the traffic (the pacing rate).

Example:

add videooptimization pacingaction MyOptAct2000 -rate 2000

To add an optimization policy

At the command prompt, type:

add videooptimization pacingpolicy <name> -rule <expression> -action <string>

Example:

add videooptimization pacingpolicy myOptPolicy2000 -rule TRUE -action MyOptAct2000

Binding Optimization Policies to an HTTP Load Balancing Virtual Server

To optimize ABR video traffic over an HTTP connection, you must bind the optimization policies to a load balancing virtual server to which the detection policies are bound.

To bind an optimization policy to a Load Balancing virtual server

At the command prompt, type the following command:

bind lb vserver <name> -policyName <policy_name> -priority <positive_integer> -type  (REQUEST | RESPONSE)

Example:

bind lb vserver ProxyVserver-HTTP -policyName myOptPolicy2000 -priority 3400 -type  REQUEST

Binding Optimization Policies to SSL-bridge Virtual Servers

To optimize ABR video traffic over an HTTPS connection, you must bind the optimization policies to the SSL Bridge virtual server to which the built-in detection policies are bound.

To bind an optimization policy to SSL Bridge virtual server for pacing encrypted traffic

At the command prompt, type the following command:

bind lb vserver <name> -policyName <policy_name> -priority <positive_integer> -type  (REQUEST |RESPONSE)

Example:

bind lb vserver ProxyVserver-SSL -policyName myOptPolicy2000 -priority 3400 -type  REQUEST

Setting video optimization pacing parameters

The CLI enables you to set the video optimization pacing parameters, such as random sampling percentage.

To set the random sampling percentage

At the command prompt, type the following command:

set videooptimization parameter –RandomSamplingPercentage <realNumber>

where realNumber is a value from 0.0 to 100.0.

Example:

set videooptimization parameter -RandomSamplingPercentage 50

Configuring Video Optimization over TCP by using the GUI

The GUI enables you to:

  • Enable video optimization feature.
  • Create HTTP load balancing virtual server.
  • Create SSL-bridge load balancing virtual server.
  • Bind built-in detection policies to HTTP load balancing virtual server.
  • Bind built-in detection policies to SSL-bridge load balancing virtual server.
  • Create optimization policy.
  • Create optimization action.
  • Configuring optimization pacing parameter.
  • Bind optimization policy to load balancing virtual server for HTTP traffic.
  • Bind optimization policy to SSL-bridge load balancing virtual server for HTTPS traffic.

To enable video optimization feature

  1. In the navigation pane, expand System, and then click Settings.
  2. On the Settings page, click the Configure Advanced Features link.
  3. On the Configure Advanced Features page, select the Video Optimization check box.
  4. Click OK, and then click Close.  

To create load balancing virtual server for HTTP traffic

  1. Sign in to the NetScaler appliance and navigate to the Traffic Management > Load Balancing > Virtual Servers page.
  2. In the details pane, click Add.
  3. On the Load Balancing Virtual Server screen, set the following parameters:
    1. Name. Name of the load balancing virtual server.
    2. Protocol. Select protocol type as HTTP
    3. IP Address Type. IP address type: IPv4 or IPv6.
    4. IP Address. IPv4 or IPv6 address assigned to the virtual server.
    5. Port. Port number of the virtual server.
  4. Click OK to continue with configuration of other, optional, parameters. For more information, see Creating a Virtual Server.
  5. Click Create and Close.

To create load balancing virtual server for HTTPS traffic

  1. Sign in to the NetScaler appliance and navigate to the Traffic Management > Load Balancing > Virtual Servers page.
  2. In the details pane, click Add.
  3. On the Load Balancing Virtual Server screen, set the following parameters:
    1. Name. Name of the load balancing virtual server.
    2. Protocol. Select protocol type as SSL-bridge.
    3. IP Address Type. IP address type: IPv4 or IPv6.
    4. IP Address. IPv4 or IPv6 address assigned to the virtual server.
    5. Port. Port number of the virtual server.
  4. Click OK to continue with the configuration of other, optional, parameters. For more information, see Creating a Virtual Server.
  5. Click Create and then Close.

To bind a built-in detection policy to a load balancing virtual server

  1. Sign in to the NetScaler appliance and navigate to Traffic Management > Load Balancing > Virtual Servers screen.
  2. In the details pane, select the load balancing virtual server and click Edit.
    1. In the Advanced Setting section, click Policies.
    2. In the Policies section, click the + icon to access the Policies slider.
    3. In the Policies section, set the following parameters.
    4. Choose Policy. Select a video optimization detection policy from the drop-down list.
    5. Choose Type. Select the policy type as Request.
    6. Click Continue.
  3. Select the video detection policy from the list and click Close.

To bind a built-in detection policy to a SSL-bridge load balancing virtual server

  1. Log on to the NetScaler appliance and navigate to the Traffic Management > Load Balancing > Virtual Servers screen.
  2. In the details pane, select the SSL-bridge load balancing virtual server and click Edit.
  3. In the Advanced Setting section, click Policies.
  4. In the Policies section, click the + icon to access the Policies slider.
  5. In the Policies section, set the following parameters.
    1. Choose Policy. Select video optimization detection policy from the drop-down list.
    2. Choose Type. Select the policy type as Request.
  6. Click Continue.
  7. Select the video detection policy from the list and click Close.

To create a video optimization action

  1. Log on to the NetScaler appliance and navigate to Configuration > Optimization > Video Optimization > Pacing > Actions.
  2. In the details pane, click Add.
  3. On the Create Video Optimization Pacing Action page, set the following parameters.
    1. Name. Name of the optimization action.
    2. ABR Optimization Rate (Kbps). Pacing rate at which to send the ABR video traffic. The default rate for ABR optimization is 1000 Kbps. The minimum value is 1, and the maximum value is 2147483647.
    3. Comment. A short description of the action.
  4. Click Create and Close.

To create a video optimization policy

  1. Log on to the NetScaler appliance and navigate to Configuration > Optimization > Video Optimization > Pacing > Policies.
  2. In the details pane, click Add.
  3. On the Create Video Optimization Pacing Policy page, set the following parameters.
    1. Name. Name of the optimization policy
    2. Expression. Custom regrex expressions that implement the policy.
    3. Action. Optimization action associated with the policy to handle the incoming video traffic.
    4. UNDEF Action. Undefined event if the incoming request does not match the optimization policy.
    5. Comment. A short description of the policy.
    6. Log Action. Select the audit log action that creates the desired log messages.
  4. Click Create, and then click Close.

To set video optimization pacing parameters

  1. Log on to the NetScaler appliance and navigate to Configuration > Optimization > Video Optimization.
  2. In the Video Optimization page, click Change Video Optimization Settings link.
  3. In the Video Optimization Settings page, set the following parameter.
    1. Random Sampling Percentage (%). Percentage of packets selected for random sampling.
  4. Click OK and Close.

To bind a video optimization policy to an HTTP load balancing virtual server

  1. Log on to the NetScaler appliance and navigate to Configuration > Optimization > Video Optimization.
  2. On the Video Optimization page, click the Video Optimization Pacing Policy Manager link.
  3. Set the following parameters.
    1. Bind Point. The point at which to apply the optimization policy during request or response processing.
    2. Connection Type.  Connection type as Request or Response.
    3. Virtual Server. The load balancing virtual server to which to bind the policy.
    4. Click Continue.
  4. In the Bind Point section, do one of the following:
    1. Select a policy from the list.
    2. Click Add Binding to access the Policies Binding slider.
      1. Select an existing policy or add a new policy.
      2. Enter binding details and click Bind.
  5. Click Close.

To bind a video optimization policy to an SSL-bridge load balancing virtual server

  1. Log on to the NetScaler appliance and navigate to Configuration > Optimization > Video Optimization.
  2. On the Video Optimization page, click the Video Optimization Pacing Policy Manager link.
  3. On the Video Optimization Policy Manager page, set the following parameters.
    1. Bind Point. The point at which to apply the optimization policy during request/response processing.
    2. Connection Type.  Connection type as Request or Response.
    3. Virtual Server. The SSL-bridge load balancing virtual server to which to bind the policy.
  4. Click Continue.
  5. In the Bind Point section, do one of the following:
    1. Select a policy binding from the list.
    2. Click Add Binding to access the Policies Binding slider.
      1.  Select an existing policy or add a new policy.
      2.  Enter binding details and click Bind.
  6. Click Close.