ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
1-P11
Application Delivery and Server Load
Balancing Guide
for A10 Thunder® Series and AX™ Series
29 May 2019
© 2019 A10 NETWORKS, INC. CONFIDENTIAL AND PROPRIETARY- ALL RIGHTS RESERVED
Information in this document is subject to change without notice.
PATENT PROTECTION
A10 Networks products are protected by patents in the U.S. and elsewhere. The following website is provided to satisfy the virtual pat-
ent marking provisions of various jurisdictions including the virtual patent marking provisions of the America Invents Act. A10 Net-
works' products, including all Thunder Series products, are protected by one or more of U.S. patents and patents pending listed at:
https://www.a10networks.com/company/legal-notices/a10-virtual-patent-marking
TRADEMARKS
A10 Networks trademarks are listed at:
https://www.a10networks.com/company/legal-notices/a10-trademarks
CONFIDENTIALITY
This document contains confidential materials proprietary to A10 Networks, Inc. This document and information and ideas herein may
not be disclosed, copied, reproduced or distributed to anyone outside A10 Networks, Inc. without prior written consent of A10 Net-
works, Inc.
Anyone who uses the Software does so only in compliance with the terms of the End User License Agreement (EULA), provided later in
this document or available separately. Customer shall not:
1. Reverse engineer, reverse compile, reverse de-assemble, or otherwise translate the Software by any
means.
2. Sub-license, rent, or lease the Software.
DISCLAIMER
This document does not create any express or implied warranty about A10 Networks or about its products or services, including but not
limited to fitness for a particular use and non-infringement. A10 Networks has made reasonable efforts to verify that the information
contained herein is accurate, but A10 Networks assumes no responsibility for its use. All information is provided "as-is." The product
specifications and features described in this publication are based on the latest information available; however, specifications are sub-
ject to change without notice, and certain features may not be available upon initial product release. Contact A10 Networks for current
information regarding its products or services. A10 Networks’ products and services are subject to A10 Networks’ standard terms and
conditions.
ENVIRONMENTAL CONSIDERATIONS
Some electronic components may possibly contain dangerous substances. For information on specific component types, please con-
tact the manufacturer of that component. Always consult local authorities for regulations regarding proper disposal of electronic com-
ponents in your area.
FURTHER INFORMATION
For additional information about A10 products, terms and conditions of delivery, and pricing, contact your nearest A10 Networks loca-
tion, which can be found by visiting www.a10networks.com.
Table of Contents
DEPLOYMENT ........................................................................................................................19
page 3
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 4
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 5
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 6
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 7
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 8
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 9
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
ALG Protocol FWLB Support for FTP and SIP ........................................................................... 363
Overview of FTP and SIP................................................................................................... 363
Topologies for ALG Protocols FTP and SIP ..................................................................... 365
Persistent Sessions for ALG Protocol FWLB .....................................................................................367
FTP Persistent Sessions .................................................................................................................368
SIP Persistent Sessions ...................................................................................................................369
Configuration Parameters for ALG Protocol FWLB ..........................................................................370
Wildcard VIP .......................................................................................................................................370
Session Persistence for FTP and SIP ...........................................................................................373
Health Monitoring for FWLB Paths ...............................................................................................374
Configuration ..................................................................................................................... 375
CLI Examples for SIP ........................................................................................................................380
page 10
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 11
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 12
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
Sample External Health Monitor Script for SNMP-based Load Balancing ..................................489
Configuring SNMP-Based Load Balancing ...................................................................... 490
Use the GUI to Configure SNMP-Based Load Balancing .................................................................491
Use the CLI to Configure SNMP-Based Load Balancing ..................................................................491
page 13
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
LOGGING .............................................................................................................................571
page 14
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 15
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 16
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
Alternate Real Servers and Ports for Individual Backup ........................................................... 697
Alternate Servers ............................................................................................................... 697
Configuration .....................................................................................................................................698
Alternate Ports................................................................................................................... 701
Configuration .....................................................................................................................................702
page 17
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Contents
page 18
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Part I Part I
Deployment
This section describes common application delivery and server load balancing deployment options.
• Share and distribute the load among multiple servers, thus improving throughput and perfor-
mance beyond the capabilities of any single server.
• Provide fault tolerance and redundancy. Distributing the load among multiple devices enables
more network reliability in the event that one server becomes unavailable.
This chapter provides an overview of server load balancing concepts, using example topologies to illus-
trate how an ACOS device can be deployed and covers these topics.
• Networking Modes
• Deployment Modes
• Real Server
• Service Group
Real Server
A real server is the physical servers (either individual servers, or servers in a server farm) connected to
the ACOS device, or to another switch in the network. Figure 1 displays real servers in a basic SLB
deployment.
page 21
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing Terminology
To configure a real server, use the slb server command from the CLI. The minimum configuration for
a real server includes the following:
A virtual IP (VIP) is the virtual server IP address. Clients use this IP address to access the virtual server
and is configured on the ACOS device. To the client, the VIP represents the individual real server or
server farm.
Virtual servers and VIPs are configured by using the slb virtual-server command from the CLI. The
minimum configuration for a virtual server include the following:
page 22
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing Terminology
Service Group
A service group is a group of servers that fulfill a service. Service groups are where load balancing algo-
rithms are applied. Figure 3 displays a topology that utilizes two service groups.
Service groups are configured by using the slb service-group command from the CLI. The minimum
configuration for a service group include the following:
• At least one member real server and port (for example, rs1 and port 80)
page 23
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing Terminology
Below is an example of this minimum configuration. First, configure two real servers “rs1” and “rs2”.
The servers will use port 80 for TCP and port 53 for UDP:
Then, configure the service group “SG_TCP” and add the servers (port 80 only) as members in the
group. Because round robin load balancing is the default algorithm; the method command is not neces-
sary.
Similarly, configure the service group “SG_UDP” to group the UDP servers. This service group also uses
round robin load balancing.
page 24
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing Terminology
Wildcard VIPs enable you to configure a feature that applies to multiple VIPs, without the need to re-
configure the feature separately for each VIP. To specify the subset of VIP addresses and ports for
which a feature applies, you can use an Access Control List (ACL). ACLs also can specify the subset of
clients allowed to access the VIPs, thus ensuring that only legitimate requests are allowed through to
the real servers.
Wildcard VIPs can be used for any type of load balancing. Port 0 is used as a wildcard port to match on
any port number.
• When the ACOS device is deployed in transparent mode in a multi-netted environment, for health
checking of real servers and their application ports located in other subnets.
• When the ACOS device is deployed in either transparent one-arm mode or gateway one-arm
mode.
page 25
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing Terminology
old to a specified unconfigured port are dropped before reaching the ACOS device. This feature is
available on A10 Thunder Series SPE devices.
This example enables hardware blocking of VIP traffic in excess of 1000 packets per second for TCP
traffic and 500 packets per second for UDP traffic.
The clear slb unused-server-ports command deletes real server ports that are not assigned to at
least one service group by removing the corresponding port statements from slb real server configura-
tions. The command removes unused ports from all real servers on the device. See the “Command Line
Interface Reference for ADC” for information about the clear slb unused-server-ports command.
This example displays the effect of the command on a real server configuration.
page 26
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Networking Modes
Networking Modes
The ACOS device can be deployed on the following networking modes for server load balancing:
In transparent mode, the ACOS device has a single IP interface. For multi-netted environments, you can
configure multiple VLANs. IP Source NAT will be required, to allow health checking of servers and their
application ports in other subnets. “Transparent Mode Deployment” on page 29 provides deployment
examples.
ACOS devices deployed in transparent mode do not support VRRP-A high availability.
page 27
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Deployment Modes
Deployment Modes
The ACOS device can be deployed in the following modes for both networking modes.
• Inline Mode
• One-Arm Mode
Inline Mode
In-line topology is a physical topology where an ACOS device has at least two physical connections in
the network; one data Ethernet port is connected to an “upstream” router or switch and another data
Ethernet port is connected to a “downstream” switch or servers. In this topology, all traffic passes
through the ACOS device, which can increase the load on the ACOS device.
One-Arm Mode
In one-arm mode, the ACOS device is connected to a switch or router like an extended arm. All real serv-
ers and applications configured for load balancing are assigned private IP addresses; all other servers
and applications can be assigned public IP addresses with the default gateway pointing to the switch
or router. Only traffic that is destined for the VIP will go to the ACOS device. Because not all traffic is
passed through the ACOS device, one-arm topologies are often used for better performance or server
throughput.
page 28
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 29
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Inline Mode
This example does not use Layer 3 Network Address Translation (NAT) but does use the default SLB
NAT settings. (For a description, see Network Address Translation for SLB.)
The arrows illustrate the flow of traffic in this topology. Requests from clients for virtual server
192.168.1.99 are routed by the Layer 3 router to the ACOS device, which then selects a real server and
sends the request to that server. The server reply passes back through the ACOS device to client.
To use the GUI to configure the topology shown in Figure 4, perform the following tasks:
• Interface Configuration
page 30
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Inline Mode
Interface Configuration
The following screen examples show the GUI pages for basic SLB configuration.
page 31
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Inline Mode
page 32
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Inline Mode
7. Click Update.
8. Repeat this procedure to create a second service group called SG_UDP, with port 53 of both serv-
ers rs1 and rs2 as members of the group.
page 33
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Inline Mode
page 34
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Inline Mode
To use the CLI to configure the topology shown in Figure 4, perform the following tasks:
More information about any of these CLI commands can be found in the “Command Line Interface Refer-
ence for ADC”.
The following commands configure the real servers and ports (80 for TCP traffic, and 53 for UDP):
The following commands configure the service groups, one for TCP and a second for UDP. Round-robin
will be the load balancing algorithm used for both service groups.
page 35
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Inline Mode
The following commands configure the virtual server and VIP, and add service groups to the VIP:
page 36
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Mode in a Multinetted Environment
This example is similar to the example in Figure 4, except the real servers are in separate subnets. Each
server uses the router as its default gateway, but at a different subnet address.
The arrows show the traffic flow for client-server traffic; in this example, between clients and server
192.168.1.10.
To enable the ACOS device to pass traffic for multiple subnets, the device is configured with multiple
VLANs. The interfaces in subnet 192.168.1.x are in VLAN 1. The interfaces in the 192.168.2.x subnet
are in VLAN 2.
NOTE: In this example, each ACOS interface is in only one VLAN and can there-
fore be untagged. the ACOS device could be connected to the router by a
single link, in which case the ACOS link with the router would be in two
VLANs and would need to tagged in at least one of the VLANs. (If an
page 37
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Mode in a Multinetted Environment
The default SLB NAT settings allow client traffic to reach the server in the 192.168.2.x subnet, even
though this is not the subnet that contains the ACOS device’s IP address.
However, in a multinetted environment where the ACOS device is deployed in transparent mode, source
NAT is required, to allow health checking of server 192.168.2.10 and its application port.
In this example, an address pool containing a range of addresses in the 192.168.2.x subnet is config-
ured. The pool configuration includes the default gateway for the 192.168.2.x subnet (192.168.2.1).
Without a gateway specified for the NAT pool, the ACOS device would attempt to send reply traffic
using its own gateway (192.168.1.x), which is in a different subnet. The NAT configuration also includes
enabling source NAT on the service port (in this example, 80) on the virtual server.
The ACOS device initiates health checks using the last (highest numbered) IP address in the pool as the
source IP address. In addition, the ACOS device will only respond to control traffic (for example, man-
agement and ICMP traffic) from the NATted subnet if the control traffic is sent to the last IP address in
the pool.
NOTE: GUI examples are shown here only for the configuration elements that
are new in this section (VLAN and Source NAT pool). For examples of the
GUI screens for the rest of the configuration, see “Transparent Inline
Mode” on page 29.
To use the GUI to configure the topology shown in Figure 5, perform the following tasks:
• Interface Configuration
page 38
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Mode in a Multinetted Environment
page 39
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Mode in a Multinetted Environment
2. Click Create.
3. Enter pool1 in the Name field.
4. Enter 192.168.2.100 in the Start Address field.
5. Enter 192.168.2.101 in the End Address field.
6. Enter 255.255.255.0 in the Netmask field.
7. Click Create.
Interface Configuration
page 40
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Mode in a Multinetted Environment
The following screen examples show the GUI pages for basic SLB configuration.
page 41
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Mode in a Multinetted Environment
page 42
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Mode in a Multinetted Environment
page 43
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Mode in a Multinetted Environment
page 44
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Mode in a Multinetted Environment
To use the CLI to configure the topology shown in Figure 5, perform the following tasks:
More information about any of these CLI commands can be found in the Command Line Interface Reference.
The following commands configure the global IP address and default gateway:
The following commands enable the Ethernet interfaces used in the example:
The following commands configure the VLANs. By default, all ACOS Ethernet data ports are in VLAN 1,
so the only configuration required in this example is to create a second VLAN and add ports to it. The
ports you add to other VLANs are automatically removed from VLAN 1.
page 45
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Transparent Mode in a Multinetted Environment
ACOS(config)# vlan 2
ACOS(config-vlan:2)# untagged ethernet 2
ACOS(config-vlan:2)# untagged ethernet 4
ACOS(config-vlan:2)# exit
The following command configures a pool of IP addresses for use by source NAT. The pool is in the
same subnet as real server 192.168.2.10.
ACOS(config)# ip nat pool pool1 192.168.2.100 192.168.2.101 netmask /24 gateway 192.168.2.1
The following commands configure the virtual server. The source-nat command enables the IP
address pool configured above to be used for NATting health check traffic between the ACOS device
and the real server.
page 46
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 47
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway Inline Deployment Example
The arrows display client-server traffic flow; in this example, between clients and server 192.168.4.101.
Real servers can reach the database server through the ACOS device just as they would through any
other router. Replies to clients still travel from the real servers through the ACOS device back to the cli-
ent.
In this example, the ACOS device has separate IP interfaces in different subnets on each interface con-
nected to the network. The ACOS device can be configured with static IP routes and enabled to run
routing protocols such as OSPF and IS-IS. The example configures a static route as the default route
through 192.0.2.1.
Although this example shows single physical links, you could use trunks as physical links. You also
could use multiple VLANs. In this case, the IP addresses would be configured on Virtual Ethernet (VE)
interfaces, one per VLAN, instead of being configured on individual Ethernet ports.
Since the ACOS device is a router in this deployment, downstream devices can use the ACOS device as
their default gateway. The router connected to port 3 would use 192.168.1.111 as its default gateway,
and the Layer 2 switch connected to 192.168.2.100 would use that address as its default gateway.
If a pair of ACOS devices in a VRRP-A configuration is used, the downstream devices would use a float-
ing IP address shared by the two ACOS devices as their default gateway. (For more on VRRP-A, see the
Configuring VRRP-A High Availability guide.)
page 48
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway Inline Deployment Example
Source NAT is not required for this configuration. The ACOS device can send health checks to the real
servers and receive the replies without NAT.
To use the GUI to configure the topology shown in Figure 6, perform the following tasks:
• Interface Configuration
Interface Configuration
page 49
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway Inline Deployment Example
page 50
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway Inline Deployment Example
page 51
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway Inline Deployment Example
page 52
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway Inline Deployment Example
page 53
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway Inline Deployment Example
To use the CLI to configure the topology shown in Figure 6, perform the following tasks:
• Interface Configuration
page 54
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway Inline Deployment Example
Interface Configuration
These commands enable the Ethernet interfaces used in the example and configure IP addresses on
them:
page 55
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
This example includes use of Access Control Lists (ACLs) to add a layer of security on top of the basic
deployment. An alternative is to use L3V partitions, which allow the ACOS device to be partitioned into
multiple logical devices with their own independent network resources. For more information, see the
Configuring Application Delivery Partitions Guide.
page 56
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
Traffic Flow
The arrows display client-server traffic flow between clients and server 192.168.10.51.
• 192.0.2.10:80 – The ACOS device load balances requests to this VIP to the servers in DMZ1, on
subnet 192.0.2.0 /24.
• 192.168.10.100:80 – The ACOS device load balances requests to this VIP to the servers in DMZ2,
on subnet 192.168.10.0 /24.
page 57
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
The Layer 3 router routes requests to either VIP to the ACOS device. The ACOS physical interface
(Ethernet port 1) connected to the Layer 2 switch is configured with a separate IP interface to each real
server subnet:
• 192.0.2.2 – This IP interface is configured on Virtual Ethernet (VE) interface 10, on VLAN 10.
A default route on the ACOS device routes server reply traffic through the Layer 3 router to clients.
To also prevent Layer 3 traffic from being forwarded between the VLANs, an Access Control List (ACL)
is used. The ACL has the following rules:
• ACL Configuration
page 58
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
ACL Configuration
The ACL blocks Layer 3 traffic between VLANs. The Log option enables generation of log messages
when traffic matches the ACL and is dropped.
The log option enables logging for this ACL, but logging still must be enabled on the system level. Log-
ging is disabled by default. To configure logging, see the “Basic Setup” chapter in the System Configura-
tion and Administration Guide.
This procedure configures an ACL to block traffic from 192.0.2.x (source IP address) to 192.168.10.x
(destination IP address):
page 59
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
page 60
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
page 61
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
page 62
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
page 63
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
page 64
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
• ACL Configuration
• Network Configuration
• SLB Configuration
ACL Configuration
page 65
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
The ACL blocks Layer 3 traffic between VLANs. The log option enables generation of log messages
when traffic matches the ACL and is dropped.
The log option enables logging for this ACL, but logging still must be enabled on the system level. Log-
ging is disabled by default. To configure logging, see the “Basic Setup” chapter in the System Configura-
tion and Administration Guide.
Network Configuration
ACOS(config)# vlan 10
ACOS(config-vlan:10)# tagged ethernet 1
ACOS(config-vlan:10)# router-interface ve 10
ACOS(config-vlan:10)# exit
ACOS(config)# vlan 20
ACOS(config-vlan:20)# tagged ethernet 1
ACOS(config-vlan:20)# router-interface ve 20
ACOS(config-vlan:20)# exit
These commands configure IP interfaces on the VLAN’s VEs. The access-list commands bind ACL
101 to the inbound traffic direction on the interfaces. The ACL does not take effect until it is bound to
the interfaces.
ACOS(config)# interface ve 10
ACOS(config-if:ve:10)# ip address 192.0.2.2 /24
ACOS(config-if:ve:10)# access-list 101 in
ACOS(config-if:ve:10)# exit
ACOS(config)# interface ve 20
ACOS(config-if:ve:20)# ip address 192.168.10.2 /24
ACOS(config-if:ve:20)# access-list 102 in
ACOS(config-if:ve:20)# exit
SLB Configuration
page 66
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
page 67
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gateway One-Arm Deployment Example
page 68
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter provides additional deployment examples for Server Load Balancing (SLB). The following
types of deployment are shown:
page 69
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Transparent Mode
Arrows indicate client-server traffic flow. Client request traffic for virtual server IP address 192.0.2.99 is
routed to the ACOS device. Server reply traffic does not pass back through the ACOS device.
• The ACOS device, virtual server, and the real servers all must be in the same subnet.
page 70
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Transparent Mode
• The virtual server IP address must be configured as a loopback interface on each real server.
(This is performed on the real server itself, not as part of the real server’s configuration on the
ACOS device.)
• DSR must be enabled on the virtual service ports. (Enabling DSR is equivalent to disabling desti-
nation NAT on the return traffic. This allows real servers to respond directly to clients, bypass-
ing the ACOS device and retaining the IP address of the real server in the response to the client.)
For IPv4 VIPs, DSR is supported on virtual port types (service types) TCP, UDP, FTP, and RTSP.
For IPv6 VIPs, DSR is supported on virtual port types TCP, UDP, and RTSP.
• Requirements on the real server:
The target of the Layer 3 health checks can be the real IP addresses of the servers, or the virtual IP
address.
• To send Layer 3 health checks to real server IP addresses, use the default Layer 3 health method
(ICMP).
• To send Layer 3 health checks to a virtual IP address:
• Configure an ICMP health method with the transparent option enabled, and with the alias
address set to the virtual IP address.
• Globally enable DSR health checking.
Layer 4-7 health checks are sent to the same IP address as Layer 3 health checks, then addressed to
the specific protocol port. You can use the default TCP and UDP health monitors or configure new
health monitors. The example uses the default TCP health monitor.
Configuring the topology shown in Figure 8 using the GUI involves the following steps:
page 71
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Transparent Mode
This example does not include configuration of the real servers, or configuration of the virtual server,
other than the steps need to enable DSR.
page 72
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Transparent Mode
Repeat this procedure to create server rs2, with the IP address 192.0.2.4.
This section shows how to use the CLI to configure the topology shown in Figure 8:
page 73
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Transparent Mode
The following commands configure the global IP address and default gateway:
The following commands enable the Ethernet interface connected to the clients and server:
To configure the service group sg-web with port 80 on rs1 and rs2 as members:
page 74
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Route Mode
For DSR to work, a loopback interface with the IP address of the virtual server must be configured on
each real server, and ARP replies from the loopback address must be disabled.
page 75
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Route Mode
The configuration is similar to the DSR in transparent mode, except the ACOS device uses an IP inter-
face configured on an individual Ethernet port instead of a global IP address.
The requirements for the ACOS device and real servers are the same as those for DSR in transparent
mode. (“Direct Server Return in Transparent Mode” on page 69)
The following configuration procedures differ from the instructions provided in “Configure DSR in
Transparent Mode (GUI)” on page 71:
page 76
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Route Mode
The following configuration procedures differ from the instructions provided in “Configuring DSR in
Transparent Mode (CLI)” on page 73. These commands enable the Ethernet interface used in the exam-
ple and configure an IP address on it:
page 77
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Mixed Layer 2/Layer 3 Environment
In this example, two real servers are primary servers for VIP 10.10.10.99:80. They are in the same IP
subnet as the ACOS device. Each of them is configured for DSR: destination NAT is disabled on the vir-
tual port.
Another server, 192.168.2.10, is configured as a backup, to be used only if both primary servers are
unavailable. Since the backup server is a valuable network resource, serving as a server farm backup is
only one of its functions. It also used by other applications elsewhere in the network. The ACOS device
can be configured to use the server as a backup to a DSR server farm, without changing the network
topology.
• In the service group, assign a higher priority to members for the primary servers, so that the
member for the backup server has lower priority. By default, the ACOS device does not use the
lower-priority (backup) server unless all primary servers are down. Use the same priority for all
primary servers.
• Enable destination NAT on the backup server. By default, destination NAT is unset on real ports,
and is set by the virtual port. Normally, destination NAT is disabled on virtual ports used for DSR.
However, destination NAT needs to be enabled on the real port on the backup server.
page 78
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Mixed Layer 2/Layer 3 Environment
Enabling destination NAT for the backup server allows the server to remain on a different subnet
from the ACOS device, and still be used for the VIP that normally is served by DSR. The backup
server does not need to be moved to a Layer 2 connection to the ACOS device and the server’s IP
address does not need to be changed. It can remain on a different subnet from the ACOS device
and the primary servers.
Destination NAT can not be set directly on an individual real port. To enable destination NAT on a
real port, create a real port template and enable destination NAT in the template. You can bind the
template to the real port itself, or to the service group member for the port.
• Templates bound directly to a port are applied to the port in all service groups using the port.
• When binding the template to a service group member, the template applies to ports only in the
service group. The template does not apply to the same port when used in other service groups.
Configure a Port Template to Enable Destination NAT on the Backup Server’s Port
page 79
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return in Mixed Layer 2/Layer 3 Environment
To set the priority values of the primary servers to a higher value than the backup server, re-add the
members for the primary servers’ ports, and use the priority option. Set the priority to a value higher
than 1 (the default). Use the same priority value on each of the primary server’s member ports.
To enable destination NAT on a service port within a service group, use the dest-nat option in a server
port template, then bind that template to the server port in the service group.
The following commands configure a server port template for the backup server:
These commands add members to the service group. (Configuration commands for component mem-
bers are not included):
page 80
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Layer 3 Direct Server Return (IP Tunneling)
The packets from the real servers must appear as though they are actually coming from the ACOS VIP
and not from the real servers. Using IP-in-IP Tunneling helps make this happen.
Using the DSCP value to encode VIP-mappings may not work in all network environments. For example,
the feature is not supported on Windows-based servers.
This release introduces a new mechanism that can be used to get the VIP to appear as the Source
Address in the packet that the real server sends back to the client. This new approach is called IP-in-IP
Tunneling, and it provides a helpful alternative for L3 DSR deployments in which DSCP is not sup-
ported.
page 81
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Layer 3 Direct Server Return (IP Tunneling)
Through this process of encapsulating the original packet, traffic can be reliably carried from the
source network, across a dissimilar transit network, and back to a network that uses the same protocol
as the source network. When the packet reaches the far side of the IP tunnel, the outer header is
stripped off (decapsulated), and the original packet arrives intact.
When IP Tunneling for L3 DSR is enabled on the ACOS device, an extra IP header is added to the client
packet before it is forwarded over the IP tunnel to a real server. These real servers are configured to
strip off the extra IP encapsulation layer, yielding the original packet sent by the client. This packet is
intact and otherwise unaffected by the encapsulation process.
By removing the outer header, the real server now has a packet with the source address of the client
and the destination address of the ACOS VIP. (This would not have been true if the ACOS device had
used standard Source NAT and Destination NAT to process the packet.) When the real server responds
to the client, it crafts its response based upon a “pristine” packet that has not had its source and desti-
nation addresses modified by the NAT process.
When the real server responds to the client, source and destination addresses are reversed:
• The packet’s source address (originally the client IP) is changed to become the ACOS VIP.
• The packet’s destination address (originally the ACOS VIP) is changed to become the client’s IP.
• Whereas using the DSCP value was only supported on Linux servers, IP tunneling for L3 DSR can
be set up on most popular brands of web servers, such as Linux, Unix, or Windows.
• IP tunneling must be configured on each real server for which IP Tunneling for L3 DSR is enabled.
Further, each real server must be configured to decapsulate the packets it receives and send
those packets to the client that originated the request.
• In Direct Server Return (DSR) configurations, member servers in a Service Group must be listen-
ing on the same port. Port translation is not supported in DSR topologies.
• For more information about IP in IP (or "ipencap"), refer to RFC 2003.
Figure 11 shows an ACOS device deployed in an L3 Direct Server Return (DSR) configuration. In DSR
configurations, replies from real servers do not pass through the ACOS device, returning directly to the
client.
In this example, the ACOS device is attached to the network in a “one-armed” configuration, through an
Ethernet port or a trunk. (Our configuration sample shown later in this section uses Ethernet port 3.)
The green arrows show the traffic flow for the traffic from the client at 3.3.3.50 and the real server at
7.7.7.50. Client requests go to the virtual server IP address at 4.4.4.118 (port 80). The ACOS device
encapsulates the packets in an IP Tunnel and then forwards them to real server. The real server de-cap-
sulates the traffic and processes the client’s original packet. However, instead of sending the traffic
page 82
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Layer 3 Direct Server Return (IP Tunneling)
back to the ACOS device, the real server sends the traffic directly to the client, bypassing the ACOS
device.
The target of the Layer 3 health checks can be the real IP addresses of the servers, or the virtual IP
address, depending on your preference.
• To send the Layer 3 health checks to the real server IP addresses, you can use the default Layer 3
health method (ICMP).
• To send the Layer 3 health checks to the virtual IP address instead:
• Configure an ICMP health method with transparent option enabled and alias address set to the
virtual IP address.
• Globally enable DSR health checking.
Layer 4-7 health checks are sent to the same IP address as the Layer 3 health checks, and then
addressed to the specific protocol port. You can use the default TCP and UDP health monitors or con-
figure new health monitors. This example uses the default TCP health monitor.
page 83
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Layer 3 Direct Server Return (IP Tunneling)
When IP tunneling is enabled, health check packets sent to the server are encapsulated when sent
through the IP tunnel.
• In order to preserve the original client IP address, (which will be used as the destination address
for packets sent from the real server to the client), make sure not to enable Source NAT under
the virtual port where the ipinip command is used.
L3 DSR is supported on the following virtual port types (service types): TCP, UDP, FTP, TFTP,
and RTSP for both IPv4 and IPv6 protocols.
• Requirements on the real server:
• A loopback interface must be configured with the virtual server IP address. (If this does not
work on your real server, it may be helpful to configure the real server end of the IP Tunnel with
the ACOS VIP address.)
• ARP replies from the loopback interfaces must be disabled. (This applies to the loopback inter-
faces that have the virtual server IP address.)
• The real server must be configured with an IP Tunnel, and it must be configured to decapsulate
traffic received from the ACOS device over that tunnel.
page 84
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Layer 3 Direct Server Return (IP Tunneling)
ACOS(config-common)# dsr-health-check-enable
ACOS(config-common)# exit
For this configuration, the health monitor must be configured at the service group configuration level. If
you try to apply the health monitor at the server port configuration level, the port may not come up.
For the IP-in-IP Tunneling for L3 DSR feature to work correctly, the following configurations must be
performed on each real server that will be process traffic from the IP tunnel:
• Configure a VIP on the real server and disable ARP for it. This VIP is typically configured as a
loopback interface.
• Configure an IP-in-IP tunnel on each real server.
When properly configured, the real server decapsulates packets received from the IP tunnel, processes
requests in the client’s original packet, and sends responses directly to the client bypassing the ACOS
device.
page 85
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Layer 3 Direct Server Return (IP Tunneling)
page 86
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Part II Part II
Additional Deployment
This section contains additional deployment options for application delivery and server load balancing.
This chapter describes Network Address Translation (NAT) and how to configure it. NAT translates the
source or destination IP address of a packet before forwarding the packet.
NOTE: This chapter does not include information about Carrier Grade NAT
(CGN) or other NAT features for IPv6 migration.
Destination NAT is disabled for virtual ports on which Direct Server Return (DSR) is enabled.
page 89
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Network Address Translation for SLB Overview
• Before forwarding a client packet to a real server, the ACOS device translates the destination IP
address from the virtual server IP address (VIP) to the IP address of the real server.
• ACOS reverses the translation before sending the server reply to the client. The source IP address
is translated from the real server’s IP address to the VIP address.
The default SLB NAT behavior does not translate the client’s IP address.
• The VIP and real servers are in different subnets. In cases where real servers are in a different
subnet than the VIP, source NAT ensures that reply traffic from a server will pass back through
the ACOS device. (See “Source NAT for Servers in Other Subnets” on page 93.)
Connection Reuse
Connection reuse enables you to reuse TCP connections between the ACOS device and real servers for
multiple client sessions. When you enable this feature, the ACOS device does not tear down a TCP con-
nection with the real server each time a client ends its session. Instead, the ACOS device leaves the
TCP connection established, and reuses the connection for the next client that uses the real server.
Connection reuse requires SLB source NAT. Since the TCP connection with the real server needs to
remain established after a client’s session ends, the client’s IP address cannot be used as the source
address for the connection, Instead, the source address must be an IP address from a NAT pool or pool
group configured on the ACOS device.
page 90
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Network Address Translation for SLB Overview
3. If you plan to use policy-based source NAT, to select from among multiple pools based on source
IP address, configure an ACL for each of the client address ranges that will use its own pool.
4. Enable source NAT on the virtual service port and specify the pool or pool group to use for the
source addresses. If you are configuring policy-based source NAT, bind each ACL to its pool.
5. Add the connection reuse template to the service port.
These steps apply specifically to configuration of connection reuse. A complete SLB configuration
also requires standard SLB configuration steps, including configuration of the real servers and ser-
vice group.
page 91
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Network Address Translation for SLB Overview
d. If you are adding a new virtual server, enter the general server settings.
e. In the Virtual Port section, click Create.
The Create Virtual Port window appears.
f. Enter or select the port settings, if the port is new.
g. Do one of the following:
• To use a single pool or pool group for all source addresses, select the Source NAT checkbox.
• Click the pool drop-down list and select the desired pool.
• To use separate pools based on source address, use ACL binding fields to bind each ACL to
a pool.
For each binding, select the ACL ID/Name from the Access List drop-down list, select the pool
from the Source NAT Pool drop-down list, and select the desired sequence number from the
ACL Sequence Number drop-down list, and then click Add.
4. Under the Templates section (near bottom of Virtual Port window), select the “Click here to bind!”
link.
5. From the window that appears, click the Template Type drop-down menu and select Connection
reuse.
6. From the Templates menu, select the name of the conn-reuse template to be bound to the virtual
port.
7. Click Bind.
8. Click Create Virtual Port.
Use the access-list command to configure standard ACLs that match on different client addresses:
These commands configure a real server “s1” and a service group “group80” with server “s1” as a mem-
ber:
page 92
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Network Address Translation for SLB Overview
These commands configure policy-based source NAT, by binding ACLs to NAT pools on the virtual
port.
You can enable source NAT on a virtual port in either of the following ways:
• Use the source-nat option to bind a single IP address pool or pool group to the virtual port. This
option is applicable if all the real servers are in the same subnet.
• Use sets of ACL-pool pairs, one for each real server subnet. You must use this method if the real
servers are in multiple subnets. This section describes how to use this method.
For the real server to be able to send replies back through the ACOS device, use an extended ACL. The
source IP address must match on the client address. The destination IP address must match on the
real server address. The action must be permit.
The ACL should not match on the virtual IP address (unless the virtual IP address is in the same subnet
as the real servers, in which case source NAT is probably not required). Figure 13 on page 94 shows an
example.
page 93
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Network Address Translation for SLB Overview
In this example, a service group has real servers that are located in two different subnets. The VIP is not
in either of the subnets. To ensure that reply traffic from a server will pass back through the ACOS
device, the ACOS device uses IP source NAT.
To implement IP source NAT, two pairs of ACL and IP address pool are bound to the virtual port. Each
ACL-pool pair contains the following:
• An extended ACL whose source IP address matches on client addresses and whose destination
IP address matches on the real server’s subnet.
• An IP address pool or pool group containing translation addresses in the real server’s subnet.
For example, if SLB selects a real server in the 10.10.10.x subnet, then the source IP address is trans-
lated from the client’s address to an address in pool 1. When the server replies, it replies to the address
from pool 1.
In most cases, destination NAT does not need to be configured for SLB. ACOS automatically translates
the VIP address into a real server address before forwarding a request to the server.
CLI Example
The following commands implement the source NAT configuration shown in Figure 13 on page 94.
First, the ACLs are configured. In each ACL, “any” is used to match on all clients. The destination
address is the subnet where the real servers are located.
page 94
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Direct Server Return
The following commands configure the IP address pools. Each pool contains addresses in one of the
real server subnets.
The following commands bind the ACLs and IP address pools to a virtual port on the VIP:
This type of NAT is especially useful for applications that have intensive payload transfers, such as FTP
and streaming media.
When DSR is enabled, only the destination MAC address is translated from the VIP’s MAC address to
the real server’s MAC address. The destination IP address is still the VIP.
To use DSR, the ACOS device and the real servers must be in the same Layer 2 subnet. The VIP address
must be configured as a loopback address on the real servers.
The current release does not support external health monitoring for DSR deployments. To configure
health checking for DSR, see “Configuring Health Monitoring of Virtual IP Addresses in DSR Deploy-
ments” on page 641.
For examples of DSR configurations, see “Direct Server Return (DSR) SLB Deployment” on page 69.
page 95
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
IP NAT Support for VIPs
4. If you are adding a new virtual server, enter the basic settings, such as name and address.
5. In the Virtual Port section of the window, click Create.
The Create Virtual Port window appears.
6. Enter a name for the virtual port, select the desired protocol (UDP or TCP), and enter the port num-
ber.
7. Click on General Fields to display them.
8. Select Enabled next to No Dest NAT.
9. Click Create.
10.Click Update to complete the virtual server configuration.
Enter the no-dest-nat command at the configuration level for the virtual port:
The current release does not support this feature for FTP or RTSP traffic.
These methods are used in the order shown above for Layer 4 traffic. For Layer 7 traffic, VIP source
NAT has priority over ACL-based source NAT.
For example (Layer 4 traffic), if IP source NAT is configured using an ACL on the virtual port, and the slb
snat-on-vip command is also used, then a pool assigned by the ACL is used for traffic that is permitted
by the ACL. For traffic that is not permitted by the ACL, VIP source NAT can be used instead.
page 96
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
IP NAT Support for VIPs
1. Configure a pool, range list, or static inside source NAT mapping that includes real IP addresses of
the inside clients.
2. Enable inside NAT on the interface connected to the inside clients.
3. Enable outside NAT on the interface connected to the external VIP servers.
4. Enable SNAT on VIP – either globally or on individual ports.
The snat-on-vip command is available in global configuration level and in virtual port configuration
level. When SNAT on VIP is globally configured, the feature is available on all ports. When SNAT on
VIP is not globally enabled, it can be enabled on individual ports.
The following commands configure the elements that SNAT on VIP require.
page 97
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using IP Pool Default Gateways To Forward Traffic from Real Servers
This feature is disabled by default. To enable it, use the following commands:
• With VRRP-A high availability – If VRRP-A high availability is configured, Smart NAT uses config-
ured floating IP addresses as NAT addresses.
• Without VRRP-A high availability – If VRRP-A high availability is not configured, then Smart NAT
uses IP address(es) on the ACOS interface connected to the real server.
• If you use VRRP-A high availability, it is recommended to bind a given service group to only a sin-
gle virtual port. If you do bind a service group to multiple virtual ports, it is highly recommended to
assign all the virtual servers to the same VRRP-A VRID.
page 98
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Smart NAT for Virtual Ports
• When a service group is bound to a virtual port, the Smart NAT resources are created for all the
servers belonging to that service group. port. If the selected server does not have Smart NAT
resources, then they are dynamically created. In this case, some initial connections may be
dropped.
• Smart NAT applies only to ACOS devices deployed in route mode (also called “gateway” mode).
The feature is not applicable to devices deployed in transparent mode.
• Smart NAT uses protocol ports 20032-65535.
• You can configure a virtual port to use both Smart NAT and a configured NAT pool. By default,
configured pool addresses are used first and Smart NAT is used only when no more mappings
are available in the configured pool.
Optionally, you can configure Smart NAT to take precedence over the configured NAT pool. In this
case, the configured pool is used only when there are no more available mappings using Smart
NAT.
• If you do not use VRRP-A, real server IP addresses are used for the Smart NAT mappings. Up to
45 K mappings per real server port are supported. ACOS can use the same ACOS interface IP
address and port for more than one server connection. The combination of ACOS IP address and
port number (source) and server IP address and port (destination) uniquely identifies each map-
ping. Smart NAT uses only the primary IP address on an interface, even if multiple addresses are
configured on the interface.
1. Navigate to the ADC >> SLB >> Virtual Servers >> vs1 >> Virtual Port >> Create page.
2. Expand the General Fields section.
3. Select the checkbox in the Source NAT Auto field.
4. If you want Smart NAT to be used before a pool is used, also select the Precedence checkbox.
5. Click Create to save your changes.
The commands in this example configure two virtual ports. Smart NAT is enabled on each virtual port.
ACOS(config)# vlan 10
ACOS(config-vlan:10)# tagged ethernet 1
ACOS(config-vlan:10)# router-interface ve 10
ACOS(config-vlan:10)# exit
page 99
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Smart NAT for Virtual Ports
ACOS(config)# vlan 20
ACOS(config-vlan:20)# tagged ethernet 2
ACOS(config-vlan:20)# router-interface ve 20
ACOS(config-vlan:20)# exit
ACOS(config)# interface ethernet 3
ACOS(config-if:ethernet:3)# ip address 20.20.20.1 255.255.255.0
ACOS(config-if:ethernet:3)# exit
ACOS(config)# interface ve 10
ACOS(config-if:ve10)# ip address 110.110.110.1 255.255.255.0
ACOS(config-if:ve10)# exit
ACOS(config)# interface ve 20
ACOS(config-if:ve20)# ip address 160.160.160.1 255.255.255.0
ACOS(config-if:ve20)# exit
The following commands configure a source NAT pool, then return to the global configuration level:
These commands configure real server “s1” with two TCP ports (80 and 21) and a service group for
each port:
The following commands configure the VIP. Smart NAT is enabled on each virtual port.
page 100
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Virtual-port TCP Maximum Segment Life for NATted Sessions
On the TCP virtual port, the precedence option is used with Smart NAT. This means Smart NAT is used
first, and the NAT pool is used only if all Smart NAT mappings are in use.
On the FTP virtual port, the precedence option is omitted. In this case, the source NAT pool is used first.
Smart NAT is used only if no more mappings are available using the pool.
In this example, both virtual ports use Smart NAT. The Nat Address, Port Usage, Total Used, Total
Freed, and Failed columns display the same information as the show ip nat pool statistics output.
(See the Command Line Interface Reference.)
The Service column lists the server, protocol port, and Layer 4 protocol. The VRID column lists the
VRRP-A VRID, if applicable. In this example, the ACOS device is deployed as a standalone device, so “0”
is shown in this column.
During the TIME-WAIT state, the endpoint is not allowed to accept any new TCP connections. This
behavior is meant to ensure that the TCP endpoint does not receive a segment belonging to a previous
connection after the endpoint enters a new connection.
The TIME-WAIT state lasts up to twice the MSL. On some older TCP/IP stacks, this can result in a wait
of up to 240 seconds (4 minutes) after a FIN before the endpoint can enter a new connection.
To reduce the time between connections for these endpoints, set the MSL for individual virtual ports, to
1-1800 seconds.
On the virtual port template configuration page, enter the desired value in the SNAT MSL field. Apply the
template to the virtual port.
page 101
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Virtual-port TCP Maximum Segment Life for NATted Sessions
Use the snat-msl command to configure a custom MSL value for a virtual port. This example config-
ures a source-NAT MSL of 18 seconds (Configuration commands do not include for the component
service group):
page 102
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
You can use DNS to simplify real server creation by specifying a DNS hostname instead of an IP
address. In this case, the ACOS device periodically sends a DNS query for the hostname’s IP address
and dynamically creates a real server with the IP address returned by DNS. ACOS also creates a ser-
vice-group member for the server, in each service group that contains the server.
• If the DNS server replies with an Address (A) record for a hostname real server, the ACOS device
creates the server or, if the server is already created, the ACOS device refreshes its TTL. ACOS
also creates service-group members for the server and its ports.
• If the DNS server replies with a CNAME record, the ACOS device also sends a DNS query for the
CNAME.
ACOS supports multiple servers with the same hostname. For example, if the DNS server replies with a
different IP address for a hostname real server that has already been created, the ACOS device creates
a second real server with the same hostname and the new IP address.
When the IP address returned by the DNS server matches the IP address of a statically configured real
server, the server is not created.
• DNS query interval multiplied by the min-ttl-ratio (described in “Template Options for Dynamically
Created Real Servers” on page 104)
page 103
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Template Options for Dynamically Created Real Servers
The server’s TTL is decremented by 60 every minute. The TTL is refreshed each time the DNS server
replies with the address. When the TTL reaches 0, the dynamically created server is removed. If the
DNS server replies with the IP address after this, the server is dynamically created again.
• Dynamically created real servers have higher priority than statically created real servers, by
default. If your configuration uses a combination of dynamically created real servers and stati-
cally created real servers, the dynamically created real servers are used more. This is true even if
you leave the default load-balancing method, round robin, enabled. (To use round robin, see
“Combining Dynamic and Static Real Servers (CLI Example)” on page 109)
• When a dynamically created real server ages out, only that instance of the server (its port and
service group member) is removed. Other instances (other IP addresses) for the same server
(hostname) are not removed, unless they also age out. The real server configuration that you
entered, used by the ACOS device to dynamically create servers, is not removed.
These template options take effect when you apply a template to a dynamic server configuration. After
this, any dynamic real servers that are created using the dynamic server configuration use the template
values that were set when the template was applied to the dynamic server configuration, even if the
values are later changed in the template.
page 104
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Dynamic Real Server Creation
• max-dynamic-server – Specifies maximum number of real servers that can be dynamically cre-
ated for a specified hostname. You can specify 1-1023; default is 255. After the maximum num-
ber of servers is created, the oldest servers are deleted, determined by their creation time, to
make room for new ones.
• min-ttl-ratio – Specifies the minimum initial value for the TTL of dynamic real servers. This option
prevents dynamic real servers from aging out too quickly due to a small TTL value from the DNS
server.
To calculate minimum TTL value for a dynamic real server, the ACOS device multiplies dns-query-
interval by min-ttl-ratio. For example, if min-ttl-ratio is 2 and dns-query-interval is 10 minutes (600
seconds), the minimum TTL for dynamic real servers is 1200. The min-ttl-ratio can be 1-15. The
default is 2.
page 105
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Dynamic Real Server Creation
a. Hover over ADC in the navigation bar, and select Templates from the drop-down menu.
b. Select ADC on the menu bar.
c. Click the green New Template button. A drop-down menu appears.
d. Select Server. The Create Server Template dialog appears.
e. Enter a name for the template.
f. Configure these options. (“Template Options for Dynamically Created Real Servers” on
page 104.)
• DNS Query Interval
• Dynamic Server Prefix
• Min TTL Ratio
• Max Dynamic Server
g. Click Create.
2. Create the real servers:
a. Select ADC > SLB.
b. On the menu bar, select the Servers tab.
c. Click Create.
d. In the Name field, enter a name for the real server.
e. Select the address Type radio button: IPv4, IPv6, or FQDN.
f. Enter the IP Address or FQDN hostname that is known to DNS.
g. Expand the Advanced Fields, and select the template from the Template Server drop-down
menu.
h. Configure additional options for the real server and add ports, as applicable to your deployment.
i. When finished, click Create.
3. Configure a template for the server port:
a. In the Port section of the page, click Create.
b. Enter number in the Port Number field.
c. Click Advanced Fields to expand and configure the advanced options for this server port.
d. To the far-right of Template Port, click the Add+ link. The Create Port Template appears.
e. Enter a name for the port template in the Name field.
f. Configure these options. (“Template Options for Dynamically Created Real Servers” on
page 104.)
page 106
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Dynamic Real Server Creation
These commands configure hostname server parameters in a server port template and a server tem-
plate:
The following commands configure a hostname server, add a port to it, and bind the server template to
it:
page 107
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Dynamic Real Server Creation
The following commands configure a service group and add the hostname server and static server to
it. The port template is bound to the member for the hostname server and port.
This command adds the DNS server to use for resolving the real server hostname into server IP
addresses:
The show slb server detail command displays detailed information for the hostname server. The
command displays configuration details, followed by details for the dynamically created servers. See
the Command Line Interface Reference for ADC for a description and examples of the command.
The following command displays service-group information. A separate row of information appears for
each dynamically created member.
The following command displays detailed statistics for the dynamically created service-group mem-
bers:
page 108
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Dynamic Real Server Creation
The following command displays configuration information for the service group. In this example, the
service group has dynamic members and a static member.
page 109
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Dynamic Real Server Creation
The following configuration contains a dynamically created server (s1) and a statically created server
(s2). The default load-balancing method (round robin) is used, but s1 is used more than s2. To config-
ure equal use of s1 and s2, the priority values for each server are explicitly set to the same value:
Priority settings for dynamically created servers are set only using a port template, as shown in the
example.
page 110
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS provides a method to configure a range of virtual IP addresses (VIPs), based on IP subnet. Using
this method, you can create a set of virtual servers that have contiguous IP addresses by specifying the
beginning and ending IP addresses in the range.
The IP addresses in the specified range can not belong to an IP interface, real server, or other virtual
server configured on the ACOS device.
• Statistics are aggregated for all VIPs in the subnet virtual server.
page 111
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
If you do not specify a network mask, the virtual server is a standard VIP that has the IP address you
specify as the starting-ip address.
page 112
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS enables easier configuration for large ranges of virtual ports within a virtual-server configuration.
This feature may be helpful in deployments where it is desirable to have a VIP with a large number of
different virtual ports. The ability to specify a port range under a single VIP simplifies network configu-
ration, and it can be helpful within data centers or web-hosting companies that use port numbers to
identify their specific customers.
Although similar performance can be achieved using wildcard VIPs, this approach does not scale well
because wildcard VIPs limit the ACOS device to no more than 99 ACLs.
The virtual port range feature uses the range CLI option within a VIP configuration. A standard port
number is specified within the VIP, and the range option is used to create an additional number of vir-
tual ports, which will be added upon this base port.
For example, the base virtual port could be set to 80 and the range could be set to any value from 0-
254. So if the range were set to the maximum of 254, then the virtual port range could start at 80 and
go all the way up to 334 (80 + 254).
• TCP
• HTTP
• TCP-proxy
• SSL-proxy
• HTTPS
• fast-HTTP
Details:
• Statistics and configurations are applied to the virtual port as a whole and not to the individual
ports within the specified range.
• The virtual port is internally identified as the port type and the base port. When using the show
command to view statistics, you can only specify the base port. If you use the show command to
page 113
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Adding A Virtual Port Range to a Virtual Server
try to view statistics for one of the auto-created virtual ports, a consolidated set of data and sta-
tistics will be provided for all virtual ports, starting from the base port and including all ports spec-
ified in the range.
NOTE: Real server and service group configuration is also required. (See “Add-
ing A Virtual Port Range to a Virtual Server (CLI Example)” on page 114.)
1. Hover over ADC in the navigation bar, and select SLB from the drop-down menu.
2. Select Virtual Server on the menu bar.
3. Click the green Create button.
4. Enter a name for the virtual server.
5. Enter the base virtual port number in the Port field.
6. Enter the range (number of ports) in the Range field.
7. Click Update to complete the virtual server configuration.
To specify a virtual port range within a VIP configuration, use the range option of the port command
when configuring a port within a virtual-server configuration.
The vport-range-num option specifies the range of virtual ports you want to create within the virtual-
server configuration.
The following commands create real servers “s1” and “s2”, binds them to a service group “sg1”, and
then creates a VIP (“vip3”) at 40.40.40.4. TCP port 80 is created within the VIP configuration, and it has
a range value of “9”, meaning that 9 virtual ports will be created from port 80-89, with port 80 as the
base port. A secondary set of HTTP ports will be configured with a range of 5, meaning that the base
port will be 90, and an additional five ports will be created from 91-95.
page 114
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Adding A Virtual Port Range to a Virtual Server
Note that the ports created with the range option must not overlap. If the TCP port range was set to 20
instead of 9 in the example above, then this would have caused a configuration error, because the TCP
port range (80+20 = 100) would have overlapped with the HTTP port range (90-95).
In this example, if a client request were to come in at vip3, port 89, it would be sent to server port 80.
However, if the port included in the destination address of the client request falls beyond the configured
range (97, for example), then there would be no match and the packet would be discarded.
page 115
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Adding A Virtual Port Range to a Virtual Server
page 116
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS supports the ability to auto-create mappings between a VIP and a real port on a real server.
ACOS examines the IP address in a client’s request, identifies the host portion, and then adds that num-
ber to the real port for a group of servers. In this way, the ACOS device can have many ports associated
with a single VIP, and can deterministically control where incoming client requests are directed.
This feature is similar to “Virtual Port Ranges” on page 113, in that it also leverages the range CLI com-
mand option. The range option allows you to specify the number of real ports that can be auto-mapped
at the real server level. However, despite the use of this common CLI option, the two features are differ-
ent.
While the “VIP to Real Port Mapping” feature creates a range of real ports on a real server and is used to
map incoming requests to real ports on backend servers, the “Virtual Port Range” feature specifies a
range of virtual ports within the VIP configuration and makes it faster and easier to configure large
ranges of virtual ports within a virtual server configuration.
Deterministic Mapping
ACOS can be configured as a subnet VIP, with “0” for the host portion of the address. For example, the
VIP can be configured with an IP address such as 40.40.40.0 /24.
• The value of the last octet configured as the ACOS device’s VIP depends on the netmask length.
The value can be “0”, but the following additional examples are equally valid:
20.20.20.0 /24
20.20.20.240 /28
20.20.0.0 /16
20.20.20.252 /30
Configuring the ACOS device with a subnet VIP enables a single VIP to accept client requests from a
large range of VIP addresses. Instead of requiring all client requests to go to 40.40.40.1, the host por-
tion (last octet) can range from 0 – 254.
This feature creates a deterministic mapping between the host address in the client request and the
real port on the backend servers. This mapping is achieved through a simple algorithm that adds the
last octet in the destination VIP to the base port on the real server.
page 117
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Deterministic Mapping
The host portion that appears in the client’s request is added to the base port configured on the real
servers. So, for example, if the client sends a packet to the VIP 10.10.10.3, then this last integer in the
address (“3”) is added to the base port configured on the backend servers (for example, 16000). The cli-
ent’s request will be mapped and forwarded to port “16000 + 3”, or real port 16003. This is shown in
Figure 15 on page 118.
Example #1: A client request is sent to VIP 40.40.40.111 port 80, and it must be load balanced between
three real servers having a port range from 16500–16550. (16500 is the base port in this example.)
Each one of the real servers in the service group has the same range of real ports.
ACOS adds the last octet of the VIP address (“111” for the VIP in this example) to the base port number
on the real server (16500) to arrive at 16500 + 111, or 16611.
Example #2: A client request is sent to the VIP at 216.69.188.4 port 80, and the packet must be load bal-
anced between two real servers. Although each real server has a unique IP address, each server has
the same range of ports. The base port is 16528 and the range is configured on the real server to be
254, so the range is from 16528–16782.
The last octet of the client’s destination address (“4” for this VIP) is added to the base port number on
the real server (16528 + 4) to get a mapped real port of 16532.
• TCP
page 118
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring VIP to Real Port Mapping
• HTTP
• HTTPS
• The host portion of the VIP address (last octet), can not be greater than the range value.
• If the client request has a large host portion (“100”), and the range configured on the real server is
small (“5”), then there will be no mapping.
Although similar to the “vport range” feature, the “VIP to real port mapping” feature configures the range
option at the real server level, instead of at the VIP level. The “vport range” feature configures a range of
virtual ports, whereas the “VIP to real port mapping” feature configures a range of real ports.
page 119
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring VIP to Real Port Mapping
Enabling the VIP to Real Port Mapping within an SLB Virtual-port template
The virtual port template containing this option must be bound to the VIP, and the VIP itself must use a
subnet for the last octet (e.g. 10.10.10.0 /24), or the feature will not work.
1. Access the configuration page for the virtual service (virtual port):
a. Hover over ADC in the navigation bar, and select SLB from the drop-down menu.
b. Select Virtual Service on the menu bar.
c. Click the green Create button.
d. Enter a name for the virtual server. You can do either of the following:
page 120
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring VIP to Real Port Mapping
• Create a new virtual server using the Virtual Server Name field.
• Click Use Existing Virtual Server and enter the existing virtual server’s name in the Server
Name field.
e. Enter the virtual port number in the Port field.
f. Select the service group from the Service Group drop-down list.
2. Bind the virtual-port template to the virtual port.:
a. Click the bind link under Templates.
b. Select Virtual Port from the drop-down list.
c. Select the template from the Templates drop-down list.
d. Click Bind.
3. Click Update to complete the virtual service configuration.
Although similar to the “vport range” feature, the “VIP to real port mapping” feature configures the range
option at the real server level, instead of at the VIP level. The “vport range” feature configures a range of
virtual ports, whereas the “VIP to real port mapping” feature configures a range of real ports.
The following commands create real servers “s1” at 5.5.5.1 (with a real port range of 10), real server “s2”
at 5.5.5.2 (with a range of 25), and real server “s3” at 5.5.5.3 (which does not have a range configured
and will not be used for this feature).
Include the range option for each real server to be included in the service group, but only if you want
that real server to be included in the mapping feature. The service group can be “mixed”. That is, some
real servers within a service group can have the range option set, but it is not mandatory for all servers
in a service group to be configured for “VIP to real port mapping”.
The following commands create service group “sg1” and bind the real servers to the service group:
page 121
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring VIP to Real Port Mapping
The allow-vip-to-rport-map command enables the VIP to Real Port Mapping feature for a subnet VIP.
The virtual port template containing this option must be bound to the VIP, and the VIP itself must use a
subnet for the last octet (e.g. 10.10.10.0 /24), or the feature will not work (Configuration commands for
the vport1 virtual-port template are not included).
page 122
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes load balancing of traffic based solely on transport protocol (TCP, UDP, or others
such as ICMP), without the need to specify the protocol port numbers to be load balanced.
You can combine IP protocol load balancing with other load balancing configurations. For example, you
can use IP protocol load balancing along with HTTP load balancing. In this case, HTTP traffic to the VIP
HTTP port number is load balanced separately from traffic to other port numbers.
NOTE: For a real-world example, see the following document: A10 Microsoft
Exchange Server 2010 Deployment Guide. This deployment guide is avail-
able for download from the A10 Networks website.
page 125
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
IPv4 Load Balancing Overview
This example uses separate service groups for each of the following types of traffic:
• All TCP traffic addressed to any TCP port except port 80 is sent to service group tcp-grp.
• All UDP traffic, addressed to any UDP port, is sent to service group udp-grp.
• All other traffic (all non TCP/UDP traffic) is sent to service group others-grp.
Although this example shows separate service groups for each type of traffic, you can use the same
service group for multiple traffic types.
In IP protocol load-balancing configurations, port 0 (zero) is used as a wildcard port and matches on
any port number. In configurations where some protocol port numbers are explicitly specified, SLB for
those ports takes precedence over SLB for the wildcard port (0). In the example above, the service
group configured for TCP port 80 is always used for client requests addressed to that port, instead of a
service group configured for the wildcard port.
page 126
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
IPv4 Load Balancing Overview
Health checking does not apply to the wildcard port. When you configure IP protocol load balancing,
make sure to disable health checking of port 0. If you leave health checking enabled, the port will be
marked down and the client’s request therefore will not be serviced.
In configurations where some protocol port numbers are explicitly specified, auto port translation is still
supported for the explicitly specified port numbers. In the example above, SLB NAT can translate TCP
port 80 into another TCP port number if required by the configuration.
• Application Layer Gateway (ALG) applications, such as FTP. For an ALG application, either enable
DSR or configure SLB explicitly for the ALG service port.
• Any application that requires inspection of any part of the client request packet other than the
destination IP address
IP protocol load balancing is similar to Layer 4 load balancing, except IP protocol load balancing
enables you to load balance non-TCP/UDP traffic. Layer 4 load balancing applies only to TCP or UDP
traffic. In addition, IP protocol load balancing uses a wildcard port number that matches on any TCP
port, UDP port, or any non-TCP/UDP port, depending on the configuration. Layer 4 load balancing
requires you to explicitly specify the protocol port numbers to load balance.
page 127
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 Load Balancing
1. Configure the real servers. For each real server that will service requests to IP protocol load-bal-
anced traffic, add service port 0 (the wildcard port).
Disable health checking of port 0. Health checking does not apply to the wildcard port.
2. Configure the service group(s). To add members (real servers) for traffic to which IP protocol load
balancing will apply, specify 0 as the protocol port for the member.
3. Configure the virtual server. Bind virtual port 0 to the service group(s) that have members for port
0. Specify one of the following as the service type:
• TCP
• UDP
• Others
NOTE: For load balancing of non-TCP/UDP traffic such as ICMP, you can spec-
ify TCP or UDP as the transport protocol, in the configurations of the real
server ports and service groups. If the port number is 0 and the service
type on the virtual port is “others”, the ACOS device will load balance the
traffic as non-TCP/UDP traffic.
Configuration of IP protocol SLB is similar to configuration of TCP/UDP SLB, with the following differ-
ences.
1. Real Server Port section (ADC > SLB > Servers > Port), enter 0 in the Port field.
2. Service Groups section (ADC > SLB > Service Groups > Member > Port), enter 0 as the port number.
3. Virtual Port section (ADC > SLB > Virtual Servers > Virtual Port), select TCP, UDP, or Others from the
Protocol drop-down list.
The following commands configure the real servers shown in Figure 16 on page 126.
For simplicity, the example assumes that only the default TCP health check is used for port 80. Health
checking does not apply to the wildcard port number and is therefore disabled. Health checking of
other, explicitly specified port numbers is still supported as in previous releases.
page 128
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 Load Balancing
page 129
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 Load Balancing
To display configuration information and statistics, use the show commands used for other types of
SLB:
page 130
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes how to configure IPv6 IP load balancing on virtual servers and wildcard VIPs.
IPv6 IP load balancing for ICMP and tunnel protocols such as IPIP6 also is supported.
IPv4 to IPv6 and IPv6 to IPv4 port wildcard load balancing is not supported in the current release.
Support for IPv6 IP load balancing is end to end as shown in the following graphic:
For IPv6 load balancing with a regular VIP (including an ICMP echo request/reply), follow these steps:
1. On the ACOS device, issue the following commands (configuration commands for the v6tcp ser-
vice group are not included):
ACOS(config)# slb virtual-server v6 2011::3
ACOS(config-slb vserver)# port 0 others
ACOS(config-slb vserver-vport)# name _v6_2011_3_others_65535
ACOS(config-slb vserver-vport)# service-group v6tcp
page 131
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
IPv6 Load Balancing Configuration Examples
With the configuration on the ACOS device, the ping command will function normally and an ICMP ses-
sion will be created on the ACOS device.
For IPv6 load balancing with a regular VIP, and with an IPIP6 tunnel configured on both the client and
the server, issue the following commands:
1. On the ACOS device, issue the following commands (configuration commands for the v6tcp ser-
vice group are not included):
ACOS(config)# slb virtual-server v6 2011::3
ACOS(config-slb vserver)# port 0 others
ACOS(config-slb vserver-vport)# name _v6_2011_3_others_65535
ACOS(config-slb vserver-vport)# service-group v6tcp
With this configuration, tunnel traffic works correctly with an IP session created on the ACOS device.
For IPv6 load balancing with a wildcard VIP and an ICMP echo request/reply, running-config looks like
this:
With this configuration on the ACOS device, the ping command will function normally and an ICMP ses-
sion will be created on the ACOS device.
1. Configure device using the following configuration steps (configuration commands for the gw ser-
vice group are not included):
ACOS(config)# slb virtual-server wv6 ::
ACOS(config-slb vserver)# port 0 others
ACOS(config-slb vserver-vport)# name _wildcard_v6_v6_Others_0
ACOS(config-slb vserver-vport)# service-group gw
page 132
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
IPv6 Load Balancing Configuration Examples
For IPv6 load balancing with a wildcard VIP in a L3V partition, and with an IPIP6 tunnel configured on
both the client and the server, your running configuration will look like the following:
With this configuration, traffic on the tunnel works correctly with an IP session created on the ACOS
device.
1. Configure the ACOS device using the following configuration commands (configuration com-
mands for the gw service group are not included):
ACOS(config)# slb virtual-server wv6 ::
ACOS(config-slb vserver)# port 0 others
ACOS(config-slb vserver-vport)# name _wildcard_v6_v6_Others_0
ACOS(config-slb vserver-vport)# service-group gw
ACOS(config-slb vserver-vport)# no-dest-nat
page 133
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
IPv6 Load Balancing Configuration Examples
page 134
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes Layer 4 load balancing of TCP and UDP traffic and how to configure it.
Layer 4 load balancing requires specifying the protocol port numbers to be load balanced. To load bal-
ance traffic based solely on transport protocol (TCP, UDP, or other), see “IPv4 Load Balancing” on
page 125.
page 135
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Layer 4 Load Balancing Data Structures
Layer 4 load balancing balances traffic based on the transport protocol (TCP or UDP) and the protocol
port number. The payload of the UDP or TCP packets is not examined.
In this example, a custom application is running on a server farm consisting of three real servers. Cli-
ents navigate to the VIP to use the custom application.
This example uses a single service group that contains all the real servers. The service group uses the
default load balancing method (round robin).
Virtual Server
The custom application on the real servers is accessed at TCP port 1020 by clients through virtual IP
address 192.168.55.55.
Templates
ACOS has default TCP and UDP templates. You can use the default template or configure another TCP
or UDP template and use that one instead. If your Layer 4 load balancing configuration is for a TCP
application and you do not bind a TCP template to the virtual port, the default TCP template is used. For
a UDP application, the default UDP template is used unless you bind another UDP template to the vir-
tual port.
Idle Timeouts
One of the parameters you can configure in TCP and UDP templates is the idle time. Depending on the
requirements of your application, you can reduce or increase the amount of time the ACOS device
allows a session to remain idle.
For UDP transaction-based applications, another parameter you can adjust is how quickly connections
are terminated after a server reply is received. For example, if there are licensing costs associated with
active sessions, you can minimize unnecessary costs by quickly terminating idle sessions, and immedi-
ately terminating connections that are no longer needed.
• For more information about TCP template parameters, see the slb template tcp command in
the Command Line Interface Reference.
• For more information about UDP template parameters, see the slb template udp command in
the Command Line Interface Reference.
page 136
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Layer 4 Load Balancing Data Structures
This feature is a user configurable TCP half-open timeout that is independent of TCP idle-timeout. The
default timer for half-open connections was 60 seconds. Configurable half-open timeout values range
between 1 and 60 seconds in one-second increments. Half-open connections are visible in the show
session command output.
Using the GUI: The menu path to the TCP half-open timeout option is ADC > Templates > L4 Protocols >
Create > TCP > Template Name. You can access the option both in a configured TCP or TCP-Proxy tem-
plate.
Using the CLI: The half-open-idle-timeout command enables aging of half-open TCP sessions. A half-
open TCP session is one in which the client receives a SYN-ACK, but does not reply with an ACK. You
can set the timeout value to 1-60 seconds. The default value is 60.
Source-IP Persistence
Optionally, you also can configure a source-IP persistence template and bind it to the virtual port. The
example in this chapter uses a source-IP persistence template that is configured to send all traffic from
a given client IP address to the same real server. Without this custom template, different requests from
a given client can be sent to different servers, based simply on the load balancing method.
For more information about the source-IP persistence template parameters, see the slb template
persist source-ip command in the Command Line Interface Reference..
page 137
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 Load Balancing
The example uses default Layer 3 and Layer 4 health monitors. The Layer 3 monitor (Ping) and applica-
ble Layer 4 monitor (TCP or UDP) are enabled by default when you configure real server and real service
ports.
You can create an external health monitor using a script and import the monitor onto the ACOS device.
For information, see “Health Monitoring” on page 627.
1. Configure the real servers. Add the custom application’s TCP or UDP port number, with the applica-
ble service type (TCP or UDP).
2. Configure a service group. Add the real servers, service port, and any custom templates to the
group.
3. If applicable, configure a custom TCP or UDP template.
4. If applicable, configure a source-IP persistence template.
5. Configure the virtual server. Bind the virtual service port on the virtual server to the service group
and custom templates, if configured.
page 138
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 Load Balancing
page 139
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 Load Balancing
3. Click Create.
4. Enter a Name for the service group.
5. Click the Protocol drop-down menu and select the transport protocol for the application, TCP or
UDP.
6. Click Create.
7. In the Member section of the window, click the Create button. The Create Member page appears.
8. Select the Choose Creation Type radio button:
• Existing Server – if you wish to modify an existing server.
• New Server – if you wish to create a new server for this service group (requires entering name
and IP).
9. Enter the protocol port number in the Port field.
10.Click Create.
11.Repeat step 7 through step 10 for each server and port.
12.Click Update. The service group appears in the Service Groups table.
page 140
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 Load Balancing
• For more information about source-IP persistence template parameters, see the slb template
persist source-ip command in the Command Line Interface Reference.
• For more information about UDP template parameters, see the slb template udp command in
the Command Line Interface Reference.
page 141
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 Load Balancing
15.Click Update. The virtual server appears in the virtual server table.
page 142
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 Load Balancing
2. The following commands configure the service group “tcp-sg” and adds the real servers as mem-
bers:
ACOS(config)# slb service-group tcp-sg tcp
ACOS(config-slb svc group)# member tcp-2 1020
ACOS(config-slb svc group-member:1020)# exit
ACOS(config-slb svc group)# member tcp-3 1020
ACOS(config-slb svc group-member:1020)# exit
ACOS(config-slb svc group)# member tcp-4 1020
ACOS(config-slb svc group-member:1020)# exit
ACOS(config-slb svc group)# exit
page 143
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 Load Balancing
page 144
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
SLB Protocol Translation (SLB-PT) enables IPv4 servers to be used for serving content to IPv6 clients.
Likewise, SLB-PT enables IPv6 servers to be used for serving content to IPv4 clients. Server farms can
contain both IPv4 and IPv6 servers.
• FTP
• UDP
• TCP
• HTTP
• HTTPS
• SSL-proxy
• SMTP
Figure 19 shows an example of a SLB-PT deployment that uses a mixed server farm of IPv4 and IPv6
servers to serve IPv6 clients.
In this example, a server farm consisting of IPv6 and IPv4 servers is configured with an IPv6 VIP
address. IPv6 clients send requests to the IPv6 VIP. ACOS then selects an IPv6 or IPv4 server and for-
page 145
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
wards the client’s request to the selected server. If the server is an IPv4 server, the ACOS device trans-
lates the IP protocol of the client’s request from IPv6 to IPv4 before forwarding it to the IPv4 server.
Likewise, when the ACOS device receives the servers’s reply, the ACOS device translates the reply from
IPv4 to IPv6, then forwards the reply to the client.
In addition to the standard SLB configuration items (servers, service groups, the VIP, and so on), SLB-
PT requires IP source NAT.
As a minimum requirement, a single NAT pool is required, for the IP type (IPv4 or IPv6) that differs from
the IP type of clients. In this example, an IPv4 pool is required. The pool is used if the ACOS device
selects an IPv4 server for an IPv6 client’s request. The pool must be bound to each of the virtual ports
that has a corresponding real port on an IPv4 server.
If the deployment also will send IPv4 client requests to IPv6 servers, an IPv6 pool is also required.
For simplicity, the CLI example below uses a single IPv4 NAT pool. Following the example, the “Exam-
ples Using Multiple Source NAT Pools” on page 149 section describes how to use multiple pools.
CLI Example
The following commands configure the SLB-PT deployment shown in Figure 19 on page 145. All of the
CLI commands are also present in ACOS 2.2.x releases. Unlike previous releases, the ACOS device does
not require the VIP and real server IP addresses to be of the same IP type (IPv4 or IPv6).
The following commands configure the Ethernet interfaces connected to the clients and servers:
For simplicity, this example uses only a single pool. If multiple pools are used, ACLs are also required.
The ACLs must match on the client IP address(es) as the source address. If the real servers and VIP are
in different subnets, the ACLs also must match on the real server IP address(es) as the destination
address. (For more information, see “Examples Using Multiple Source NAT Pools” on page 149. Also
see the “Network Address Translation” chapter in the System Configuration and Administration Guide.)
These commands configure the IPv4 real servers. The IPv4 and IPv6 servers use the same real ports.
page 146
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 147
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
The following commands configure the service groups. A separate service group is configured for each
application (real port):
page 148
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
The following commands import an SSL certificate and key, and configure a client-SSL template to use
them. ACOS will use the certificate and key to terminate SSL sessions between clients and the VIP.
The example shown above uses only a single NAT pool, for access to the IPv4 servers. If multiple pools
are used, then different CLI syntax is required.
page 149
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
First, IPv6 ACLs that match on the client IP address(es) are configured. A separate ACL is required for
each NAT pool.
These commands access the configuration level for a virtual port on the VIP and configure the port to
use the IPv4 pools:
Each access-list command binds one of the IPv6 ACLs to the virtual port. The source-nat-pool option
used with each command binds an IPv4 pool to the ACL. When the ACOS device receives a request for
the VIP, the ACOS device matches the client address against the source addresses in the ACLs. ACOS
then uses the IPv4 NAT pool bound to the first matching ACL.
ACOS translates the client’s request from an IPv6 packet into an IPv4 packet. ACOS replaces the cli-
ent’s IPv6 address with an IPv4 address from the selected pool. The IPv6 VIP address is replaced with
the server’s IPv4 address.
If the client’s address does not match the source address in any of the ACLs, the request is dropped.
NOTE: This is different from the behavior if a single NAT pool is used. If only one
NAT pool is bound to the virtual port, the pool is used if the client’s IP
type (IPv4 or IPv6) is not the same as the IP type of the selected server.
Otherwise, if the IP type of the client and the selected server is the same,
SLB-PT is not required for the request. The request is sent to the server
with the client’s original IP address.
page 150
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
It is not required to use pools of the same IP type as the IP type used by clients. For example, IPv6
pools are not required for IPv6 clients.
Using pools of the same IP type as the client IP type provides a way to control access to the real serv-
ers. When multiple pools are bound to a virtual port, the client’s IP address must match the source
address in at least one of the ACLs associated with the pools. Otherwise, the client’s traffic is dropped.
NOTE: In the case of IPv4, IPv4 pools are still required if the VIP and the real
servers are in different IPv4 subnets. For more information, see the
“Source NAT for Servers in Other Subnets” section in the “Network
Address Translation” chapter of the System Configuration and Administra-
tion Guide.
This example builds on the example in “Multiple IPv4 Pools” on page 150. The virtual port will have 4
pools: 2 IPv4 pools and 2 IPv6 pools. Each of the IPv6 ACLs will be bound to an IPv4 pool and an IPv6
pool. If SLB selects an IPv4 server, the IPv4 pool bound to the ACL that matches the client’s IP address
will be used. Likewise, if SLB selects an IPv6 server, the IPv6 pool bound to the ACL will be used.
The following commands bind the IPv6 NAT pools to the virtual port:
page 151
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 152
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Part IV Part IV
Application Load Balancing
In this example, FTP files are served by three real servers. Each server has the same set of files avail-
able for download. One of the servers also provides the HTML pages for the download site.
ACOS devices support both the passive and active (port) FTP modes.
The example uses the weighted-round-robin load balancing method. The ACOS device is configured to
send all HTTP requests to server ftp-2. FTP requests will be load balanced among servers ftp-2, ftp-3,
and ftp-4.
page 155
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
FTP Load Balancing Overview
By assigning a weight to a real server and using a weighted load-balancing metric, you can bias load-
balancing decisions to favor that server. This example assumes that the servers have equivalent
capacity and performance. The differing weights compensate for the greater load to be placed on the
server that is handling the HTTP requests.
Service Groups
This example uses two service groups. One service group contains all three FTP servers and the other
service group contains a single HTTP server. To provide the weighted load balancing described above,
the load balancing method is changed from the default (round robin) to weighted round robin for the
FTP service group.
Templates
• For HTTP, the default TCP template is used. You do not need to explicitly bind this template to
the HTTP port on the virtual server. ACOS automatically binds this template to a virtual TCP port
on a virtual server when you create the port, unless you explicitly bind another TCP template to
the virtual port instead.
• For FTP, a custom TCP template is required, with the idle time set to a high value, to prevent FTP
download sessions from timing out if they pause for a while. This custom TCP template must be
explicitly bound to the virtual FTP port on the virtual server. In this case, the custom template is
used instead of the default TCP template.
The default HTTP template is assigned to the virtual HTTP port by default. However, the parameters in
the default HTTP template are unset by default. For this configuration, you do not need to configure a
different HTTP template or change settings in the default one.
This example does not include configuration of server or port templates, so the default templates and
their settings are applied.
For more information server and port templates, see “Server and Port Templates” on page 605.
Health Monitors
This example uses the following health monitors to check the real servers:
• HTTP – Tests the HTTP port by requesting a Web page from the port. In this example, the default
settings are used: Every 30 seconds, the ACOS device sends an HTTP Get request for the
index.html page.
• FTP – Tests the FTP port by sending a login request to the port. In this example, the default set-
tings are used: Every 30 seconds, the ACOS device sends an anonymous FTP login request to
port 21.
The Ping health monitor is configured by default and enabled by default when the real server is added.
page 156
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
The HTTP and FTP monitors must be configured and applied to the real server ports.
ACOS has default Layer 4 health checks it uses to test the TCP and UDP transport layers. This configu-
ration also uses those health checks. (For information, see “Default Health Checks” on page 627.)
1. Configure HTTP and FTP health methods, to use for checking the health of the HTTP and FTP
ports on the servers.
2. Configure the real servers:
a. For each server, add its FTP port and enable health checking of the port, using the FTP health
method configured in step 1.
b. For the server that will serve the Web pages, add the server’s HTTP port and enable health
checking of the port, using the HTTP health method configured in step 1.
c. Assign weight 80 to the HTTP/FTP server. Assign weight 100 to each of the FTP servers that
will not also be handling HTTP. These weights will cause the ACOS device to select the HTTP/
FTP server for FTP only 80% as often as each of the other servers.
3. Configure a TCP template and set the idle time in the template to a high value.
4. Configure a service group for HTTP and add the HTTP server to it.
5. Configure another service group for FTP and add the FTP servers to it.
6. Configure the virtual server:
a. Add TCP ports for HTTP and FTP.
b. Bind the HTTP port to the HTTP service group.
c. Bind the FTP port to the FTP service group and to the TCP template.
These sections provide GUI and CLI instructions on configuring FTP Load Balancing:
page 157
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
page 158
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
page 159
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
page 160
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
1. Still from within the Create Server page, click Advanced Fields to display additional configuration
options.
2. In this example, change the value in the Weight field to 80.
3. In the Port section, click Create.
4. In the Port Number field, enter the number corresponding to HTTP (or FTP).
5. Leave the Protocol set to TCP.
6. In the Health Check radio button, click the Monitor radio button, and from the Health Monitor
drop-down menu that appears, select the HTTP or FTP health monitor you just configured. (Select
the appropriate health monitor that matches the port type you configured, either HTTP or FTP.)
7. Click Create. The new port appears in the port list.
Repeat the process to configure the real servers and the weight of the real servers for each of the other
real servers you wish to add.
page 161
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
page 162
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
NOTE: The Health Monitor column shows the Layer 3 (ICMP ping) health moni-
tors for the real servers, not the Layer4-7 health monitors for individual
server ports. Click on + to view the ports associated with the server.
1. While still in the Create Service Group page, from the Member section, click the Create button to
add a member to this service group.
page 163
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
2. In the Choose Creation Type area, select the appropriate radio button (Existing Server or New
Server).
• If adding an existing server to this service group, select the Server drop-down and select the
existing server.
• If adding a new server to this service group, enter the real server’s name and IP address.
3. Enter the port number for this protocol in the Port field.
4. Click Create. The server and port appear in the member list.
5. Click Update to update this service group. The new service group appears in the service group
table.
Repeat this process of adding a service group and service group member for each combination of
server and port. The following example shows adding member 10.10.10.2 for port 80 to service group
http-grp.
page 164
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
page 165
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
Repeat the procedure in “To configure a service group for HTTP” on page 163, with the following differ-
ences:
• In the Algorithm drop-down list, select Weighted Round Robin. (If your configuration does not use
weights to bias server selection, you can leave this field set to Round Robin.)
• The following example shows adding members 10.10.10.2-4 for port 21.
page 166
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
1. While still in the Create Virtual Server page, In the Virtual Port section, click Create. The Virtual
Server Port section appears.
2. Enter a name in the Name field. This is optional.
3. In the Protocol drop-down list, select the service type.
In this example, there are two services, HTTP and FTP. Select HTTP first and go to the next step.
4. Edit the number in the Port field to match the protocol port that clients will request at the virtual IP
address.
5. Select the service group that you configured in “To configure a service group for HTTP” on
page 163 from the Service Group drop-down list.
6. Click Create. The port and service group appear in the virtual port list.
7. Repeat this process to configure the virtual server port for the FTP service.
The following example shows creating the virtual server, creating the virtual port, and assigning the ser-
vice groups.
page 167
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
page 168
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
page 169
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
page 170
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
The following commands configure the HTTP and FTP health monitors:
The following commands configure the TCP template for use with FTP:
page 171
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring FTP Load Balancing
page 172
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes HTTP load balancing and how to configure it.
• This chapter and other SLB configuration chapters walk through individual GUI configuration
pages. The GUI also provides smart templates for easy configuration. For information, see the
GUI online help.
• Fast-HTTP is optimized for high performance data transfer compared to regular HTTP. Due to
this optimization, fast-HTTP does not support all comprehensive HTTP capabilities such as
header insertion and manipulation. Do not use fast-HTTP for applications that require complete
data transfer integrity.
• Network topologies in application examples such as this one are simplified to focus on the appli-
cation. For example, the Internet router connecting the clients to an ACOS device is not shown
here. Likewise, a single ACOS device is shown. Your configuration might use an ACOS pair for
VRRP-A high availability.
page 173
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
HTTP Load Balancing Configuration Components
In this example, a server farm consisting of three servers provides content for Web site www.exam-
ple.com. Clients access the site through its virtual IP address, 192.168.10.11. When the ACOS device
receives a client request for the HTTP port (80) on 192.168.10.11, the ACOS device selects a real server
and sends the client request to the server.
For simplicity in this example, the real servers use the default protocol port number for HTTP (80). The
port numbers on the real and virtual servers are not required to match.
The client is unaware of the real IP address of the real server, nor is the client aware that the site actu-
ally consists of multiple servers. After selecting a real server, the ACOS device automatically performs
the necessary Network Address Translation (NAT) to send the client request to the server, receive the
reply from the server, and send the reply to the client. From the client’s perspective, the Web session is
between the client and port 80 on 192.168.10.11.
page 174
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
HTTP Load Balancing Configuration Components
Service Groups
A service group contains a set of real servers from which the ACOS device can select to service a client
request.
This example uses a single service group that contains all the real servers and the applicable service
port (80). During configuration, you bind the service group to the virtual port(s) on the virtual server.
ACOS selects a server based on the load balancing method used by the service group, and on addi-
tional criteria relevant to the load balancing method.
In this example, the default load balancing method, round robin, is used. The round robin method
selects servers in rotation. For example, the first client request is sent to server web-2, the next client
request is sent to server web-3, and so on.
Virtual Server
The virtual server in this example has IP address 192.168.10.11 and virtual service port 80. When you
configure a virtual service port, you specify the protocol port number for the port. You also specify the
service type. ACOS supports the following service types for HTTP ports:
• HTTP – Complete TCP stack. Use this service type if you plan to customize any templates. For
example, if you plan to use SSL (HTTPS load balancing or SSL offload), or customize the HTTP
template to change information in the HTTP headers of server replies, use the HTTP service type.
Also use this service type for stream-based applications such as RAM Caching and compression.
• Fast-HTTP – Streamlined hybrid stack for high performance. If you do not plan to offload SSL or
customize any templates, use Fast-HTTP.
(For a complete list of the service types, see the port command in the CLI Reference.)
Templates
Templates are sets of configuration parameters that apply to specific service types or to servers and
service ports. This example uses the default settings for each of the templates that are automatically
applied to the HTTP service type and to the real and virtual servers and ports. The rest of the informa-
tion in this section is for reference but is not required reading to continue with this example.
For some of types of templates, the ACOS configuration has a “default” template that is automatically
applied to a service port unless you apply another template of the same type instead.
page 175
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
HTTP Load Balancing Configuration Components
Service Templates
For HTTP, the ACOS configuration applies “default” templates of each of the following template types
to HTTP service ports:
• TCP-Proxy – TCP-proxy templates control TCP stack settings, including the idle timeout for TCP
connections. Unless you need to change the setting for a TCP/IP stack parameter, you can safely
allow the ACOS device to apply the default TCP-proxy template to the service types that use it.
• HTTP – HTTP templates provide many options, including options to change information in the
HTTP header, enable compression, and select a service group based on the URL requested by the
client. By default, all the options in this template are disabled or not set, so you can safely allow
the ACOS device to apply the default for this template type too.
• Connection Reuse – Allows TCP connections between the ACOS device and real servers to be
reused for multiple clients instead of terminating a connection and starting a new one for each
new client. Although the default connection reuse template is automatically applied, the default
settings in the template disable connection reuse. Unless you want to use connection reuse, you
can ignore this template. (Connection reuse requires additional configuration. See “Connection
Reuse” on page 90.)
The following types of templates also can be used with HTTP service ports. However, these types of
templates do not have “default” templates that are applied automatically.
• Cookie Persistence – Inserts a cookie in the HTTP header of a server reply before sending the
reply to the client. The cookie ensures that subsequent requests from the client for the same vir-
tual server and virtual port are directed to the same service group, real server, or real service port.
• Source-IP Persistence – Similar to cookie persistence, except the ACOS device does not insert
cookies. Instead, clients are directed to the same resource in the server farm for every request,
for the duration of a configurable timer on the ACOS device. The granularity of the persistence
can be set to always use the same real server port, the same real server, or the same service
group.
(For an example that uses a source-IP persistence template, see “Layer 4 TCP/UDP Load Balancing” on
page 135.)
• Default port template – Contains configuration parameters for real service ports
page 176
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing
• Default virtual-port template – Contains configuration parameters for virtual service ports
For more information about server and port templates, see the following:
Health Monitors
This example uses the following types of health monitors to check the real servers:
• Ping – A Layer 3 health method that sends an ICMP echo request to the real server’s IP address.
The server passes the health check if the ACOS device receives a ping reply.
• TCP – By default, every 30 seconds the ACOS device sends a connection request (TCP SYN) to
each load balanced TCP port on each server, in this case ports 80 and 443. A TCP port passes
the health check if the server replies to the ACOS device by sending a TCP SYN ACK. By default,
the ACOS device completes the TCP handshake.
In addition to these default health checks, you can configure health monitors for specific service types.
This example uses an HTTP health monitor, with the following default settings.
• Every 30 seconds, the ACOS device sends an HTTP GET request for the default index page.
• The HTTP service port passes the health check if the requested page is present on the server and
the server replies with an OK message (200).
(For more information about health monitors and their configurable options, see “Health Monitoring” on
page 627.)
page 177
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing
These sections provide GUI and CLI instructions on configuring HTTP Load Balancing:
page 178
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing
page 179
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing
1. While still within the Create Server window, in the Port section, click Create.
2. Enter the service port number on the real server in the Port Number field. In this example, enter
“80”.
3. For the Health Check radio button, select Monitor.
4. In the Health Monitor drop-down menu, select the HTTP health monitor configured in “To config-
ure an HTTP health method” on page 179.
5. Click Create. The port appears in the port list.
This example displays the server with the port created, followed by the list of all servers that were cre-
ated.
page 180
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing
ACOS begins sending health checks to a real server’s IP address and service ports as soon as you fin-
ish configuring the server. The overall health status for the server is shown in the Health column. If the
status is Down, verify that health monitors are configured for all the service ports. The default Layer 3
health method is automatically used for the Layer 3 health check, unless you selected another health
method instead.
page 181
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing
For this example, you can leave the default selected: Round Robin
6. Click Create to create the service group. The new group appears in the service group table.
1. Click the Edit link for the service group you just created.
2. In the Member section, click Create.
3. Select the desired Choose Creation Type radio button:
• Select Existing Server, and then click the Server drop-down and select the desired server, OR
• Select New Server, and then enter the Name, address Type, and Host for the new real server.
4. In the Port field, enter the service port number.
5. Click Create.
6. Click Update. The new group appears in the service group table.
Repeat the process to configure the service group and service group members for each server and
port.
The following example shows the service group with members created.
page 182
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing
5. Select the Address Type radio button (IPv4 or IPv6) and enter the address in the IP Address
field. (This is the IP address that clients will request.)
6. Click Create to create the VIP. The new VIP appears in the list of virtual servers.
The following example shows creating the virtual server, followed by creating the virtual server ports.
page 183
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing
page 184
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing
This section configures the HTTP Load Balancing topology depicted in Figure 21.
page 185
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing
page 186
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes HTTP options available in HTTP templates and provides examples of their use.
HTTP templates can be used with the following service (virtual port) types:
• HTTP
• HTTPS
• Fast-HTTP
Fast-HTTP is optimized for very high performance information transfer in comparison to regular HTTP.
Due to this optimization, fast-HTTP does not support all the comprehensive capabilities of HTTP such
as header insertion and manipulation. It is recommended not to use fast-HTTP for applications that
require complete data transfer integrity.
• URL hash switching – Selects a real server based on a hash value calculated from part of the
URL string. (See “URL Hash Switching” on page 191.)
• URL / host switching – Selects a service group based on the URL path or domain in the client’s
GET request. (See “URL / Host Switching” on page 196.)
• Failover URL – If the URL in GET request cannot be reached due to server unavailability, the
ACOS device sends a 302 Redirect to the client. (See “URL Failover” on page 203.)
page 187
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
HTTP Options for SLB Overview
• 5xx retry and reassignment – Retries a server that replies to a request with a 5xx status code
instead of sending the status code to the client, and reassigns the request to another server if the
first server continues to reply with a 5xx status code. (See “5xx Retry and Reassignment” on
page 204.)
• Strict transaction switching – Performs server selection for each request within a client-server
session, rather than performing server-selection once per session. This option provides a simple
method to force rebalancing of server selection. (See “Strict Transaction Switching” on
page 224.)
• Non-HTTP bypass – Redirects non-HTTP traffic to a specific service group. This feature helps
prevent non-HTTP traffic from being dropped by the ACOS device. (See “Non-HTTP Bypass” on
page 205.)
page 188
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
HTTP Options for SLB Overview
• HTTP
• Fast-HTTP
• HTTPS
To configure an HTTP template and bind it to a virtual service port, use one of these methods:
page 189
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
HTTP Options for SLB Overview
9. Configure other options if needed. (For example, if you are configuring a new port, make sure to
select the service group.)
10.Click the Create Virtual Port button. The port appears in the Port list.
11.Click Update. The virtual server list reappears.
To configure an HTTP template, enter the slb template http command at the global configuration
level. This command changes the CLI to the template configuration level. The remaining sections in
this chapter describe commands for configuring each option. The following example configures the
HTTP template:
To bind a template to a virtual service port, enter template http at the port configuration level. The fol-
lowing example binds the HTTP template to virtual port 80:
When an ACOS device forwards an HTTP packet to the server, you can add the client port number to
the HTTP header by adding the insert-client-port command in an HTTP template and binding the
template to the HTTP virtual port. The command includes a replace option that replaces the content
of an existing header that matches the configured name with the client’s port number. If no header
name is specified, X-ClientPort is used as the default header name.
Refer to the Command Line Interface Reference for ADC for information about the command.
Inserting HTTP Client Port Numbers in the HTTP Header (CLI Procedure)
The following example binds the HTTP template to virtual port 80:
page 190
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL Hash Switching
When enabled, URL hashing selects a real server for the first request for given content and assigns a
hash value to the server for the content. ACOS sends subsequent requests for the content to the same
real server.
In this example, a service group contains three real servers. Each of the real servers contains the same
set of .html(l), .pdf, and .jpg files. ACOS is configured to calculate a hash value based on the last 3 bytes
of the URL string in the client request, and assign the hash value to a server.
After assigning a hash value to a server, the ACOS device sends all requests that match the hash value
to the same real server. In this example, all requests that end with “pdf” are sent to the same server.
If the real server becomes unavailable, the ACOS device selects another server, assigns a hash value to
it, and uses that server for all subsequent requests for URL strings that have the same hash value.
page 191
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL Hash Switching
Hash Options
You can specify the following hash options:
• Offset – Specifies how far into the string to begin hash calculation.
• Bytes – Specifies how many bytes of the URL string to use to calculate the hash value.
• First or last – Specifies which end of the URL string to use to calculate the hash value.
• Server load awareness – Allows servers to act as backups to other servers, based on load.
The example in Figure 22 calculates hash values based on the last 3 bytes of the URL strings.
Offset
You can specify an offset at which to begin when calculating a hash value. By default, there is no offset.
Figure 23 displays an example of calculating a hash value starting with the fifth character in the URL
string.
Normally, URL hashing selects a server for the first request for a given URL, then uses the same server
for all subsequent requests for the same URL. In cases where a given URL becomes wildly popular (for
example, a viral video), the server for that URL can become overwhelmed.
page 192
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL Hash Switching
The server load awareness option provides a way to avoid server outage in this type of situation. After
some configuration on the server and on the ACOS device, the ACOS device can learn a server’s load
status from the server.
Here is an example of how server load awareness works. In this example, URL hash switching is used
to balance traffic load across three servers: S1, S2, and S3.
Assume that the first request for URI /article-new1 is hashed to S1. Subsequent requests are load bal-
anced as listed in Table 1.
This feature requires custom configuration on the server. The server must be configured to insert an
HTTP header named “Server-Status” in the server’s responses. The header must have one of these val-
ues: 0, 1, or 2.
Server-Status: load=N
page 193
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL Hash Switching
ACOS manages requests to the server based on the Server-Status code. Table 2 describes the valid
load status codes that can be reported by a server.
Server also can handle If necessary, ACOS device also uses the server to help with
requests for other servers if URLs hashed to servers that have load status 2.
necessary.
1 Server is able to handle its ACOS device continues using the server for the URLs hashed to
own requests. the server.
However, server can not han- ACOS device does not use the server to help handle requests
dle requests for other servers. for other servers.
2 Server is overloaded and ACOS device uses servers that have load status 0 to help han-
needs help handling its own dle the overloaded server’s requests.
requests. Requests are dis-
tributed among this server If no other servers are able to help, all servers in the service
and at least one other server group are pulled in to help. Requests will be sent round-robin
(with load status 0), in round among the busy servers. For example, if there are 3 servers,
robin fashion. and s1 returns status 2, s2 returns 1, and s3 returns 0, then the
traffic is sent round-robin between s1 and s3. However, if s3
returns 1 or 2, then the traffic is sent round-robin among all 3
servers.
The system conditions that result in reporting 0, 1, or 2 depend on how you program calculation of the
code. For example, you can program the server to set the Server-Status code based on CPU utilization,
memory utilization, I/O utilization, and so on.
For a CPU-intensive application, you could calculate the Server-Status code based on CPU utilization.
For an I/O-intensive application, you could calculate the Server-Status code based on I/O utilization.
On the ACOS device, URL hash switching with server load awareness does not require configuration of
dedicated backup servers in the service group. Instead, any primary server can also act as a backup for
other servers, based on server load.
Server load awareness is disabled by default but can easily be enabled in new or existing URL hash
switching configurations. Configure an HTTP template with URL hash switching. Include the use-
server-status (CLI) or Use Server Status (GUI) option.
page 194
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL Hash Switching
The following commands implement the URL hashing configuration shown in Figure 22 on page 191.
The configuration of the sg1 service group referenced in the example is not included.
The following commands configure an HTTP template for URL hash switching with server load aware-
ness:
The following commands configure an HTTP template to perform URL hashing with the offset shown
in Figure 23 on page 192:
page 195
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL / Host Switching
You can configure an HTTP template with one of the following service-group switching options:
• URL switching – Selects a service group based on the URL path in the GET line of the HTTP
request’s header.
• Host switching – Selects a service group based on the domain name in the Host field of the
HTTP request’s header
If you plan to use URL / host switching along with cookie persistence, you must enable the match-type
service-group option in the cookie persistence template. (See “Using URL / Host Switching along with
Cookie Persistence” on page 199.)
In this example, the ACOS device is configured to use separate service groups for URLs in the
www.example.com domain. The real servers in service group sg-abc provide content for www.exam-
ple.com/abc. The real servers in service group sg-123 provide content for www.example.com/123.
page 196
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL / Host Switching
URL switching rules configured on the ACOS device select a service group based on the beginning of
the URL on the GET line of client requests. Requests for URLs that begin with “/abc” are sent to service
group sg-abc. Likewise, requests for URLs that begin with “/123” are sent to service group sg-123.
An HTTP template can be configured with only one type of service-group switching, URL switching or
host switching. However, if you need to use both types of switching, you can do so with an aFleX script.
Match Options
URL / host switching selects a service group based on rules that map part of the URL string or host
(domain name) to the service group. You can use the following match options in URL / host switching
rules:
• Starts-with string – matches only if the URL or host name starts with the specified string.
• Contains string – matches if the specified string appears anywhere within the URL or host name.
• Ends-with string – matches only if the URL or host name ends with the specified string.
These match options are always applied in the following order, regardless of the order in which the
rules appear in the configuration. The service group for the first match is used.
• Equals
• Starts-with
• Contains
• Ends-with
If a template has more than one rule with the same option (starts-with, contains, or ends-with) and a
URL or host name matches on more than one of them, the most-specific match is always used. For
example, if a template has the following rules, requests for host “www.ddeeff.org” will always be
directed to service group http-sgf:
If you use the starts-with option with URL switching, use a slash in front of the URL string. For example:
page 197
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL / Host Switching
The following commands implement the URL switching configuration shown in Figure 24 on page 196.
The following commands bind the HTTP template and service group sg-abc to virtual port 80:
page 198
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL / Host Switching
The following commands bind the HTTP template and service group sg-123 to virtual port 80:
By default, the service-group option is disabled in cookie persistence templates. In this case, URL
switching or host switching is used only for the initial request from a client. After the initial request, the
same service group is always used for subsequent requests from the same client.
To continue using URL or host switching to select a service group for each request, enable service-
group option in the cookie persistence template. For each request from the client, the ACOS device first
selects a service group, then uses information in the cookie to select the real server and port within the
service group.
page 199
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL / Host Switching
In this example, URL switching and cookie persistence are both configured, and the service-group
option is enabled in the cookie persistence template. For each client request, URL switching selects a
service group first. Then, after a service group is selected, a real server and port are selected within the
service group.
• If the client’s request does not have a persistence cookie that includes the selected service
group, the ACOS device uses SLB to select a server, then inserts a persistence cookie into the
reply from the server. The cookie includes the service group name.
Note: If the server selection is done by a policy template, any configured persist cookie template
will not add cookies based on the service group. This occurs because the policy-based server load
balancing selection has already occurred on the receiving client SYN and the L7 backend will not
make a selection based on cookies again.
• If the client’s request already has a persistence cookie containing the name of the selected ser-
vice group, the ACOS device uses the information in the cookie to select the same server within
the service group.
For example, the first time service group sgabc is selected by URL switching, the ACOS device inserts a
cookie into the server's reply, to ensure that the same server is used the next time URL switching
selects sgabc. The first time service group sg123 is selected by URL switching, the ACOS device inserts
a second cookie into the server’s reply, to ensure that the same server is used the next time URL
switching selects sg123. Even though URL switching does not always select the same service group,
the same server within the selected service group is always selected.
page 200
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL / Host Switching
When cookie persistence is configured, the ACOS device adds a persistence cookie to the server reply
before sending the reply to the client. The client’s browser re-inserts the cookie into each request. The
format of the cookie depends on the match-type setting:
• match-type (port) – This is the default setting. Subsequent requests from the client will be sent
to the same real port on the same real server. URL switching or host switching is used only for
the first request.
The cookie that the ACOS device inserts into the server reply has the following format:
Set-Cookie: cookiename-vport=rserverIP_rport
The vport is the virtual port number. The rserverIP is the real server IP address and the rport is the
real server port number.
NOTE: The port option is shown in parentheses because the CLI does not have
a “port” keyword. If you do not set the match type to server (see below),
the match type is automatically “port”.
• match-type server – Subsequent requests from the client for the same VIP will be sent to the
same real server, provided that all virtual ports of the VIP use the same cookie persistence tem-
plate with match-type set to server. URL switching or host switching is used only for the first
request.
The cookie that the ACOS device inserts into the server reply has the following format:
Set-Cookie: cookiename=rserverIP
• match-type (port) service-group – Subsequent requests from the client will be sent to the same
real port on the same real server, within the service group selected by URL switching or host
switching. URL switching or host switching is still used for every request.
The cookie that the ACOS device inserts into the server reply has the following format:
Set-Cookie: cookiename-vport-servicegroupname=rserverIP_rport
• match-type server service-group – Subsequent requests from the client for the same VIP will be
sent to the same real server, within the service group selected by URL switching or host switch-
ing. URL switching or host switching is still used for every request.
The cookie that the ACOS device inserts into the server reply has the following format:
Set-Cookie: cookiename-servicegroupname=rserverIP
page 201
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL / Host Switching
ACOS can also forward the cookie in pass-thru mode, so no information is modified, and the set-cookie
header is not parsed from the server packet response or from subsequent client responses. In this
case, the server is the one that sends the persist cookie. If the Set-Cookie header contains additional
attributes, then the ACOS configuration should match those. Any mismatch between the ACOS config-
uration and the server persist cookie will break the persistence behavior.
To use pass-thru mode, there needs to be an httpd.conf file on the server. In the CLI, you can generate
the pass-thru cookie that needs to be added to the server’s configuration file. This cookie is generated
based on match type and parameters that you specify.
The following commands configure a cookie persistence template named “persist-cookie-sg” and
enable port-level persistence with support for URL switching or host switching:
The following commands create the SLB persist cookie template and names it “passive-persist.” This
temple enables pass-thru mode for passive cookie persistence.
page 202
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL Failover
For more information, see the description of the slb template persist source-ip command in the
“Config Commands: SLB Templates” chapter of the Command Line Interface Reference.
URL Failover
In this example, a client sends a request for www.example.com (virtual IP address 192.168.10.10).
However, this VIP is unavailable because all the real servers are failing their health checks. ACOS is
configured to send an HTTP 302 Redirect message if the VIP is down, redirecting clients to www.exam-
ple2.com.
By default, URL failover is not configured. To configure it, you specify the URL to which to redirect cli-
ents. Like the other HTTP options, you can apply this option to a virtual port by configuring the option in
an HTTP template, and binding the template to the virtual port.
The URL failover option does not affect redirect messages sent by real servers. To alter redirect mes-
sages from real servers, use the URL redirect-rewrite option instead. (See “URL Redirect Rewrite” on
page 222.)
page 203
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
5xx Retry and Reassignment
The following commands implement the URL failover configuration shown in Figure 26 on page 203.
The following commands bind the HTTP template to virtual port 80:
For example, assume a service group has three members (s1, s2, s3), and the retry is set to 1. Then, if
s1 replies with a 5xx status code, the ACOS device reassigns the request to s2. If s2 also responds with
a 5xx status code, the ACOS device cannot reassign the request to s3, because the maximum number
of retries has been used.
page 204
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Non-HTTP Bypass
Depending on the configured 5xx retry option, either the service port and server remain eligible for more
client requests, or the ACOS device stops sending client requests to the service port and server for 30
seconds.
• Server re-selection is not performed if Layer 3 features such as PBSLB, source-IP persistence, or
cookie persistence are configured on the virtual port. These features override the server re-selec-
tion.
• Use of this HTTP template option also requires the strict-transaction-switch option to be used in
the same HTTP template. (See “Strict Transaction Switching” on page 224.)
• This option is supported only for virtual port types HTTP and HTTPS. It is not supported for fast-
HTTP or any other virtual port type.
These commands configure an HTTP template to reselect a server when the initially selected server
responds 4 times to a client’s request with a 5xx code. ACOS stops using the service port and server for
30 seconds after reassignment.
Non-HTTP Bypass
Non-HTTP bypass redirects non-HTTP traffic to a specific service group. This feature helps prevent
non-HTTP traffic from being dropped by the ACOS device.
page 205
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
HTTP Packet Flow Modes
To redirect non-HTTP traffic to a specific service group use the non-http-bypass service-group com-
mand (HTTP template configuration level). By default, ACOS drops non-HTTP requests sent to an HTTP
port:
1. On an ACOS, configure the HTTP template and indicate the service group (in this case sg1) to
which all non-HTTP traffic should be sent:
ACOS(config)# slb template http http
ACOS(config-http)# non-http-bypass service-group sg1
2. To view the existing configuration, use the show slb template command:
ACOS(config-http)# show slb template | section sg1
slb service-group sg1 tcp
priority 10 drop
priority 5 reset
non-http-bypass service-group sg1
The above commands help apply the template to the virtual-port. When the http template is
applied to the “virtual port 80,” any non-http requests will be forwarded to the service-group speci-
fied in the non-http bypass option.
4. To remove the non-http-bypass option for the service group (sg1), issue the following command:
ACOS(config)# slb template http http
ACOS(config-http)# no non-http-bypass service-group sg1
• Request-response mode: The ACOS device does not send subsequence requests until it receives
a response to previous requests.
page 206
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
HTTP Packet Flow Modes
• Pipeline mode: The ACOS device can send multiple requests that define a data transfer to the
same server without waiting for responses to previous requests.
Pipeline is the default HTTP and HTTPS packet flow mode. The are no commands that explicit specify
the mode that a device uses. The only method to manually specify a packet mode is to configure a con-
dition that enables Request-Response mode.
Request-response mode is enabled when the device is performing per-request load balancing. Enabling
any of the following features also enables request-response mode and subsequently disables pipeline
mode.
• RAM cache is enabled on virtual port (implemented through an SLB cache template)
page 207
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
High-speed HTTP Content Replacement
• External service is enabled on virtual port (implemented through an SLB external-service tem-
plate)
• Flex includes retry
A maximum of 8 content-replacement rules are supported in a given HTTP template. If you need more
rules, aFleX supports up to 32.
• If the replacement pattern is the same length as the original pattern, ACOS uses the same header
type used by the server.
• If the replacement pattern length is different from the length of the original pattern, the ACOS
device uses a Transfer-Encoding: chunked header and chunk-encodes the content.
page 208
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Content Compression
Quotation marks are not required, even if either or both strings contains blank spaces.
c. Click Add.
6. Select or enter values for any additional template options you want to use. The remaining sections
in this chapter describe the fields for configuring each option.
7. Click OK. The template appears in the ADC template list.
These commands configures replacement of “Welcome to A10” with “Greetings from A10!”:
Content Compression
To maximize the benefits of content compression, you can enable the ACOS device to perform com-
pression for the real servers.
Compression is disabled by default. When it is enabled, the ACOS device compresses media of types
“text” and “application” by default. The ACOS device can be configured to compress additional media
types. The device can also be configured to exclude specific media types and even specific URIs from
compression.
Compression is supported only for HTTP and HTTPS virtual ports. Compression is not supported for
fast-HTTP virtual ports.
Accept-Encoding Field
An HTTP request from clients usually contains an Accept-Encoding field in the header. This field indi-
cates to the real server whether the client is willing to accept compressed content.
If compression is enabled on the real server, the real server will compress content before sending it to a
client, if the client’s request contains the Accept-Encoding field with the “compress” value for the
requested content type.
page 209
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Content Compression
By default, when you enable compression on the ACOS device, the device removes the entire Accept-
Encoding field from the request before sending the request to the server. As a result, the server does
not compress the content before sending it in the reply. ACOS compresses the content, then sends the
reply with the compressed content to the client.
If you still want the server to compress some content, you can configure the ACOS device to leave the
Accept-Request field unchanged. In this case, compression is performed by the real server instead of
the ACOS device, if the server is configured to perform the compression. ACOS can still compress con-
tent that the real server does not compress.
Compression Level
ACOS supports compression level 1-9. Each level provides a higher compression ratio, beginning with
level 1, which provides the lowest compression ratio. A higher compression ratio results in a smaller file
size after compression. However, higher compression levels also require more CPU processing than
lower compression levels, so performance can be affected.
The default compression level is 1, which provides the fastest compression speed but with the lowest
compression ratio.
Hardware-Based Compression
Hardware-based compression is available using an optional hardware module. To confirm a device
supports hardware-based compression, enter show hardware and look for the highlighted line in the out-
put:
page 210
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Content Compression
NOTE: Installation of the compression module into ACOS devices in the field is
not supported. Contact A10 Networks for information on obtaining an
ACOS device that includes the module.
This example shows that a “GZIP” module is installed for hardware-based compression support. This
field will not appear if there is no GZIP module installed on the device.
Hardware-based compression is disabled by default. When you enable it, all compression settings con-
figured in HTTP templates, except the compression level, are used.
Hardware-based compression is automatically set on the module and cannot be set using a template.
The module always uses the same compression level regardless of the level configured in an HTTP
template.
page 211
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Content Compression
If the ACOS device is configured to leave the Accept-Encoding field unchanged, and the real server has
already compressed the file, the ACOS device forwards the compressed file without recompressing it.
Running with aFlex, the compressed traffic is decompressed and an HTML tag is added to the
response. The response is then recompressed and sent back to the client.
As an example, on receiving the responses of HTTP traffic, the load balancer can insert a reference to
JavaScript. If the traffic is compressed, then ACOS device decompresses the traffic, adds a reference
to JavaScript, recompresses the response, and sends it back to the client.
page 212
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Content Compression
1. Select ADC > Templates, and select the L7 Protocols tab from the menu bar.
2. Click + Create and select HTTP from the drop-down menu.
3. Enter a name for the HTTP template.
4. Scroll to Compression and click to expand and display a set of additional fields.
a. Auto Disable On High CPU – Specify a value from 1-100 percent to configure an automatic
disable of HTTP compression based on CPU utilization.
b. Keep Accept Encoding – This option configures ACOS to leave the Accept-Encoding header
in HTTP requests from clients instead of removing the header. When this option is enabled,
compression is performed by the real server instead of the ACOS device when the server is con-
figured to perform compression. The ACOS device compresses content that the real server
does not compress.
c. Level – Click the drop-down menu and select a value ranging from 1-9. Each level provides a
higher compression ratio, beginning with level 1, which provides the lowest compression ratio.
A higher compression ratio results in a smaller file size after compression. However, higher
compression levels also require more CPU processing than lower compression levels, so per-
formance can be affected.
d. Minimum Content Length – Specify the minimum number of bytes the content must be in
order to be eligible for compression. The range is 1- 2147483647 and the default is 120.
5. To add more content types to be compressed:
a. In the Compression Content Type field, enter the string for a content type to compress.
b. Click Add.
c. Repeat step a and step b for each type of content to compress.
6. Click OK.
7. If your ACOS device supports hardware-based compression, enable the feature:
a. Select ADC > SLB.
b. On the menu bar, select Global.
c. Click the checkbox next to Hardware Compression.
d. Click Update.
page 213
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Content Compression
Hardware Compression is not available when the ACOS device does not contain a compression mod-
ule.
These commands configure an HTTP template called "http-compress" that uses compression level 5 to
compress files with media type "application" or "image". Files with media type "application/zip" are
explicitly excluded from compression.
This command displays HTTP compression statistics. The counters are in bytes and apply to all HTTP
compression configured in all HTTP templates on the ACOS device.
The following commands enable hardware-based compression and display statistics for the feature:
page 214
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Content Compression
ACOS(config-common)# hw-compression
ACOS(config-common)# exit
ACOS(config)# show slb hw-compression
Hardware compression device is installed.
Hardware compression module is enabled.
Total
------------------------------------------------------------------
total request count 177157
total submit count 177157
total response count 177157
total failure count 0
last failure code 0
compression queue full 0
max queued request count 84
max queued submit count 68
This option is disabled by default. You can enable it in individual HTTP templates.
• The feature operates on individual CPUs. For example, if the utilization on CPUs 1 and 3 is above
the configured threshold but the utilization on other CPUs is below the threshold, HTTP compres-
sion is disabled only on CPUs 1 and 3. Compression remains enabled on the other CPUs.
• This feature applies to software-based compression. If hardware-based compression is enabled,
this feature is inapplicable and has no effect.
1. Select ADC > Templates, and select the L7 Protocols tab from the menu bar.
2. Click + Create and select HTTP from the drop-down menu.
3. Enter a name for the HTTP template.
4. Scroll to Compression and click to expand and display a set of additional fields.
5. In the Auto Disable On High CPU field, specify a value from 1-100 percent to configure an auto-
matic disable of HTTP compression based on CPU utilization.
6. Click OK.
page 215
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Client IP Insertion / Replacement
To configure automatic disable of HTTP compression based on CPU utilization, use the compression
auto-disable-on-high-cpu command at the configuration level for the HTTP template. The following
commands disable HTTP compression when CPU utilization is greater than 50%.
To display statistics for software-based compression, use the show slb compression command:
However, in configurations where IP source NAT is enabled for SLB, the client’s IP address is not the
source IP address in the request received by the real server. Instead, the source IP address of the
request is the address into which the ACOS device translates the client’s IP address.
To add the client’s IP address back to the request, you do not need to change the network configuration
or NAT settings. Instead, you can simply enable the ACOS device to insert the client’s IP address into
the header of the client’s GET request before sending the request to a real server.
page 216
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Client IP Insertion / Replacement
In this example, SLB source NAT changes the source address of the client’s GET request from
192.168.100.3 to 10.20.20.11. However, the client’s source IP address is preserved within the HTTP
header of the request, by inserting the address into the X-ClientIP field.
This option inserts the client’s IP address into the X-ClientIP field by default. However, you can specify
another field name instead. For example, you can configure the option to insert the client IP address
into the X-Forwarded-For field.
To insert HTTP header fields with other types of values, or to erase fields, see “Header Insertion / Era-
sure” on page 218.
Replace Option
By default, the client IP address is appended to addresses already in the target header field. You can
configure the ACOS device to replace any addresses that are already in the field.
Without this option, the client IP address is appended to the lists of client IP addresses already in the
header. For example, if the header already contains “X-Forwarded-For:1.1.1.1”, the field:value pair
becomes
“X-Forwarded-For:1.1.1.1, 2.2.2.2”.
If you enable replacement of the client IP addresses, the field:value pair becomes “X-Forwarded-
For:2.2.2.2”.
page 217
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Header Insertion / Erasure
The following commands implement the client IP insertion configuration shown in Figure 29 on
page 217.
The following commands bind the HTTP template to virtual port 80:
An HTTP template can contain options to insert, replace, or erase a maximum of 8 headers.
page 218
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Header Insertion / Erasure
• The header insert, replace, and erase options described in this section are not supported with the
fast-http service type. ACOS does not allow an HTTP template with any of these header options
to be bound to a fast-http virtual port. Likewise, ACOS does not allow any of the header options to
be added to an HTTP template that is already bound to a fast-http virtual port.
• To configure ACOS to insert the client’s IP address, see “Client IP Insertion / Replacement” on
page 216.
• Header insertion is not supported on fast-HTTP virtual ports.
• Insert-always – always inserts the field:value pair. If the request already contains a header with
the same field name, the new field:value pair is added after the existing field:value pair. Existing
headers are not replaced.
• Insert-if-not-exist – inserts the header only if the packet does not already contain a header with
the same field name.
• Default behavior (neither of the options above) – inserts the header. If the packet already con-
tains one or more headers with the specified field name, this option replaces the last header.
GET / HTTP/1.1
Host: www.example.com
Cookie: a=1
Cookie: b=2
...
page 219
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Header Insertion / Erasure
GET / HTTP/1.1
Host: www.example.com
Cookie: a=1
Cookie: b=2
Cookie: c=3
...
GET / HTTP/1.1
Host: www.example.com
Cookie: a=1
Cookie: b=2
...
GET / HTTP/1.1
Host: www.example.com
Cookie: a=1
Cookie: c=3
...
page 220
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Header Insertion / Erasure
• Insert Always – ACOS always inserts the field:value pair. If the request already contains a
header with the same field name, the new field:value pair is added after the existing field:value
pair. Existing headers are not replaced.
• Insert If Not Exist – ACOS inserts the header only if the packet does not already contain a
header with the same field name.
c. Click Add.
6. To insert a response header, follow the same steps as those for inserting a request header, but use
the “Response Header Insert” section.
7. Click OK. The HTTP template appears in the SLB template list.
To insert a header, use the request-header-insert command. See the “Command Line Interface Refer-
ence for ADC” for information about the command.
The following command configures an HTTP template that inserts “Cookie: c=3” into every HTTP
request. If the request already contains “Cookie” headers, the first header is replaced.
The following command configures an HTTP template that always inserts “Cookie: c=3” into HTTP
requests, but does not replace other “Cookie” headers. The “Cookie: c=3” header is added after any
“Cookie” headers that are already present in the request.
The following command configures an HTTP template that inserts “Cookie: c=3” into HTTP requests,
but only if the requests do not already have a “Cookie” header.
page 221
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL Redirect Rewrite
Use the response-header-erase command to remove the Set-Cookie header from HTTP responses:
• URL change – You can change the URL before sending the redirect to the client. For example, if
the real server redirects the client to
http://www.example1.com, you change the URL to
http://www.example2.com or https://www.example2.com.
• Secure redirection – You can change an unsecure redirect (HTTP) to a secure one (HTTPS). For
example, if the real server redirects the client to http://www.example1.com, you change the URL
to
https://www.example1.com.
page 222
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
URL Redirect Rewrite
The following commands configure the ACOS device to change unsecure URLs to secure URLs in redi-
rect messages.
The following commands configure the HTTP template. Redirect URLs that begin with “http://” are
changed to “https://”. The URLs in the redirect messages are otherwise unchanged.
The following commands bind the HTTP template to virtual port 80:
page 223
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Strict Transaction Switching
If the load among real servers appears to be unbalanced, you can enable strict transaction switching to
rebalance the load. The strict transaction switching option forces the ACOS device to perform server
selection for each request within every session.
NOTE: Use this option only if needed, and disable the option once the server
load is rebalanced. This option makes server selection much more gran-
ular but also uses more ACOS system resources.
To enable strict transaction switching, enter the strict-transaction-switch command at the configu-
ration level for the HTTP template.
page 224
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Client-IP Insertion Extensive Support
response codes originated from the real server or ACOS. An immediate display for the event cause
allows you to quickly and effectively respond to HTTP events.
NOTE: In the current release, HTTP response codes are not written to event
logs.
Enter the show slb http-proxy command to display counters for HTTP response codes. See the “Com-
mand Line Interface Reference for ADC” for information about the command.
For example:
When client-IP Insertion is configured, the client’s IP address is inserted into the TCP options. The
options field is a maximum of 40 bytes. Other options may take priority over inserting the client’s IP
address, causing the client-IP to be omitted due to lack of room in the TCP header. This is most likely to
occur in IPv6 to IPv6 or IPv6 to IPv4 traffic because the option length for an IPv6 address is longer.
page 225
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Client-IP Insertion Extensive Support
There is a counter that tracks the number of times the client-IP insertion is skipped due to lack of room
in the TCP header.
The following example configures an SLB TCP template and binds it to a port 80 TCP on the “proxy-
server.”
The commands below create an SLB TCP template named “proxy-header” and configure it to insert the
client-IP in the headers of forwarded traffic.
The following commands apply the “proxy-header” template to the virtual server “proxy-server,” on port
80 TCP. All traffic coming through port 80 on “proxy-server” will have the client-IP inserted into the
header when they are forwarded on.
page 226
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Client-IP Insertion Extensive Support
page 227
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Client-IP Insertion Extensive Support
page 228
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
The URL Filter server’s HTTP module parses the client request and saves the results in the correspond-
ing data structure. ACOS inserts the configured header when it forwards the HTTP request to the proxy
server. If the response from the proxy server is good, then ACOS connects to the destination server. If
the response from the proxy server is bad, then ACOS closes the connection.
To specify the HTTP request-headers to be sent to the proxy server, use an SLB “external-service” tem-
plate.
• Only GET and POST methods are forwarded by the SLB “external-service” template, so only these
methods will forward the configured request-headers to the proxy servers.
• A maximum of 16 HTTP headers can be forwarded. One HTTP header only can be 1036 bytes,
including the HTTP header name and HTTP header element. Anything longer than that will be
truncated at 1036 bytes.
• If there are multiple headers with the same name from the client, then only the first header
instance will be forwarded.
page 229
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring HTTP Load Balancing to Proxy Servers
The default value is 90, and a value between 90 and 255 can be entered.
This example increases the number of HTTP headers that ACOS can process to 255.
The following example enables header request forwarding within an SLB External-service template
named “header-forwarding” for the headers “user-agent,” “date,” and “cookie.”
page 230
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS provides an option to send a TCP reset (RST) to clients if server selection fails. Server selection
failure can occur as the result of any of the following conditions:
• The def-selection-if-pref-failed option is disabled and SLB is unable to select a server for
any reason
• All servers are down
• Service group
• Virtual port
Enabling the reset-on-server-selection-fail option at the service-group level allows selective use of
the option based on service group. Figure 30 on page 232 shows an example of a Policy-Based SLB
(PBSLB) solution that uses the reset-on-server-selection-fail option.
The TCP template reset-rev option also can be used to send a RST to clients. In ACOS releases prior to
2.2.2, the reset-rev option would send a RST in response to a server selection failure. In ACOS Release
2.2.2 and later, the new reset-on-server-selection-fail option must be used instead.
When "reset-rev" is configured in a tcp or tcp-proxy template that is bound to a virtual port when the
server is disabled or down, RST is not always immediately sent to the client:
• If there is an active session (ACOS is processing traffic and detects that the server for the ses-
sion the traffic matches, is disabled or goes down), the RST is sent to client immediately.
• If the server is detected as disabled or down while the session is idle, RST is sent to the client
after a 30 to 90 second delay. However, if “del-session-on-server-down” was configured in the
SLB port template, RST is sent immediately.
page 231
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
• White-list clients
• Grey-list clients
• Black-list clients
In this solution, if a white-list client exceeds the connection limit specified in the black/white list, the
ACOS device sends a RST to the client. However, if a grey-list or black-list client exceeds its connection
limit, the ACOS device drops the connection, instead of sending a RST.
To implement this solution, a separate service group is configured for each client category. In the
black/white list, each client is assigned to one of the service groups, according to the client’s category.
For example, client 192.168.1.1 is a white-list client, and is therefore assigned to the white-list service
group.
page 232
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
To configure the ACOS device to send a RST to white-list clients upon server selection failure, but not to
grey-list or black-list clients, the reset-on-server-selection-fail option is used in the white-list service
group only. The default PBSLB action, drop, is used for the other service groups.
The virtual port to which clients will send mail traffic is bound to all three service groups. In addition, the
def-selection-if-pref-failed option is disabled. This option must be disabled so that the ACOS device
does not attempt to use other configuration areas of the system to select a server, if SLB is unable to
select a server.
A policy template is used to identify the black/white list and the service group assignments, and is
bound to the virtual port.
This example uses a separate server for each client category. However, traffic for all clients could be
sent to the same server. The essential parts of this solution use a separate service group for each client
category, enabling of the reset-on-server-selection-fail option in the white-list service group, and dis-
abling of the def-selection-if-pref-failed option on the virtual port.
The reset-on-server-selection-fail option is disabled by default. To enable the option, use the
reset-on-server-selection-fail command as follows:
• To enable the option in a service group, issue the command at the configuration level for the
group:
• To enable the option on a virtual port, issue the command at the configuration level for the port:
CLI Example
The commands below implement the solution shown in Figure 30 on page 232.
page 233
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
The following commands import black/white list “bw-list-1.txt” onto the ACOS device:
page 234
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes SPDY load balancing and how to configure it.
This chapter and other SLB configuration chapters walk through the individual GUI pages used for con-
figuration. The GUI also provides smart templates for easy configuration. For information, see the GUI
online help
Overview
SPDY load-balancing manages SPDY traffic across a Web server farm. Figure 31 displays a SPDY load
balancing deployment. Network topologies in application examples such as this one are simplified to
focus on the application. For example, the Internet router connecting the clients to the ACOS device is
not shown here. Likewise, a single ACOS is shown. Your configuration might use an ACOS pair for
VRRP-A high availability.
In this example, a server farm consisting of three servers provides content for Web site www.exam-
ple.com. Clients access the site through its virtual IP address, 192.168.10.11. When the ACOS device
page 235
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview
receives a client request using the SPDY protocol on 192.168.10.11, the ACOS device converts to
HTTP, selects a real server, and sends the client request to the server.
For simplicity in this example, the real servers use the default protocol port number for HTTP (80). The
port numbers on the real and virtual servers are not required to match.
The client is unaware of the real IP address of the real server and that the site consists of multiple serv-
ers. After selecting a real server, the ACOS device automatically performs necessary Network Address
Translation (NAT) to send the client request to the server, receive the reply from the server, and send
the reply to the client. From the client’s perspective, the Web session is between the client and port 80
on 192.168.10.11.
Service Groups
This example uses a single service group that contains all the real servers and the applicable service
port (80). During configuration, you bind the service group to the virtual port(s) on the virtual server. In
this example, the default load-balancing method, round robin, is used.
Virtual Server
The virtual server in this example has IP address 192.168.10.11 and virtual service port 80. When con-
figuring a virtual service port, you specify the protocol port number for the port. You also specify the
service type. Although 6121 is the default port number for SPDY, most web browsers use port 80 for
web traffic, so the SPDY service port must be configured to port 80.
SPDY/SPDYS load balancing works only when source NAT is configured on the virtual server.
Templates
For SPDY, the ACOS configuration applies “default” templates of each of the following template types
to SPDY service ports:
• TCP-Proxy
The following types of templates also can be used with SPDY service ports. However, these types of
templates do not have “default” templates that are applied automatically.
• Source-IP Persistence
• Connection reuse
(For an example using a source-IP persistence template, see “Layer 4 TCP/UDP Load Balancing” on
page 135.)
The following types of templates are not supported for use with SPDY service ports at this time:
page 236
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview
• Cookie persistence
• WAF
• External Service
• Authentication
ACOS uses templates for configuration of some commonly used server and port parameters. By
default, the following templates are applied:
• Default port template – Contains configuration parameters for real service ports
• Default virtual-port template – Contains configuration parameters for virtual service ports
For more information about server and port templates, see the following:
Health Monitors
This example uses the following health monitors to check the real servers, both of which are configured
and enabled by default when you add the real servers:
• Ping – A Layer 3 health method that sends an ICMP echo request to the real server’s IP address.
The server passes the health check if the ACOS device receives a ping reply.
• TCP – By default, every 30 seconds, the ACOS device sends a connection request (TCP SYN) to
each load balanced TCP port on each server, in this case ports 80 and 443. A TCP port passes
the health check if the server replies to the ACOS device by sending a TCP SYN ACK. By default,
the ACOS device completes the TCP handshake.
In addition to these default health checks, you can configure health monitors for specific service types.
This example uses an HTTP health monitor, with the following default settings:
• Every 30 seconds, the ACOS device sends an HTTP GET request for the default index page.
• The SPDY service port passes the health check if the requested page is present on the server and
the server replies with an OK message (200).
For information about health monitors and their configurable options, see “Health Monitoring” on
page 627.
page 237
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring SPDY Load Balancing
• The only supported options for SETTING frames are MAX CONCURRENT STREAMS and INITIAL
WINDOW SIZE. The following options are not supported:
• UPLOAD BANDWIDTH
• DOWNLOAD BANDWIDTH
• ROUND TRIP TIME
• CURRENT TCP CWND
• DOWNLOAD RETRANS RATE
• CLIENT CERTIFICATE VECTOR SIZE
• Only HTTP Name/Value pairs are supported; others are considered HTTP and cause an HTTP
parse error.
• AX only supports receiving, not sending, window update messages. Window update messages
will be received per session, not per stream.
• CREDENTIAL is not supported
To configure the SPDY load balancing solution described in “Overview” on page 235, perform the fol-
lowing tasks on the ACOS device:
page 238
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring SPDY Load Balancing
page 239
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring SPDY Load Balancing
page 240
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring SPDY Load Balancing
ACOS begins sending health checks to a real server’s IP address and service ports as soon as you
finish configuring the server. The overall health status for the server is shown in the Status col-
umn. If the status is Down, verify that health monitors are configured for all the service ports. The
default Layer 3 health method is automatically used for the Layer 3 health check, unless you
selected another health method instead.
page 241
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring SPDY Load Balancing
6. In the Member section, click Create, and select a real server from the Server drop-down, enter the
service port number, and click Create to add the member to this service group.
7. Repeat step 6 for each real server.
8. Click Update. The new service group appears in the service group table.
page 242
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring SPDY Load Balancing
9. In the Port field, enter the service port number. In this example, enter “80”.
10.Click the Service Group drop-down menu and select the desired service group.
11.Click the General Fields section, click the Source NAT Pool drop-down menu, and select the
source NAT pool you configured earlier.
12.Click Create. The virtual port appears in the table.
13.Click Update. The virtual server appears in the virtual server table.
The command syntax shown in this section is simplified for the configuration example in this chapter.
For complete syntax information about any command, see the CLI Reference.
page 243
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring SPDY Load Balancing
page 244
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes Session Initiation Protocol (SIP) load balancing and how to configure it. You can
configure load balancing for SIP over UDP or SIP over TCP/TLS.
Figure 32 shows an example of a SIP load balancing configuration. The commands to implement this
configuration are shown in “Configuring Load Balancing for SIP over UDP” on page 246.
page 245
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over UDP
The status of ALG support does not affect address translation at the IP layer. Address translation at the
IP layer is still performed, if applicable, even if ALG support is disabled.
page 246
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over UDP
7. Select the Register checkbox to send a REGISTER request. (By default, an OPTION request is sent
instead.)
8. For SIP over TCP, select the Use TCP checkbox.
9. To check the reply for specific response codes, enter them in the Expect Response Code field.
10.Click Create Monitor. The new SIP health monitor appears in the Health Monitor table.
page 247
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over UDP
Use the same steps to configure a real server as a proxy for each SIP server that handles SIP mes-
sages other than registration messages. The following GUI panel shows servers added.
To configure a service group for the Registrar servers and add them to the group
The following example shows adding the service group, followed by the list of all service groups added.
page 248
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over UDP
To configure a SIP template to redirect all SIP registration messages to the SIP Registrar service group
The following example shows creating the template, followed by the list of all templates added.
page 249
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over UDP
page 250
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over UDP
9. Click the Service Group drop-down menu and select the SIP service group you created above for
non-registration traffic.
10.Click Templates to expand the template configuration options.
11.Click the Template SIP drop-down menu, and select the SIP template you just created.
12.Click Create. The port appears in the Port list for the virtual server.
13.Click Update. The virtual port appears in the virtual server table.
This example implements the SIP load balancing configuration shown in Figure 32 on page 245.
page 251
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over UDP
6. The following commands configure the VIP for the SIP registrar:
ACOS(config)# slb virtual-server sip1 192.168.20.1
ACOS(config-slb vserver)# port 5060 sip
page 252
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over UDP
page 253
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
SIP clients send secure SIP requests over TLS. Requests are addressed to a VIP configured on the
ACOS device. The ACOS device forwards the requests to the SIP servers over TCP. Likewise, when the
ACOS device receives SIP traffic from the SIP servers, the ACOS device forwards the traffic to the
appropriate clients over TLS.
SIP Multiplexing
You can use the ACOS device to multiplex SIP connections. This is useful in cases where the SIP serv-
ers do not have enough capacity to maintain separate connections for each SIP client. Figure 34 shows
an example.
page 254
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
In this example, each SIP server can handle a maximum of 256 client connections. However, there are
1000 SIP clients that use the VIP as their SIP server.
To enable the SIP servers to be used with this many clients, the connection-reuse feature is configured
on the ACOS device. The ACOS device is allowed to open a maximum of 100 connections to each
server, but uses each connection for multiple clients.
While the ACOS device is sending a client request on a connection, the connection is in use. However,
as soon as the request has been sent, the ACOS device frees the connection to be used again. The con-
nection can be used for the same client or another client. The ACOS device does not wait for a reply to
the client’s request before freeing the connection. Figure 35 shows an example.
page 255
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
In this example, the ACOS device sends requests for 3 different clients before receiving the reply to the
first request. To identify the client to which to forward the reply, the ACOS device examines the X-For-
warded-For header in the reply.
The operation of connection reuse for SIP over TCP is different from the operation of connection reuse
for HTTP. For HTTP, the ACOS device does not free a connection after sending a client’s request.
Instead, the ACOS device frees the connection only after receiving a response to the request.
• Timeout – Specifies how long a reusable connection can remain idle before being terminated.
• Limit per server – Specifies the maximum number of connections to the server. (In Figure 34,
this option would be set to 100.)
• Keep-alive connections – Specifies the number of new reusable connections to open before
beginning to reuse the existing connections for new clients.
• Client IP insertion – When this SIP template feature is enabled, the ACOS device inserts an X-For-
warded-For header into the client’s request before forwarding the request to the SIP server. The
header contains the client’s IP address and client port number. ACOS expects the server to send
back this header, and uses the header to identify the client to which to send replies from the SIP
server.
• Server keepalive (described in “Client Keepalive and Server Keepalive” on page 256)
• The SIP server must be able to reply to SIP pings, with SIP pongs.
• The SIP server must be able to include the X-Forward-For header added to the client’s request by
the ACOS device, in replies to the client.
• Ping – A SIP ping is a 4-byte message containing a double carriage return line feed (CRLF).
page 256
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
• Pong – The reply to a SIP ping is called a “pong”. A pong is a 2-byte message containing a single
CRLF.
Client keepalive enables the ACOS device to reply to SIP pings sent by clients instead of forwarding
them to the SIP server. This feature is applicable regardless of whether you use the ACOS device to
multiplex SIP connections.
Server keepalive enables the ACOS device to generate SIP pings and send them to the server. ACOS
uses server keepalive to prevent the reusable connections to the server from aging out. If the ACOS
device does not receive a pong before the connection-reuse timeout expires, the ACOS device closes
the connection. Server keepalives apply only to configurations that include connection reuse, such as a
configuration that uses the ACOS device as a SIP multiplexer.
If connection reuse is configured, even with client keepalive disabled, ACOS devices respond to client
SIP pings with pongs.
Figure 36 shows an example of a configuration that uses both SIP keepalive features.
• Reset the connection. This is the default for client-selection failures and server-selection failures.
page 257
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
• Example message sent to client when server can not be reached: “504 Server Time-out”
• Example message sent to server when client cannot be reached: “480 Temporarily Unavailable”
When a client sends a SIP request, the request is addressed to the virtual IP address (VIP) and protocol
port number configured on the ACOS device for the SIP servers. ACOS translates the destination IP
address and port of the request from the VIP to the real IP address and port of a SIP server. ACOS does
not change the client IP address or source protocol port number.
Likewise, when the ACOS device receives a SIP packet from a SIP server, the ACOS device translates
the source IP address and port from the server’s real IP address and SIP port to the VIP address and
port, then sends the packet to the client.
By default, the ACOS device also translates the client IP address and protocol port number where they
are used in some other parts of the SIP packet. However, the ACOS device does not translate server
addresses or protocol port numbers in the following headers:
• Call-ID header
• X-Forwarded-For header
You can disable translation in any of the following places in the packet:
• Start line
• Individual headers
• Body
For example, if the client is required to be authenticated before registration, and the authentication
realm is the VIP instead of a domain name, the ACOS device must not translate the virtual IP address
and port into a real server address and port in the Authorization header. Otherwise, authentication will
fail.
page 258
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
• Configure a real server for each SIP server. Use the SIP protocol port number on the server (for
example, 5060) as the port number.
Use TCP as the protocol type. Use a Layer 4 TCP health monitor. When you add the TCP port, the
default TCP health monitor is automatically applied to the port and enabled.
• Configure a service group containing the real servers.
• Client IP insertion
• Client keepalive
• Server keepalive
• Configure a connection-reuse template. Set the limit-per-server option to the maximum number
of SIP connections to allow on each SIP server.
• If clients will use SIP over TLS, import the certificates and keys the SIP server would use to
authenticate clients. Configure a client-SSL template and add the certificates and keys to the
template.
• Configure a virtual server with the IP address to which clients will send SIP requests. For SIP over
TLS Clients, add a protocol port with service type “sips”. For SIP over TCP Clients, add a protocol
port with service type “sip-tcp”. Bind the port to the service group, and to the SIP and connection-
reuse templates. If a client-SSL template is used, bind the port to the client-SSL template too.
Configuring SIP over TCP / TLS for SIP Multiplexing (GUI Procedure)
The following shows how to configure the SIP multiplexing as described in Figure 34 on page 255.
Repeat for each server. The following example shows the real server and port configuration.
page 259
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
To configure a service group for the SIP servers and add the servers to the group
Repeat for each member. The following example shows the service group and members.
page 260
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
This example shows creating the template, followed by a configuration of the connection re-use tem-
plate.
page 261
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
page 262
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
page 263
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
Configuring SIP over TCP / TLS for SIP Multiplexing (CLI Example)
This example implements the SIP multiplexing configuration (Figure 34 on page 255).
1. These commands access the configuration level of the CLI and configure a SIP over TCP health
monitor:
ACOS(config)# health monitor sip-over-tcp
ACOS(config-health:monitor)# method sip tcp
ACOS(config-health:monitor)# exit
page 264
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
5. The following commands configure the NAT pool and connection-reuse template:
ACOS(config)# ip nat pool pool1 10.10.10.100 10.10.10.100 netmask /24
ACOS(config)# slb template connection-reuse siptls-tmplt
ACOS(config-conn reuse)# limit-per-server 100
ACOS(config-conn reuse)# keep-alive-conn 64
ACOS(config-conn reuse)# exit
ACOS(config)# exit
6. The following commands import the certificates and keys to use for authenticating SIP clients:
ACOS# import cert ca-cert.pem scp:
Address or name of remote host []?192.168.1.1
User name []?admin
Password []?*********
File name [/]?ca-cert.pem
ACOS# import key ca-certkey.pem scp:
Address or name of remote host []?192.168.1.1
User name []?admin
Password []?*********
File name [/]?ca-certkey.pem
ACOS# import cert cert.pem scp:
Address or name of remote host []?192.168.1.1
User name []?admin
Password []?*********
File name [/]?cert.pem
ACOS# import key certkey.pem scp:
page 265
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing for SIP over TCP/TLS
To display SIP SLB statistics, use the show slb sip command. Use the detail option to display statis-
tics separately for each CPU; otherwise, the command displays aggregate statistics for all CPUs.
page 266
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Disabling Reverse NAT Based on Destination IP Address
By default, the ACOS device performs reverse NAT on traffic from a SIP server before forwarding the
traffic. Reverse NAT translates the source IP address of return traffic from servers to clients back into
the VIP address before forwarding the traffic to clients. If SIP server traffic must reach another server
and pass through the ACOS device, the destination server receive the traffic from the VIP address
instead of the SIP server address.
1. Configure an extended ACL that matches on the SIP server IP address or subnet as the source
address, and matches on the destination server’s IP address or subnet as the destination address.
2. Configure a SIP template that disables reverse NAT based on the ACL.
3. Bind the SIP template to the SIP virtual port.
Configure the extended ACL that matches on the SIP server’s subnet and on the database server’s sub-
net.
page 267
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Disabling Reverse NAT Based on Destination IP Address
Configure the SIP template to disable reverse NAT for traffic that matches the ACL.
page 268
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
IP NAT for SIP
This command configures an extended ACL that matches the SIP server and database server subnets:
The keep-real-server-ip-if-match-acl command configures the SIP template to disable reverse NAT
for traffic that matches the ACL:
The following commands bind the SIP template to the SIP virtual port:
Only the SIP signaling packets are NATted. The media packets are not NATted.
1. Configure a pool, range list, or static inside source NAT mapping that includes real IP addresses of
inside clients.
2. Enable inside NAT on the interface connected to the inside clients.
3. Enable outside NAT on the interface connected to the external SIP servers.
page 269
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
IP NAT for SIP
page 270
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS secures database requests by applying SSL and TLS protocols on the front- and back-end serv-
ers to mask sensitive user credentials and validate client credentials against username-password
pairs. In addition, the ACOS can screen requests against aFleX scripts to parse SQL queries and intelli-
gently direct queries among servers.
page 271
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Database Load Balancing
If you skip step 4 and no aFleX script is applied, the load-balance algorithm falls back to the gen-
eral Layer 4 server selection.
For MS-SQL database queries, SSL encryption occurs for the login packet only, not for the full ses-
sion.
page 272
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Database Load Balancing
when DB_COMMAND {
set ret [ DB::command ]
log "aflex script got command number $ret"
pool mysql_read
}
when DB_QUERY {
set ret [ DB::query ]
log "aflex script got query $ret"
if { ($ret contains "select" ) or ( $ret contains "show" ) or ($ret contains "SELECT" ) }
{
log "It is a select!"
pool mysql_read
} else {
log "It is an insert!"
pool mysql_write }
}
when DB_COMMAND {
set ret [ DB::command ]
log "aflex script got command number $ret"
pool w_pool
}
when DB_QUERY {
set ret [ DB::query ]
log "aflex script got query $ret"
page 273
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Database Load Balancing
If you do not apply an aFleX script for server selection, servers are selected by the default selection
algorithm. To learn more about aFleX commands for database query events, see the aFleX Reference.
page 274
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Database Load Balancing
page 275
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Database Load Balancing
5. Configure Servers
6. Configure the Service Group
7. Configure the Virtual Server
8. Monitor DBLB
A complete CLI example is provided in “Configuration Example – Basic DBLB” on page 277.
For a SHA1-password, enter the SHA1-encrypted version of the user’s password. The password must be
exactly 40 bytes in length. To translate a clear-text password to SHA1-encryption use the calc-sha1
command from the DBLB template configuration level of the CLI.
Deleting a class list from a file system is the same as saving the configuration changes to the file sys-
tem. The write mem command is required.
This example enters DBLB template configuration mode and translates “1234” into its encrypted equiv-
alent.
page 276
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Database Load Balancing
Configure Servers
Enter the slb server command to configure a server to process the database queries, then use the
port command to add a port to the server. Optionally apply SSL templates to direct the ACOS to use
SSL encryption on back-end servers which process the requests with the template server-ssl com-
mand.
Optionally, direct database queries across different servers with an aFleX policy (aflex command).
Optionally, apply SSL templates to direct the ACOS to use SSL encryption for client requests (template
client-ssl command).
Monitor DBLB
Enter the show slb template dblb command to display a list of DBLB templates: To view DBLB count-
ers by query type, enter show slb mssql or show slb mysql commands.
1. The following commands create two string class-lists: the first for My-SQL requests (processed
with the “DBUsers” class list) and the second for MS-SQL requests (processed with the “MSSQLD-
BUsers” class list):
ACOS(config)# class-list DBUsers string
ACOS(config-class list)# str 91dfd9ddb4198affc5c194cd8ce6d338fde470e2
ACOS(config-class list)# exit
ACOS(config)# class-list MSSQLDBUsers string
ACOS(config-class list)# str b48cf0140bea12734db05ebcdb012f1d265bed84
ACOS(config-class list)# exit
2. These commands create a server SSL template to be applied to the virtual port. This step is
optional.
ACOS(config)# slb template server-ssl SRV08
page 277
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Database Load Balancing
4. These commands create a service group and add previously configured servers as members.
ACOS(config)# slb service-group mysqlgroup tcp
ACOS(config-slb svc group)# member Server07 3306
ACOS(config-slb svc group-member:3306)# exit
ACOS(config-slb svc group)# member Server08 3306
ACOS(config-slb svc group-member:3306)# exit
ACOS(config-slb svc group)# exit
ACOS(config)# slb service-group mssqlgroup tcp
ACOS(config-slb svc group)# member MSSQLServer02 1433
ACOS(config-slb svc group-member:1433)# exit
ACOS(config-slb svc group)# exit
ACOS(config)# slb template client-ssl SSL
ACOS(config-client ssl)# cert MSSQL-cert
ACOS(config-client ssl)# key MSSQL-key
ACOS(config-client ssl)# exit
5. These commands create two separate DBLB templates to process the My-SQL and MS-SQL que-
ries:
ACOS(config)# slb template dblb DBTemplate
ACOS(config-dblb)# class-list DBUsers
ACOS(config-dblb)# exit
ACOS(config)# slb template dblb MSDBTemplate
ACOS(config-dblb)# class-list MSSQLDBUsers
ACOS(config-dblb)# exit
6. The configuration from step 1 to step 5 are on a single virtual port. These commands create a vir-
tual server and add the service group, templates, and aFleX policy to a virtual port of the virtual
server:
page 278
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Database Load Balancing
page 279
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Database Load Balancing
page 280
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS supports Financial Information eXchange (FIX) message load balancing. These sections
describe how to configure FIX load-balancing and customize a FIX template to direct FIX traffic.
In the following FIX message the TargetCompID is “CUSTOMER6” and the SenderCompID is “FIRM1”:
An FIX template can direct ACOS to use a different service group for server selection when TargetCom-
pID or SenderCompID of a FIX message matches a keyword. In this example, the keyword “FIRM1”
switches service groups based on the SenderCompID, or “CUSTOMER6” to switch service groups
based TargetCompID.
If client IP insertion is enabled in the FIX template and the client’s original IP address is 192.168.13.37,
then the FIX message header is revised with the 11447 tag, as shown below in bold:
page 281
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure FIX Load Balancing
The SenderCompID tag in the FIX message from Client 1 equals “CLIENT1” and is sent to the service
group “sg7” for server selection. Neither the SenderCompID tags nor TargetCompID tags for Client 2
and Client 3 match a target switching keyword in the FIX template. As a result, the requests from Client
2 and Client 3 are directed to the default “fix-sg” service group, bound to the FIX virtual port.
See “CLI Configuration Example” on page 287 for the configuration procedure of this example.
page 282
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure FIX Load Balancing
1. Configure the real servers that will handle FIX traffic and add the TCP port to each server.
2. Configure a service group for the FIX servers and add the servers to the group.
This is the FIX service group.
3. Create a FIX template to redirect all FIX traffic to the FIX service group.
4. Configure a virtual server that contains the FIX port and bind the port to the FIX service group. Add
the FIX service group and the FIX template to the port.
page 283
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure FIX Load Balancing
7. Click the drop-down menu from the right-most column and select the desired service group. By
default, ACOS uses the service group that is bound to the virtual port.
8. If you select the Sender Comp ID or Target Comp ID, these options can be entered in the center
field:
page 284
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure FIX Load Balancing
• Equals – Specifies the keyword which the ACOS device will match against the TargetCompID or
SenderCompID tag. Enter a 1-63 character string. The keyword is case sensitive and must
match exactly with the SendCompID tag or TargetCompID tag. For example, “ABC” is different
from “Abc”.
• Service Group – Specifies a service-group to use for client requests that match the tag value.
9. Click OK to save your changes.
page 285
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure FIX Load Balancing
1. Use the slb virtual-server command at the global configuration level. Specify an IP address to
receive FIX traffic. This command changes the CLI to the configuration level for the virtual server.
2. Enter the port command to create a port for FIX traffic:
page 286
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure FIX Load Balancing
3. Use the service-group command to bind the FIX group to the virtual port.
4. Enter the template fix command to bind a FIX template to the virtual port:
5. Create a service group and add the servers configured in step to the group:
ACOS(config)# slb service-group fix-sg tcp
ACOS(config-slb svc group)# member fix-server1 333
ACOS(config-slb svc group-member:333)# exit
ACOS(config-slb svc group)# member fix-server2 444
ACOS(config-slb svc group-member:444)# exit
ACOS(config-slb svc group)# member fix-server3 555
ACOS(config-slb svc group-member:555)# exit
ACOS(config-slb svc group)# exit
6. (Not shown) Configure an additional service group to use for FIX messages that contain an ID tag
which matches the tag switching keyword:
7. Create a FIX template with tag switching based on the SenderCompID or TargetCompID. In this
example, if the client sends a FIX request with tag “49=CLIENT1”, the ACOS device uses the alter-
native service group “sg7” for server selection.
ACOS(config)# slb template fix fix-exmpl
ACOS(config-fix)# insert-client-ip
ACOS(config-fix)# tag-switching sender-comp-id equals CLIENT1 service-group sg7
ACOS(config-fix)# exit
page 287
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
View FIX Traffic Statistics
page 288
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS supports server load balancing for Short Message Peer-to-Peer (SMPP 3.3) data communication.
This chapter describes the feature and how to configure it.
Overview
The SMPP 3.3 protocol uses a long-lived TCP connection to exchange a high number of messages
between an External Short Message Entity (ESME) and Short Message Service Center (SMCC). In this
section, the ESME is referred to as the SMPP client and the SMCC are the SMPP servers which process
client requests.
The ACOS device serves as a secure SMPP proxy to the SMCC and load balances SMPP communica-
tion from the ESME across a collection of SMPP servers. You can configure SMPP load-balancing to
process messages when the SMPP client is a receiver and load-balancing incoming client requests
among servers in the SMCC.
• General (Basic) – SMPP load balancing is configured by creating an SMPP-TCP virtual port and
directing client traffic to the port.
• General (Advanced) – SMPP load balancing uses a SMPP-TCP virtual port and includes an SMPP
template for additional configuration options (such as keepalive messages). Optionally, a con-
nection-reuse template is applied to the VIP for connection persistence to the SMPP servers.
• Advanced with Client Authentication – This configuration includes an SMPP template, connec-
tion-reuse template, and authenticates clients with a shared username-password pair, applied to
the clients and SMPP servers. If the ESME is a collection of clients that can all equally receive
SMS messages and the SMPP servers carry the same database information, this is a circum-
stance that requires the advanced configuration procedure with client authentication.
page 289
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
SMPP Multiplexing
You can configure the ACOS device to consistently route client requests to a single SMPP server. This
option is especially useful in cases where the number of SMPP clients is unknown and the ACOS
device must consistently maintain an open connection between SMPP clients and SMPP processing
center. To direct multiple SMPP client requests to the same SMPP server, configure a connection-
reuse template with pre-open enabled, and apply the template to the SMPP service group.
The ACOS device will authenticate the initial connection to the SMPP server with the clients’ shared
user-name password pair (configured within the SMPP template). All subsequent requests from the
SMPP clients are then sent directly to the same SMPP server, using the pre-opened connection.
SMPP services often require client-to-server connections to remain persistently open. ACOS provides
configuration options with the SMPP template to send keepalive messages (sent as
ENQUIRE_LINK_RESP and ENQUIRE_LINK packets) to the SMPP clients and servers. To send
keepalive messages for connections which process SMPP traffic, enable one or both of the following
options within the SMPP template:
• Client Enquire Link – When this option is enabled, the ACOS device replies to clients directly with
an ENQUIRE_LINK_RESP message. This feature is applicable regardless of whether you use the
ACOS device to multiplex SMPP connections.
• Server Enquire Link – When this option is enabled, ACOS regularly sends an ENQUIRE_LINK mes-
sage to the SMPP server to maintain the ACOS-to-server connection. Enable the Server Enquire
Link option to prevent reusable connections to the server from aging out. The Server Enquire Link
option applies only to configurations that include a connection reuse template.
You must include a connection-reuse template to use the Server Enquire Link template option.
1. Configure a real server for each SMPP server that handles SMPP messages. Add a TCP port to
each server.
2. Create a service group for the SMPP servers. Add the servers to the group. This is the SMPP ser-
vice group.
3. (Optional) Configure a SMPP template to enforce additional SMPP configuration options (such as
keepalive messages, server selection method, and so on).
4. (Optional) Configure a connection-reuse template.
page 290
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
5. Configure a virtual server that contains the SMPP-TCP port and bind the port to the SMPP service
group. Add the SMPP service group and the SMPP template to the port.
1. Configure Servers:
a. Navigate to ADC > SLB.
b. From the menu bar, select the Servers tab, and then click Create.
c. In the Name field, enter a name for the server.
d. In the Type section, select the IPv4, IPv6, or FQDN radio button, and then enter the IP address
or Hostname for the SMPP server.
e. In the Port section, click the Create button.
f. In the window that appears, enter the SMPP port number in the Port field. (SMPP typically uses
port number 2775.)
g. Click the Protocol drop-down menu and select TCP.
h. In the Health Check option, select the desired radio button. Choices include: Default, Disable,
Monitor, Follow Port
If selecting Monitor, then click the Health Monitor drop-down menu and desired monitor.
If selecting Follow Port, then select TCP from the drop-down menu and enter the number in the
Follow Port field.
Even when the SMPP server is up, some SMPP servers may not always send the correct response
message to a TCP health check. To avoid setting the SMPP server’s state to CLOSE_WAIT, enable
the half-open option for the health check.
i. Click Create. The port appears in the Port list.
j. Click Update. The new SMPP server appears in the real server table.
k. Repeat step a to step j for each real SMPP server that will process SMPP messages.
2. Configure a Service Group:
a. Select ADC > SLB.
b. From the menu bar, select the Service Groups tab and click Create.
c. In the Name field, enter a name for the service group.
page 291
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
Optionally, you can include an SMPP template to configure additional aspects of SMPP load-
balancing. Perform the following steps to configure an SMPP template:
page 292
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
From the CLI only you can enable the keep-alive-conn preopen option for the connection-reuse tem-
plate. The preopen command is required if the username-password pair, server-enquire-link, or server-
selection-per-request option is enabled in the SMPP template.
Optionally, you can include a connection reuse template for SMPP multiplexing. Perform the following
steps to configure a Connection-reuse template:
page 293
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
7. Click Update. The virtual server appears in the Virtual Server table.
1. Configure Servers:
a. To configure a real server for each SMPP server and add the TCP port, use the following com-
mands:
Enter the slb server command at the global configuration level:
Enter the port command at the configuration level of the real server:
Enter the health-check command at the configuration level of the TCP port:
Even when the SMPP server is up, some SMPP servers may not always send the correct
response message to a TCP health check. To avoid setting the SMPP server’s state to
CLOSE_WAIT, enable the half-open option for the health check.
b. Repeat for each real SMPP server that processes SMPP messages.
2. Configure a Service Group:
a. To configure a service group for SMPP servers and add servers to the group, use these com-
mands:
Enter the slb service-group command at the global configuration level:
Enter the member command at the configuration level for the service group:
b. Repeat for each SMPP server.
page 294
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
lects the same server for subsequent requests (assuming the same server group is used),
unless overridden by other template options. The server-selection-per-request option only
works in conjunction with connection-reuse. In addition, this option requires that a username-
password pair is used the SMPP template, so that ACOS can immediately authenticate SMPP
clients for every instance of server selection.
3. Use the user command to create a username and password for client authentication:
1. Optionally, use the slb template connection-reuse command at the global configuration level of
the CLI to create a connection-reuse template for SMPP multiplexing. This command changes the
CLI to the configuration level of the template, where the following commands are available:
This timeout command specifies the maximum period a connection can remain idle before the
connection times out.
This limit-per-server command specifies the maximum number of reusable connections per
port.
This keep-alive-conn command specifies the number of new reusable connections to open
before beginning to reuse the existing connections.
1. Use the slb virtual-server command at the global configuration level of the CLI.
2. Enter the port command to create a TCP port for SMPP traffic:
3. Use the service-group command to bind the SMPP group to the virtual port.
4. Use the template smpp or template connection-reuse commands to bind templates to the vport.
To configure advanced load balancing of SMPP traffic with client authentication, perform these steps:
1. Configure a real server for each SMPP server that will handle SMPP messages and add TCP port to
each.
2. Create a service group for the SMPP servers; add the servers to the group. This is the SMPP ser-
vice group.
3. Configure an SMPP template with a username-password pair and enable server selection per
request.
page 295
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
4. Configure a connection-reuse template and enable the keepalive option for pre-opened connec-
tions.
Step 4 can be achieved from the CLI only.
5. Configure a virtual server that contains the SMPP-TCP port and bind the port to the SMPP service
group. Add the SMPP service group and the templates to the port.
Figure 39 shows an example deployment of advanced SMPP load balancing, using shared password
authentication for a collection of SMPP clients.
1. Configure the real SMPP servers that will process client requests:
ACOS(config)# slb server SMPP-Server 16.20.23.10
ACOS(config-real server)# port 4354 tcp
ACOS(config-real server-node port)# health-check ping
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
ACOS(config)# slb server SMPP-Server2 16.20.23.2
ACOS(config-real server)# port 4441 tcp
page 296
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
page 297
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
2. Create an SMPP service group and add the SMPP servers configured in step 1 to the group:
ACOS(config)# slb service-group SMPP-group tcp
ACOS(config-slb svc group)# member SMPP-Server 4354
ACOS(config-slb svc group-member:4354)# exit
ACOS(config-slb svc group)# member SMPP-Server2 4441
ACOS(config-slb svc group-member:4441)# exit
ACOS(config-slb svc group)# member SMPP-Server3 2331
ACOS(config-slb svc group-member:2331)# exit
ACOS(config-slb svc group)# exit
3. (Not shown) Create a SNAT IP address pool for the collection of SMPP servers. In this example, the
SNAT pool is named “SMPPpool” and contains servers within the IP address range 16.20.23.5-20.
4. Create an SMPP template and configure the template with a username-password pair and server-
selection-per-request. Optionally, enable client-enquire-link and server-enquire-link to
send keepalive messages to the SMPP clients and servers:
ACOS(config)# slb template smpp SMPP-Template
ACOS(config-smpp)# client-enquire-link
ACOS(config-smpp)# server-enquire-link 145
ACOS(config-smpp)# user net-admin password maplebar
ACOS(config-smpp)# server-selection-per-request
ACOS(config-smpp)# exit
5. Configure a connection-reuse template for SMPP service group and enable keep-alive-conn pre-
open.
ACOS(config)# slb template connection-reuse SMPP-connreuse
ACOS(config-conn reuse)# keep-alive-conn preopen 50
ACOS(config-conn reuse)# exit
6. Create an SMPP virtual server, add the SMPP-TCP port and apply the SMPP service group, SMPP
template, and connection-reuse templates to the virtual server:
ACOS(config)# slb virtual-server SMPP-virt 100.10.100.4
ACOS(config-slb vserver)# port 6874 SMPP-TCP
ACOS(config-slb vserver-vport)# source-nat pool SMPP-pool
ACOS(config-slb vserver-vport)# service-group SMPP-group
ACOS(config-slb vserver-vport)# template smpp SMPP-Template
ACOS(config-slb vserver-vport)# template connection-reuse SMPP-connreuse
ACOS(config-slb vserver-vport)# exit
ACOS(config-slb vserver)# exit
page 298
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
page 299
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
• The packet size too small – Number of SMPP messages that were not
parsed because the message size was less than 4 bytes.
• Invalid sequence number – SMPP messages are incremented by +1.
This counter indicates the total number of SMPP messages that were
not parsed because of an incorrect sequence number.
Message processing failed Number of times the ACOS could not process the SMPP message. The
following sub-counters describe the cause:
page 300
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
page 301
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure SMPP Load Balancing (General)
page 302
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Part V Part V
Application Offload and Optimization
• Importing a CRL
This chapter describes how to manage SSL certificates, private keys, and Certificate Revocation Lists
(CRLs) on the ACOS device. Installing these SSL resources on the ACOS device enables the ACOS
device to provide SSL services on behalf of real servers.
You can use the ACOS device to offload SSL processing from servers or, for some types of traffic, you
can use the ACOS device as an SSL proxy. (For more information about SSL offload and SSL proxy, see
“SSL Offload and SSL Proxy” on page 345.)
Commonly, clients and servers use Secure Sockets Layer (SSL) or Transport Layer Security (TLS) to
secure traffic. For example, a client that is using a shopping application on a server will encrypt data
before sending it to the server. The server will decrypt the client’s data, then send an encrypted reply to
the client. The client will decrypt the server reply, and so on.
page 305
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
Notes
• SSL is an older version of TLS. The ACOS device supports the following SSL and TLS versions:
• SSL v3.0
• TLS v1.0
• TLS v1.1
• TLS v1.2 (the default)
• ACOS supports RFC 3268, AES Ciphersuites for TLS. For simplicity, elsewhere this document and
other ACOS user documents use the term “SSL” to mean both SSL and TLS.
• ACOS supports secure renegotiation of client-server TLS connections, as described in RFC 5746,
Transport Layer Security (TLS) Renegotiation Indication Extension. Support for the renegotia-
tion_info TLS extension is included. Secure TLS renegotiation allows ACOS to securely renegoti-
ate TLS connections with clients, using existing secure connections. RFC 5746 support is
automatically enabled for client-server TLS sessions.
• ACOS supports Privacy Enhanced Mail (PEM) format for certificate files and CRLs. ACOS SSL
processing supports PEM format and RSA encryption.
Figure 40 shows a simplified example of an SSL handshake. In this example, the ACOS device is acting
as an SSL proxy for backend servers.
page 306
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
To begin, the client sends an HTTPS request. The request includes some encryption details such as the
cipher suites supported by the client.
The ACOS device, on behalf of the server, checks for a client-SSL template bound to the VIP. If a client-
SSL template is bound to the VIP, the ACOS device sends all the digital certificates contained in the
template to the client.
The client browser checks its certificate store (sometimes called the certificate list) for a copy of the
server certificate. If the client does not have a copy of the server certificate, the client will check for a
certificate from the Certificate Authority (CA) that signed the server certificate.
Certificate Chain
Ultimately, a certificate must be validated by a root CA. Certificates from root CAs are the most trusted.
They do not need to be signed by a higher (more trusted) CA.
page 307
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
If the CA that signed the certificate is a root CA, the client browser needs a copy of the root CA’s certifi-
cate. If the CA that signed the server certificate is not a root CA, the client browser should have another
certificate or a certificate chain that includes the CA that signed the CA’s certificate.
A certificate chain contains the “chain” of signed certificates that leads from the CA to the signature
authority that signed the certificate for the server. Typically, the certificate authority that signs the
server certificate also will provide the certificate chain. Figure 41 shows an example of a certificate
chain containing three certificates:
-----BEGIN CERTIFICATE-----
ZS9naWYwITAfMAcGBSsOAwIaBBRLa7kolgYMu9BSOJsprEsHiyEFGDAmFiRodHRw
Oi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvMS5naWYwDQYJKoZIhvcNAQEFBQAD
gYEAheIVEe8vArUOZxKkUIGjaYymzJAh8Ty0uUPrikLpQ0IGezByVdbDUJ+HQLGp
2eruTPZpBNADaEfymstIPIxrsuCRhyr3Ymsa2rgzwy9kSXeG83H7E7HxRnpxDNZ8
l+uzpU/rk4j3bO/JVxPZMnwzMWriPSYgL1EKYcOSKyReACOSQ=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
ZS9naWYwITAfMAcGBSsOAwIaBBRLa7kolgYMu9BSOJsprEsHiyEFGDAmFiRodHRw
Oi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvMS5naWYwDQYJKoZIhvcNAQEFBQAD
gYEAheIVEe8vArUOZxKkUIGjaYymzJAh8Ty0uUPrikLpQ0IGezByVdbDUJ+HQLGp
2eruTPZpBNADaEfymstIPIxrsuCRhyr3Ymsa2rgzwy9kSXeG83H7E7HxRnpxDNZ8
l+uzpU/rk4j3bO/JVxPZMnwzMWriPSYgL1EKYcOSKyReACOSQ=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
ZS9naWYwITAfMAcGBSsOAwIaBBRLa7kolgYMu9BSOJsprEsHiyEFGDAmFiRodHRw
Oi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvMS5naWYwDQYJKoZIhvcNAQEFBQAD
gYEAheIVEe8vArUOZxKkUIGjaYymzJAh8Ty0uUPrikLpQ0IGezByVdbDUJ+HQLGp
2eruTPZpBNADaEfymstIPIxrsuCRhyr3Ymsa2rgzwy9kSXeG83H7E7HxRnpxDNZ8
l+uzpU/rk4j3bO/JVxPZMnwzMWriPSYgL1EKYcOSKyReACOSQ=
-----END CERTIFICATE-----
The certificate chain file and the server certificate files are text files. Each certificate must begin with
the “-----BEGIN CERTIFICATE-----” line and end with the “-----END CERTIFICATE-----” line.
The certificate at the top of the certificate chain file is the root CA’s certificate. The next certificate is an
intermediary certificate signed by the root CA. The next certificate is signed by the intermediate signa-
ture authority that was signed the root CA.
A certificate chain in an SSL template must begin at the top with the root CA’s certificate, followed in
order by the intermediary certificates. If the certificate authority that signs the server certificate does
not provide the certificate chain in a single file, you can use a text editor to chain the certificates
together in a single file as shown in Figure 41.
page 308
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
If the client can not validate the server certificate or the certificate is out of date, the client’s browser
may display a certificate warning. Figure 42 shows an example of a certificate warning displayed by
Internet Explorer.
NOTE: It is normal for the ACOS device to display a certificate warning when an
admin accesses the ACOS management GUI. Certificates used for SLB
are not used by the management GUI.
Each certificate is digitally “signed” to validate its authenticity. Certificates can be CA-signed or self-
signed:
page 309
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
To ensure that clients receive the required chain of certificates, you also can send clients a certifi-
cate chain in addition to the server certificate. (See “Certificate Chain” on page 307.)
The example in Figure 40 on page 307 uses a CA-signed certificate.
• Self-signed – A self-signed certificate is a certificate that is created and signed by the ACOS
device. A CA is not used to create or sign the certificate.
CA-signed certificates are considered to be more secure than self-signed certificates. Likewise, clients
are more likely to be able to validate a CA-signed certificate than a self-signed certificate. If you config-
ure the ACOS device to present a self-signed certificate to clients, the client’s browser may display a
certificate warning. This can be alarming or confusing to end users. Users can select the option to trust
a self-signed certificate, in which case the warning will not re-appear.
SSL Templates
You can install more than one key-certificate pair on the ACOS device. The ACOS device selects the cer-
tificate(s) to send a client or server based on the SSL template bound to the VIP. You can bind the fol-
lowing types of SSL templates to VIPs:
• Client-SSL template – Contains keys and certificates for SSL-encrypted traffic between clients
and the ACOS device. A client-SSL template can also contain a certificate chain.
• Server-SSL template – Contains CA certificates for SSL-encrypted traffic between servers and
the ACOS device.
For the simple deployment example in Figure 40 on page 307, only the first option (Certificate) needs to
be configured. You may also need to configure the Certificate chain option.
• Certificate – Specifies the server certificate that the VIP will send to a client when configured for
SSL proxy, SSL offload, or SSLi operation. The client uses this certificate to validate the server’s
identity. The certificate can be generated on the ACOS device (self-signed) or can be signed by
another entity and imported onto the ACOS device.
page 310
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
Only one certificate can be associated with the client-SSL template. Use the show pki cert com-
mand to show the list of certificates and private keys stored on the ACOS device.
• Key – Specifies the name of a private key for a server certificate. If the CSR used to request the
server certificate is generated on the ACOS device, the private key is automatically generated by
the ACOS device, and then the private key is used to create the public key sent to the CA in the
CSR. Otherwise, the key must be imported.
Only one key can be associated with the client-SSL template. Use the show pki cert command to
show the list of certificates and private keys stored on the ACOS device.
• Certificate chain – Specifies a named set of server certificates beginning with a root CA certifi-
cate, and containing all the intermediary certificates in the authority chain that ends with the
authority that signed the server certificate. (See “Certificate Chain” on page 307.)
• CA-Certificate – Specifies a CA certificate that the ACOS device can use to authenticate the iden-
tity of a client the requesting to connect to the ACOS device. If CA certificates are required, they
must be imported onto the ACOS device. The ACOS device is not configured at the factory to con-
tain a certificate store.
Multiple CA-certificate can be associated with the client-SSL template. Use the show pki ca-cert
command to show the list of ca-certificates.
• Certificate Revocation List (CRL) – Specifies a list of client certificates that have been revoked by
the CAs that signed them. This option is applicable only if the ACOS device will be required to val-
idate the identities of clients.
NOTE: The CRL should be signed by the same issuer as the CA certificate. Oth-
erwise, the client and ACOS device will not be able to establish a connec-
tion.
• SSLv2 bypass – Redirects clients who request SSLv2 sessions to the specified service group.
• Client connection-request response – Specifies the ACOS response to connection requests from
clients. This option is applicable only if the ACOS device will be required to validate the identities
of clients. The response can be one of the following:
• ignore (default) – The ACOS device does not request the client to send its certificate.
• request – The ACOS device requests the client to send its certificate. With this action, the SSL
handshake proceeds even if either of the following occurs:
• The client sends a NULL certificate (one with zero length).
• The certificate is invalid, causing client verification to fail.
Use this option if you want to the request to trigger an aFleX policy for further processing.
• require – The ACOS device requires the client certificate. This action requests the client to send
its certificate. However, the SSL handshake does not proceed (it fails) if the client sends a NULL
certificate or the certificate is invalid.
page 311
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
• Session cache size – Specifies the maximum number of cached sessions for SSL session ID
reuse.
• Session cache timeout – Sets the maximum number of seconds a cache entry can remain
unused before being removed from the cache. Cache entries age according to the ticket age
time. The age time is not reset when a cache entry is used.
• Session ticket lifetime – Sets the lifetime for stateless SSL session ticketing. After a client’s SSL
ticket expires, they must complete an SSL handshake in order to set up the next secure session
with ACOS.
• Close-notify – Specifies whether the ACOS device sends a close_notify message when an SSL
transaction ends, before sending a FIN. This behavior is required by certain types of applications,
including PHP cgi.
• SSL False Start – Specifies whether SSL False Start is enabled. SSL False Start is an SSL modifi-
cation used by the Google Chrome browser for web optimization.
NOTE: The following ciphers are not supported with SSL False Start:
SSL3_RSA_DES_64_CBC_SHA
SSL3_RSA_RC4_40_MD5
TLS1_RSA_EXPORT1024_RC4_56_MD5
If no other ciphers but these are enabled in the client-SSL template, SSL
False Start handshakes will fail.
• Cipher – Name of a cipher template containing a set of ciphers to use with clients. By default, the
client-SSL template’s own set of ciphers is used. (See “Cipher Template Configuration and Usage
Guidelines” on page 314.)
• Forward proxy options – Options that are used for SSL Insight.
• Authentication username attribute – Specifies the field to check in SSL certificates from clients,
to find the client name.
• Cipher Template – Specifies the cipher suites supported by the ACOS device. When the client
sends its connection request, it also sends a list of the cipher suites it can support. The ACOS
device selects the strongest cipher suite supported by the client that is also enabled in the tem-
plate, and uses that cipher suite for traffic with the client. For a list of supported ciphers, refer to
the slb template cipher command in the Command Line Interface Reference.
page 312
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
• CA-Certificate – Specifies a CA certificate that the ACOS device can use to authenticate the iden-
tity of a server the ACOS device is connecting to. If CA certificates are required, they must be
imported onto the ACOS device. The ACOS device is not configured at the factory to contain a
certificate store.
Multiple CA-certificate can be associated with the client-SSL template. Use the show pki ca-cert
command to show the list of ca-certificates. If you need to use multiple CA certificates in a server-
SSL template, see “Multiple CA Certificate Support in Server-SSL Templates” on page 329.)
• Certificate – Specifies a client certificate that the ACOS device will send to a server when
requested for client authentication. In SSL proxy and SSL Insight, when a server requests a cli-
ent’s digital certificate, the ACOS device responds on behalf of the client. Following successful
authentication, the server and ACOS device communicates over an SSL-encrypted session.
In SSL Proxy, the client and ACOS device communicate over a non-encrypted session. From the
server’s perspective, the server has an encrypted session with the client.
In SSL Insight, the client and ACOS device communicate over an encrypted session. From the cli-
ent’s and the server’s perspective, the SSL session is fully encrypted.
• Key – Specifies a private key for the client certificate.
• SSL version – Highest (most secure) version of SSL/TLS to use. The ACOS device supports the
following SSL/TLS versions:
• SSL v3.0
• TLS v1.0 (the default)
• TLS v1.1
• TLS v1.2
• Close notification – Specifies whether the ACOS device sends a close_notify message when an
SSL transaction ends, before sending a FIN. This behavior is required by certain types of applica-
tions, including PHP cgi.
NOTE: The close notification option may not work if connection reuse is also
configured on the same virtual port. In this case, when the server sends a
FIN to the ACOS device, the ACOS device will not send a FIN followed by
a close notification. Instead, the ACOS device will send a RST.
• Cipher template – Name of a cipher template containing a set of ciphers to use with servers. By
default, the server-SSL template’s own set of ciphers is used. (See “Cipher Template Configura-
tion and Usage Guidelines” on page 314.)
• Forward proxy – Enables support for capabilities required for SSL Intercept.
• Session cache size – Specifies the maximum number of cached sessions for SSL session ID
reuse.
page 313
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
• Session cache timeout – Sets the maximum number of seconds a cache entry can remain
unused before being removed from the cache. Cache entries age according to the ticket age
time. The age time is not reset when a cache entry is used.
• Session ticket lifetime – Sets the lifetime for stateless SSL session ticketing. After an SSL ticket
expires, the SSL handshake must be performed again in order to set up the next secure session
with ACOS.
• Cipher list – Specifies the cipher suites supported by the ACOS device. When the server sends its
connection request, it also sends a list of the cipher suites it can support. The ACOS device
selects the strongest cipher suite supported by the server that is also enabled in the template
and uses that cipher suite for traffic with the server. The same cipher suites supported in client-
SSL templates are supported in server-SSL templates, for CA certificates. Support for all of them
is enabled by default.
Optionally, you can assign a priority value to each cipher in the template. In this case, the ACOS device
tries to use the ciphers based on priority. If the client supports the cipher that has the highest priority,
that cipher is used. If the client does not support the highest-priority cipher, the ACOS device attempts
to use the cipher that has the second-highest priority, and so on.
Cipher priority can be 1-100. The highest priority (most favored) is 100. By default, each cipher has pri-
ority 1. More than one cipher can have the same priority. In this case, the strongest (most secure)
cipher is used.
Notes
• An SSL cipher template takes effect only when applied to a client-SSL template or server-SSL
template.
• When you apply (bind) a cipher template to a client-SSL or server-SSL template, the settings in
the cipher template override any cipher settings in that client-SSL or server-SSL template.
• Priority values are supported only for client-SSL templates. If a cipher template is used by a
server-SSL template, the priority values in the cipher template are ignored.
page 314
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
NOTE: One use for this feature is as part of an SSL Insight deployment.
To support the SNI extension, the ACOS device allows you to add multiple certificates to a single client-
SSL template, and map individual certificates to their domain names.
In the current release, you can configure up to 1024 certificate-to-domain mappings in a client-SSL
template.
The client-SSL template must contain one certificate and private key pair that is not mapped to a
domain. The unmapped certificate and key are the default certificate and key for the template. The
ACOS device uses the default template for negotiating the SSL session with the client.
If the client includes the SNI extension in its hello message, the ACOS device uses the certificate that is
mapped to the domain requested by the client. Otherwise, the ACOS device uses the default certificate.
Partition Support
This feature is supported in both the shared partition and L3V private partitions.
Before creating the certificate-domain mappings, import the server certificates onto the ACOS device.
The configuration page for client-SSL templates has a Server Name Indication section. In this section,
to create a certificate-domain mapping:
To map a certificate to a domain, use the server-name command at the configuration level for the cli-
ent-SSL template:
page 315
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SSL Certificate Management
The client-SSL template bound to the virtual port can contain multiple certificates. When you add a cer-
tificate and key to a client-SSL template, you can specify the domain name (“server name”) that the cer-
tificate and key belong to. When a client sends an SSL session setup request to the VIP, ACOS sends
the server certificate for the requested domain name, based on the configuration in the client-SSL tem-
plate.
In addition to certificates and keys for individual domain names, a client-SSL template also can contain
one “default” certificate and key. If the template does not have a certificate for the domain name
requested by the client, ACOS sends the default certificate instead.
Notes
• ACOS 2.7.2 adds SNI support to vThunder models. Previous releases support the feature on
hardware models but not on vThunder models.
• The ACOS configuration does not contain any SLB server certificates by default. The “default”
certificate and key in a client-SSL template must be imported or generated in ACOS, then added
to the template. If you add them to the template without associating them with a domain name,
then they become the default certificate and key for the template.
• SSL Intercept, a feature on certain hardware models that uses SNI support, is not supported on
vThunder devices. This enhancement does not provide SSL Intercept support on vThunder mod-
els.
CLI Example
The commands in this section configure an SSL VIP that serves the following domains:
• www.example.com
• www.example2.com
• mail.example.com
This configuration allows the ACOS device to set up secure SSL sessions with a client who sends
requests to 192.168.2.69:443. ACOS selects a server certificate to send to the client based on the
domain name requested by the client.
This example assumes that the certificates and keys have already been imported into or generated in
ACOS.
The slb template client-ssl cssl command configures the client-SSL template and places the CLI in
template configuration mode where the following commands are available:
page 316
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Importing a Certificate and Key
• The cert and key commands add the default certificate and key.
• The server-name commands add the certificates and keys for specific domain names.
The “cert2” and “cert3” certificates are used for SSL session setup requests to domains
www.example2.com and mail.example.com, respectively.
The “def_cert” certificate is used for requests to any other domain name, such as www.exam-
ple.com.
These commands bind the client-SSL template to the SSL virtual port:
NOTE: To import a zip archive of multiple files, see “Bulk Import/Export of SSL
Certificate and Key Files” on page 319.
Although both terms, CA certificate and SSL certificate, refer to a certificates used in the SSL protocol,
ACOS reserves the term SSL certificate for self-signed certificates that are used to create proxied certif-
icates for SSL handshaking with clients in the SSLi, SSL Proxy or SSL offload applications. SSL certifi-
cates require a private key to be proxied
CA certificates are issued by publicly recognized certificate authorities. These certificates are used for
other purposes.
page 317
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Importing a Certificate and Key
page 318
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
The steps for importing or exporting SSL files are the same for individual files and for bulk archives.
(For information, see “Importing Individual Files” on page 317, the GUI online help.)
To import a .tgz archive of SSL certificate files, key files, or CRL files, use the following commands:
• import cert-key bulk – The archive contains both certificate and key files.
This process also creates a public key - private key pair. The public key is sent in the CSR. The private
key is used to encrypt the CSR and also to create the SSL proxied certificate used in the ACOS SSLi,
SSL-Offload, and SSL-Proxy applications.
page 319
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
• In the above example, the CSR is generated without the root CA extensions. The syntax for the
command that creates a CSR with root CA extensions follows:
ACOS(config)# pki create cert Cert-CSR-both certtype rsa rootca
• If you need to create a wildcard certificate, use an asterisk as the first part of the common
name. For example, to create a wildcard certificate for domain example.com and it sub-
domains, enter the following common name: *.example.com
2. Use show pki csr Cert-CSR-both detail to show the cert created.
3. Use show pki certificate Cert-CSR-both detail to show the CSR created.
page 320
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
Data:
Version: 3 (0x2)
Serial Number: 13866059162969540330 (0xc06e2357db5986ea)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=AF, CN=Cert-CSR-both
Validity
Not Before: Jan 31 05:20:36 2017 GMT
Not After : Jan 31 05:20:36 2019 GMT
Subject: C=AF, CN=Cert-CSR-both
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:96:fc:1d:cc:63:ea:c1:a9:c7:1d:dd:c5:9c:72:
08:61:27:b7:67:1a:27:c7:f7:39:ca:9c:81:ac:f0:
f8:05:89:1a:66:25:cf:0b:1e:55:cc:cf:8b:89:91:
58:c5:e9:8c:b8:44:f1:d5:42:94:b1:e9:5a:a6:10:
05:28:0d:a2:84:a6:73:a8:64:66:e4:72:cc:c8:1b:
39:c9:4a:9c:a6:b3:67:e1:4a:d8:9d:a3:fa:bd:7c:
0e:ad:c1:35:6c:6f:54:68:0a:5f:54:67:61:fd:6a:
e2:55:2f:85:11:76:f3:96:c0:5c:55:11:63:a6:21:
41:65:6f:da:67:d5:e8:7e:ff
Exponent: 65537 (0x10001)
Signature Algorithm: sha1WithRSAEncryption
7d:ac:29:e8:a9:b5:2f:69:43:d2:a1:8b:7c:6d:8e:b5:21:f8:
30:cc:7a:4f:61:71:23:87:51:2c:da:ce:89:14:29:55:f3:81:
97:c0:2f:a7:e3:8a:4b:7d:d2:f7:cb:00:14:ce:91:db:1f:3a:
db:a0:a0:a9:90:b8:a1:b0:7a:16:e3:54:23:94:e2:48:fb:92:
36:0c:6d:c4:be:fd:79:77:41:6c:3a:19:3f:72:29:c6:95:f1:
c5:41:d8:a8:ed:18:2e:ca:66:1a:af:39:16:79:10:03:d6:f0:
95:10:93:1f:13:c8:96:70:c5:3f:97:8b:96:e1:d5:78:8d:b7:
c7:0c
SHA1 Fingerprint=D5:9A:B6:96:66:5D:B9:77:FE:1F:28:B4:BC:A9:3A:43:5D:2D:C7:98
-----BEGIN CERTIFICATE-----
MIIBxjCCAS+gAwIBAgIJAMBuI1fbWYbqMA0GCSqGSIb3DQEBBQUAMCUxCzAJBgNV
BAYTAkFGMRYwFAYDVQQDEw1DZXJ0LUNTUi1ib3RoMB4XDTE3MDEzMTA1MjAzNloX
DTE5MDEzMTA1MjAzNlowJTELMAkGA1UEBhMCQUYxFjAUBgNVBAMTDUNlcnQtQ1NS
LWJvdGgwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJb8Hcxj6sGpxx3dxZxy
CGEnt2caJ8f3Ocqcgazw+AWJGmYlzwseVczPi4mRWMXpjLhE8dVClLHpWqYQBSgN
ooSmc6hkZuRyzMgbOclKnKazZ+FK2J2j+r18Dq3BNWxvVGgKX1RnYf1q4lUvhRF2
85bAXFURY6YhQWVv2mfV6H7/AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAfawp6Km1
L2lD0qGLfG2OtSH4MMx6T2FxI4dRLNrOiRQpVfOBl8Avp+OKS33S98sAFM6R2x86
26CgqZC4obB6FuNUI5TiSPuSNgxtxL79eXdBbDoZP3IpxpXxxUHYqO0YLspmGq85
FnkQA9bwlRCTHxPIlnDFP5eLluHVeI23xww=
page 321
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
-----END CERTIFICATE-----
page 322
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
Generating a CSR
The following procedures generates a CSR that you can send to a server, so that the server can send
the CSR to a CA to request a new CA-signed certificate or renew an existing one.
This process also creates a public key - private key pair. The public key is sent in the CSR. The private
key used to encrypt the CSR.
page 323
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
To create wildcard certificates, use an asterisk as the first part of the common name. For exam-
ple, to create a wildcard certificate for domain example.com and it sub-domains, enter the fol-
lowing common name: *.example.com
2. Use show pki certificate csr1 detail to show the CSR created.
See RFC 6125 for help in filling out some of the following fields.
page 324
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
To generate a self-signed certificate, use the following command at the global configuration level of the
CLI:
The pki create certificate command generates and initializes a self-signed certificate and key.
When creating a self-signed certificate it must be pushed out to inside clients (clients on the internal
network). If the certificate is not pushed, the internal hosts get an SSL “untrusted root” error whenever
they try to connect.
The key length, common name, and number of days the certificate is valid are required. The other infor-
mation is optional. The default key length is 1024 bits. The default number of days the certificate is
valid is 730.
NOTE: If you need to create a wildcard certificate, use an asterisk as the first
part of the common name. For example, to create a wildcard certificate
for domain example.com and it sub-domains, enter the following com-
mon name: *.example.com
You can install a CA-signed certificate or a self-signed certificate (described in “CA-Signed and Self-
Signed Certificates” on page 309).
This section gives an overview of the process for each type of certificate. Detailed procedures are pro-
vided later in this chapter.
page 325
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
Figure 43 shows the most common way to obtain and install a CA-signed certificate onto the ACOS
device. You also may need to install a certificate chain file.
page 326
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
page 327
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
Use one of the following commands at the global configuration level of the CLI:
• slb template client-ssl – creates template for SSL traffic between ACOS device (VIP) and cli-
ents.
ACOS(config)# slb template client-ssl TMPLT-C
ACOS(config-client ssl)# exit
• slb template server-ssl – creates template for SSL traffic between ACOS device and servers.
ACOS(config)# slb template server-ssl TMPLT-S
ACOS(config-server ssl)# exit
The command creates the template and changes the CLI to the configuration level for it. Use the com-
mands at the template configuration level to configure template parameters. (For information, see “SSL
Templates” on page 310 or the CLI Reference.)
page 328
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
Use one of the following commands at the configuration level for the virtual port on the VIP:
Use the same command on each port for which SSL will be used.
You can add the CA certificates to the server-SSL template in either of the following ways:
Adding multiple certificates in a single file can simplify configuration. For example, you can export the
CA certificates from a web browser into a single file, then import that file onto the ACOS device and add
it to a server-SSL template.
Previous releases allow a server-SSL template to have only a single CA-signed certificate.
You can create the multiple certificate file by exporting the certificates from a browser or you can
assemble the file by hand.
page 329
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
1. Copy and paste each certificate to a text file. Make sure to include the "-----BEGIN CERTIFICATE-----
" and "-----END CERTIFICATE----- " lines for each certificate. For example:
-----BEGIN CERTIFICATE-----
MIIE0zCCA7ugAwIBAgIQGNr
RniZ96LtKIVjNzGs7SjANBg
kqhkiG9w0BAQUFADCB
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
U2lnbiwgSW5jLiAtIEZvciBhd
XRob3JpemVkIHVzZSBvbmx
5MUUwQwYDVQQDEzxW
-----END CERTIFICATE-----
page 330
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generating CAs and CSRs
If a server-SSL template is be bound to the virtual port instead, all the real servers load balanced by the
VIP must use the same SSL settings.
Template Priority
You can bind a server-SSL template to a real port and also to a virtual port that uses that real port. In
this case, the server-SSL template bound to the real port is used for traffic sent to that real port. If you
remove the server-SSL template from the real port, the template bound to the virtual port is used
instead.
On the configuration page for the real server, in the Port section, select the template from the Server-
SSL Template drop-down list.
To bind a server-SSL template to a real port, use the template server-ssl command at the configura-
tion level for the real port:
CLI Example
page 331
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Email Notification for SSL Certificate Expiration
The following commands create a server-SSL template and add the certificate and key to the template:
The following commands bind the server-SSL template directly to a port on a real server:
By default, this feature is not configured. To configure email notification for certificate expiration, use
either of the following methods.
To configure email notification for certificate expiration, use the slb ssl-expire-check command.
The following example enables certificate notifications to be sent to email address “admin1@exam-
ple.com”. Expiration notifications are sent beginning 4 days before expiration and continue for 3 days
after expiration.
page 332
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
SSL Certificate Notification via System Log Warnings
NOTE: For information on enabling SNMP traps for SSL certificate events, refer
to the System Configuration and Administration Guide.
If a certificate or CRL you plan to import onto the ACOS device is not in PEM format, it must be con-
verted to PEM format.
NOTE: You do not need to convert the certificate into PEM format before
importing it. You can specify the format when you import the certificate.
The ACOS device automatically converts the imported certificate into
PEM format. (See “Importing a Certificate and Key” on page 317.)
If you prefer to convert a certificate before importing it, see the following sections.
This procedure requires a Windows PC and a Unix/Linux workstation. Perform step 1 through step 4 on
the Windows PC. Perform step 5 through step 8 on the Unix/Linux workstation.
page 333
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Converting Certificates and CRLs to PEM Format
d. Click Add.
A dialog appears with the following choices: My user account, Service account, and Computer
account.
e. Select Computer Account and click Next. The Select Computer dialog appears.
f. Select Local Computer and click Finish.
g. Click Close.
h. Click OK. The Certificates snap-in appears in the Console Root list.
3. Expand the Certificate folders and navigate to the certificate you want to convert.
4. Select Action > All Tasks > Export.
The Export wizard guides you with instructions. Make sure to export the private key too. The wiz-
ard will ask you to enter a passphrase to use to encrypt the key.
5. Copy the PFX-format file that was created by the Export wizard to a UNIX machine.
6. Use OpenSSL to convert the PFX file into a PKCS12 format:
$ openssl pkcs12 -in filename.pfx -out pfxoutput.txt
This command creates a PKCS12 output file, which contains a concatenation of the private key
and the certificate.
7. Use the vi editor to divide the PKCS12 file into two files, one for the certificate (.crt) and the other
for the private key.
8. To remove the passphrase from the key, use the following command:
$ openssl rsa -in encrypted.key -out unencrypted.key
To convert Distinguished Encoding Rules (DER) format to PEM format, use the following command on
a Unix/Linux machine where the file is located:
openssl crl -in filename.der –inform der -outform pem -out filename.pem
page 334
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Importing a CRL
Importing a CRL
To import a CRL, place it on the PC that is running the GUI or CLI session, or onto a PC or file server that
can be locally reached over the network.
To import a CRL, use the import crl command at the Privileged EXEC or global Config level of the CLI:
Refer to the Command Line Interface Reference for detailed information about this command.
Using the CLI, you can delete specific SSL files by name.
Use the pki delete command at the global configuration level of the CLI to delete SSL files.
page 335
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Exporting Certificates, Keys, and CRLs
NOTE: If the browser security settings normally block downloads, you may need
to override the setting. For example, in Internet Explorer, hold the Ctrl key
while clicking Export.
c. Click Save.
d. Navigate to the save location.
e. Click Save again.
3. To export a key:
a. Select the key.
b. Click Export.
c. Click Save.
d. Navigate to the save location.
e. Click Save again.
To export a certificate and its key, use the following commands at the Privileged EXEC or global Config
level of the CLI:
page 336
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Example of Importing a CA Cert and Private Key for SSLi
• export cert
• export cert-key
Refer to the Command Line Interface Reference for detailed information about these commands.
Exporting a CRL
To export a CRL, use the export crl command at the Privileged EXEC or global Config level of the CLI:
NOTE: If the browser security settings normally block downloads, you may need
to override the setting. For example, in IE, hold the Ctrl key while clicking
Export.
4. Click Save.
5. Navigate to the save location.
6. Click Save again.
page 337
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Forward Proxy Alternate Signing Cert and Key
The following commands configure the client-SSL template to enable SSLi (forward-proxy). It also
specifies the certificate and private key that the inside ACOS device uses to dynamically create (and
cache) forged server certificates as clients request SSL sessions with external servers.
When a client requests connection to an external SSL server, the inside ACOS device determines
whether the certificate of SSL site is signed by a trusted CA. If it is not in the trusted list, the inside
ACOS device signs the certificate with the alternate signing key. Because the alternate signing key is
not trusted, the client will be warned that the site is insecure.
3. Bind the list of trusted CAs and the alternate signing key to the Client SSL template (which in turn
is bound to the SSLi virtual port of the inside ACOS device.)
ACOS-Inside(config)# slb template client-ssl SSLInsight_ClientSide
ACOS-Inside(config-client ssl)# forward-proxy-ca-cert enterpiseABC-selfsignd
ACOS-Inside(config-client ssl)# forward-proxy-ca-key enterpiseABC-key
ACOS-Inside(config-client ssl)# forward-proxy-enable
ACOS-Inside(config-client ssl)# forward-proxy-trusted-ca-list enterpiseABC-trusted-CAs
ACOS-Inside(config-client ssl)# forward-proxy-alt-sign cert alt-cert key alt-key
page 338
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Simple Control Enrollment Protocol (SCEP)
NOTE: This feature is not supported for HSM platforms, including Thunder
5630.
To configure a SCEP certificate, you need to specify the certificate name, a password, and the location
(URL) of the ES. ACOS handles the rest. Then, to use the certificate, add it to an SSL template and bind
the template to the virtual port in your application. There is no GUI support for configuring this feature.
1. Generate a private key. In this step, an RSA key with the specified key length is generated for the
certificate.
2. Fetch CA certificates. ACOS queries the ES for its certificates. In this step, three certificates are
returned: 1 CA certificate and 2 ES certificates, and ES-encryption certificate and an ES-signature
certificate.
3. Generate Certificate Signing Request (CSR). The CSR includes the SCEP password you assign to
the SCEP certificate, and other parameters needed for the certificate.
4. Fetch the certificate. The CSR is encrypted using the public key of the ES-encryption certificate,
and forwarded to the ES.
The ES validates the CSR and forwards the request to the CA. The CA then returns the signed cer-
tificate. The certificate is signed using the ES-signature certificate.
5. Store the certificate. After successful verification of the response from the CA, ACOS accepts the
certificate and stores it in the following locations:
/a10data/cert/
/a10data/key/
SCEP certificates are stored in DER format. SCEP keys are stored in PEM format.
6. Schedule renewal. ACOS handles automatic renewal of the certificate when its about to expire.
ACOS checks the expiration dates of both the enrolled certificate and the issuing CA’s certificate.
ACOS then schedules renewal of the certificate, to occur at a specific time or periodically, depend-
ing on configuration. ACOS bases the new expiration date on the later of the expiration dates of the
enrolled certificate and the CA certificate.
page 339
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Simple Control Enrollment Protocol (SCEP)
7. Rotate and store files. After certificate renewal, the old certificate and key files are still stored for
any future reference. Old files are rotated and the new file replace the existing files. For example, a
certificate named “acos-cert” initially is stored in the following location: /a10data/cert/acos-cert.
After the certificate is renewed, it is moved to the following location: /a10data/cert/acos-cert#1.
The newly renewed certificate is moved to /a10data/cert/acos-cert. This step ensures that there is
no need to change the configuration for applications that use the SCEP certificates, because a
valid certificate with the correct name is always stored in the same location. The same applies for
private keys as well. ACOS stores up to 4 old certificate and key files for each SCEP certificate.
1. Use the pki scep-cert command to create the certificate and change the CLI to edit it.
2. Use the url command to specify the location of the ES. The user is the admin name required by the
ES to accept the request.
Use this command to specify the location of the ES. The user is the admin name required by the ES
to accept the request. The host is the ES IP address or hostname. The file is the path and filename
for the SCEP process on the ES. Example:
url http://192.168.230.101/certsrv/mscep/mscep.dll
3. Specify the password for the certificate. ACOS includes this password in enrollment and renewal
requests for the certificate.
4. (Optional) Configure additional parameters.
SCEP certificates have the following default settings:
• Interval – 5 seconds
• Log level – 1
• Maximum poll time – 180 seconds
• Method – GET
The other parameters are not set by default.
5. Use the enroll command to begin the enrollment process for the certificate.
page 340
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Simple Control Enrollment Protocol (SCEP)
Configuration Example
The following commands configure an ACOS device as the inside device in an SSLi deployment. The
wildcard VIP on this device receives SSL-encrypted traffic from inside users, and decrypts the traffic
before sending it to the traffic inspector.
The deployment uses a certificate administered by an SCEP ES. Based on the configuration, ACOS
automatically renews the certificate on a monthly basis.
NOTE: For brevity, this example shows only the inside device, where the SCEP
configuration occurs, and uses only one certificate. The certificate is
used both as the root certificate and as a forward-proxy certificate,
which uses SNI support.
On the outside device, the only required command related to SSLi is forward-proxy-enable, to enable
support for the SSLi feature on the device.
The following command enrolls the certificate. You need to enroll each certificate only once. After a
certificate is enrolled, ACOS uses SCEP to administer the certificate. This includes renewing the certifi-
cate before it expires. You do not need to manually administer the certificates after you enroll them.
The following shows the configuration the wildcard VIP. This includes configuration of the other
resources, in addition to the client-SSL template, that are required by the wildcard VIP: an ACL that
matches on the inside clients, the real server configuration, and the service group.
page 341
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Simple Control Enrollment Protocol (SCEP)
!
slb server rs1 10.3.3.1
health-check-disable
port 443 tcp
health-check-disable
!
slb service-group sg1-tcp tcp
member rs1:443
!
slb virtual-server vs1-v4 0.0.0.0 acl 101
extended-stats
port 8080 http
service-group sg1-tcp
template client-ssl ssl_int
no-dest-nat port-translation
!
page 342
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Simple Control Enrollment Protocol (SCEP)
page 343
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Simple Control Enrollment Protocol (SCEP)
page 344
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes how to configure optimization of Secure Sockets Layer (SSL) and covers these
topics.
• SSL Ciphers
In SSL offload, HTTPS load balancing (Layer 7 SLB) can be combined with optional HTTP packet inspec-
tion and header manipulation.
SSL offload configures the HTTPS virtual port type to enable the SSL handshake and optionally config-
ures the HTTP template to enable packet inspection and header manipulation.
page 345
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Instructions for the Client SSL Template
SSL Proxy
In SSL proxy, the ACOS device acts as a Layer 4 SSL proxy for TCP services such as POPS, SMTPS,
IMAPS, and LDAPS. It combines TCP load balancing (Layer 4 SLB) with these proxy services.
Both types of SSL optimization perform SSL handshakes, as well as encryption / decryption. SSL certif-
icates and keys are required. You can import the certificates and keys or create them on the ACOS
device. Additionally, ACOS also provides support for ECDHE/DHE ciphers, including ECDHE-RSA
ciphers, DHE-RSA ciphers, ECDHE-ECDSA ciphers, and GCM & SHA384. This feature also allows for the
configuration of EC and DH parameters, EC Curve selection, the importing/verification of EC Keys for
ECDSA ciphers, and support for TLS1.0/TLS1.1.
2. Configure a client SSL template and bind the SSL certificate and private key to it.
ACOS uses SSL certificates with a private key to create proxied signed certificates for handshaking
with SSL clients. SSL clients are configured to use a private CA that verifies the proxied certificate’s
validity.
ACOS(config)# slb template client-ssl sslcert-tmplt
ACOS(config-client ssl)# cert sslcert.crt
ACOS(config-client ssl)# key sslcertkey.pem
page 346
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Instructions for SSL Offload
page 347
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Instructions for SSL Offload
4. Configure a virtual server and add a virtual port that has the service type https. Bind the service-
group to the virtual port and to the HTTP template (if configured) and client-SSL template.
The SSL offload feature is enabled by the https option of the port command.
ACOS(config)# slb virtual-server v1 10.6.6.6
ACOS(config-slb vserver)# port 443 https
ACOS(config-slb vserver-vport)# service-group HTTPS_servers
ACOS(config-slb vserver-vport)# template client-ssl sslcert-tmplt
5. In this example, traffic between the servers and ACOS is not encrypted.
If traffic between the servers and ACOS also is encrypted, you also need to configure a server-SSL
template and bind it to the virtual port. In configurations that use both client-SSL and server-SSL,
use the HTTPS/SSL port number in the real server configuration.
If only client-SSL is used, use the HTTP port number in the real server configuration. Use the
HTTPS/SSL port number in the virtual server configuration.
If you configure server-SSL without client-SSL, the service type of the virtual port must be HTTP,
not HTTPS.
6. For configuring HTTP packet and inspection, see the “HTTP Options for SLB” chapter of the Appli-
cation Delivery and Server Load Balancing Guide.
page 348
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Instructions for SSL Offload
page 349
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Instructions for SSL Proxy
1. Configure the client SSL template using the procedure described in “Configuration Instructions for
the Client SSL Template” on page 346.
2. Configure the real servers for the TCP service:
The following commands configure proxy SSL for POPS. The same commands can be used to
configure SSL proxy for other TCP services. In each case, the feature is enabled by the ssl-proxy
option of the port command at the virtual server configuration level of the CLI.
ACOS(config)# slb server POP1 10.5.5.2
ACOS(config-real server)# port 110 tcp
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
ACOS(config)# slb server POP2 10.5.5.3
ACOS(config-real server)# port 110 tcp
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
page 350
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Instructions for SSL Proxy
3. The following commands configure a service group for the POP servers:
ACOS(config)# slb service-group POP_servers tcp
ACOS(config-slb svc group)# member POP1 110
ACOS(config-slb svc group-member:110)# exit
ACOS(config-slb svc group)# member POP2 110
ACOS(config-slb svc group-member:110)# exit
ACOS(config-slb svc group)# exit
4. These commands configure a virtual server (VIP) which proxies for the service POP server (port
110):
5. The following commands configure the VIP to which clients will send POPS traffic (that is, port
110):
ACOS(config)# slb virtual-server v1 10.6.6.6
ACOS(config-slb vserver)# port 110 ssl-proxy
ACOS(config-slb vserver-vport)# service-group POP_servers
ACOS(config-slb vserver-vport)# template client-ssl sslcert-tmplt
1. Configure the client SSL template using the procedure described in “Configuration Instructions for
the Client SSL Template” on page 346.
2. Configure the real servers for the TCP service:
a. Select ADC >> SLB.
b. On the menu bar, select the Servers tab.
c. Click Create.
d. In the Name field, enter a name for the real server.
e. Select the address Type radio button: IPv4, IPv6, or FQDN.
f. Enter the IP Address or FQDN hostname.
g. In the Port section, click the Create button.
h. In the Port Number field, enter the port number.
i. Click the Protocol drop-down list, and select TCP, if not already selected.
j. If your configuration will use a health check, select the Default radio button to use the default
health check, or select the Monitor radio button and select the desired health monitor from the
menu.
k. Click Create. The port appears in the Port list.
page 351
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Instructions for SSL Proxy
page 352
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
SSL Ciphers
SSL Ciphers
When configuring the client or server SSL template, users will also have the option to configure ECDHE/
DHE ciphers for enhanced encryption and SSL processing. In releases prior to 4.1.0, ECDHE/DHE
ciphers are only supported in hardware platforms having a second generation SSL card or third genera-
tion SSL card. Beginning in 4.1.0, software-based SSL processing also supports ECDHE/DHE ciphers
for all vThunder platforms.
Additionally, ACOS features enhanced selection of cipher support based on priorities assigned to
ECDHE and DHE cipher templates configured on the ACOS device:
• When processing an SSL handshake, if the user has configured a template for both ECDHE and
DHE with the same priority levels, the priority is given to ECDHE over DHE to optimize CPU usage
on the ACOS device. DHE ciphers will be considered as the lowest priority if there are other sup-
ported ciphers in the client-hello message. But if the user configured the highest priority for a
DHE cipher, the ACOS device will honor that.
• If the customer has a cipher template where no priority is specified, the ACOS device will give
ECDHE a higher priority by default. However, it is strongly recommended the customer does not
leave the priority unspecified.
• PFS ciphers on FIPS platform will not be supported. Currently PFS ciphers for server-side SSL are
only supported in software.
ECDHE/DHE ciphers can be supported in TLS1.0/TLS1.1. GCM related ciphers are only supported in
TLS1.2 For a list of supported ciphers, refer to theA10 SSL Cipher Suites List file located on the A10
Networks Support Portal: https://www.a10networks.com/support/axseries/appnotes
1. To use GCM related ciphers in Server SSL templates, you will need to specify TLS version 1.2:
ACOS(config)# slb template server-ssl SERVER-1
ACOS(config-server ssl)# version ?
<30-33> TLS/SSL version: 30-SSLv3.0, 31-TLSv1.0, 32-TLSv1.1 and 33-TLSv1.2
page 353
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
SSL Ciphers
2. You can now specify the Elliptic Curve Name in Client SSL templates:
ACOS(config)# slb template client-ssl CLIENT-1
ACOS(config-client ssl)# ec-name ?
secp256r1 X9_62_prime256v1
secp384r1 secp384r1
If no EC name is specified, ACOS will pick the first one that can be supported in ACOS from the cli-
ent EC list. If an EC name(s) is specified, ACOS will pick the first one that can be supported by the
client.
3. You can now specify DH parameters in Client SSL templates:
ACOS(config-client ssl)# dh-param ?
1024
1024-dsa
2048
512
The command shown above allows you to specify the DH key length. By default, the length is
1024. ACOS does not have configurable DH parameters in Server SSL templates as the client will
use the real server’s DH parameters.
4. You can now specify the EC name in Server SSL templates. The command is the same as when
you specify the EC name in Client SSL templates:
ACOS(config-server ssl)# ec-name ?
secp256r1 X9_62_prime256v1
secp384r1 secp384r1
By default, if no EC name is specified, ACOS will send all supported EC names to the server. If an
EC name(s) is selected, ACOS will send the specified EC name(s) to the server.
For PX Card
page 354
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Related Information
Below is an example for ACOS devices with a second generation or third generation SSL card:
For a server-SSL template, do not include the cipher if end-to-end SSL offload is deployed. For devices
with a second generation SSL card, third generation SSL card, or PX card, the default template can be
used.
Related Information
For detailed information on the load-balancing servers that enable SSLi and other applications, see the
Application Delivery and Server Load Balancing Guide.
For more information about certificate options, see “SSL Certificate Management and Options” on
page 305.
For information on configuring HTTP template options, see the “HTTP Options for SLB” chapter of the
Application Delivery and Server Load Balancing Guide.)
ACOS supports STARTTLS acceleration and encryption. See the “STARTTLS for Secure SMTP” chapter
of the Application Delivery and Server Load Balancing Guide.
ACOS SSL Insight (SSLi) provides SSL security services through its transparent forward proxy traffic
inspection application. See the SSL Insight Configuration Guide for detailed information.
page 355
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Related Information
page 356
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS provides a virtual port type, FTP-proxy. You can use an FTP-proxy virtual port to load balance
secure SSL/TLS traffic or clear-text FTP traffic for clients.
While previous releases supported SSL offload for HTTPS traffic, this release supports similar function-
ality for encrypted FTPS traffic. Explicit FTPS traffic is an extension to the FTP protocol which allows
the FTP client to request that the session be encrypted with SSL/TLS.
Since the connection between client and ACOS device is secure, the ACOS device provides SSL proxy
services for the FTP traffic during negotiation of the secured session and acts as a proxy for backend
FTP servers.
By encrypting / decrypting traffic to and from the FTP servers, the ACOS device handles this CPU-inten-
sive task, thus sparing the FTP servers and enabling them to respond more quickly to client requests.
Traffic Walkthrough
page 357
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
4. The FTP server receives the file request and responds by sending the requested file back to the
ACOS device “in the clear”. The ACOS device re-encrypts the FTP traffic from the server, creating
FTPS traffic, and sends the encrypted FTPS file to the client.
Details:
• In the current release, Secure FTP is only supported for Explicit FTPS transactions.
• In passive FTP mode, the server specifies which server-side port the client should connect to and
the client initiates the connection. This is in contrast to active FTP mode, where the client speci-
fies which port it has opened up for the data channel, and the server initiates the connection.
• After receiving the AUTH TLS command from the FTP client, ACOS expects to receive an SSL
handshake for the control channel, and expects the rest of the traffic from client to be encrypted.
• ACOS supports the FTP clear command channel (CCC) command. Meaning that after ACOS
receives the CCC command from the FTP client, the encryption is removed and packets are sent
as clear text.
• The data channel may or may not be encrypted, depending on which PROT command is sent
from the FTP client. The PROT P command indicates that the data is encrypted, whereas PROT C
indicates the data is not encrypted.
• For more information about SSL offload, refer to “SSL Offload and SSL Proxy” on page 345.
The diagram shows traffic flowing back and forth between a client and an FTP server with an ACOS
device in the middle acting as a proxy.
• A standard 3-way TCP handshake occurs on both sides of the ACOS device, and this traffic is
unencrypted, which is represented in the diagram with blue lines.
• Next, an SSL handshake occurs between the client and the ACOS device. Once the SSL hand-
shake is finished, the rest of the FTP control traffic is encrypted between the client and the
ACOS device (as shown with the green lines).
• The PROT P command can indicate the data channel will be encrypted, as shown with the red
lines.
• Communication between the ACOS device and the FTP server is never encrypted in this exam-
ple.
page 358
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
1. Configure client SSL. (See “Configuration Instructions for the Client SSL Template” on page 346).
2. Configure the real FTP servers.
3. Configure a service group for the servers and add them to the group.
4. Configure client-SSL template options.
5. Configure a virtual server and add a virtual port that has the service type ftp-proxy. Bind the service-
group to the virtual port and to the client-SSL template.
Since traffic between FTP servers and ACOS device is not encrypted, a server-SSL template is not
required.
page 359
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 360
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
2. To configure a service group for real FTP servers and add them to the group, use the slb service-
group command, then enter the member command at the configuration level for the service group.
ACOS(config)# slb service-group GROUP-1 tcp
ACOS(config-slb svc group)# member SERVER-1 80
ACOS(config-slb svc group-member:80)# exit
ACOS(config-slb svc group)# exit
3. To configure a virtual server and FTP-Proxy virtual port, use the slb virtual-server command
and enter service-group and template client-ssl commands at the configuration level for the
virtual port to bind the port to the service group and the application templates. See Configuration
Instructions for the Client SSL Template for instructions on configuring a client-ssl template
ACOS(config)# slb virtual-server VIP-1 10.15.1.1
ACOS(config-slb vserver)# port 80 ftp-proxy
ACOS(config-slb vserver-vport)# service-group GROUP-1
page 361
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
The clear slb ftp-proxy command clears the counters that appear in show slb ftp-proxy output.
page 362
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
In simple FWLB deployments, the ACOS device does not support the ability to load balance Application
Layer Gateway (ALG) protocols, which have multiple connections that can originate from either side of
the firewall deployment. This lack of predictability that occurs with ALG protocols can result in the pro-
tocol’s control connection and data connection being sent to different firewalls, which can cause the
application to stop working.
To handle some of the more complex ALG protocols, you can configure the ACOS device to load bal-
ance ALG protocols, such as FTP and SIP, through a firewall deployment consisting of paired firewalls
through the use of persistent session templates.
This ALG protocol FWLB feature resolves such issues with session persistence across a firewall
deployment for FTP and SIP traffic.
FTP Support
Figure 47 on page 364 shows FTP traffic passing back and forth between a client and an FTP server.
ACOS uses standard SLB server selection methods to choose a firewall that will handle the client’s traf-
fic.
The FTP protocol requires two separate sessions, or connections, which are represented in Figure 47
with red and green arrows:
• The green arrows represent the data connections (or “out of band” connections).
page 363
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of FTP and SIP
The control connection (red arrow) is usually initiated by the client, while the data connections (green
arrows) can be initiated from either side of the FWLB deployment and can be initiated by either the cli-
ent or the FTP server.
If the client initiates the data connection, then the FTP transaction is said to be in “passive” mode. This
is because the FTP server remains passive. However, if the data connection is initiated by the FTP
server, then the FTP connection is said to be in “active” mode because the FTP server is taking action.
SIP Support
As is the case with FTP, Session Initiation Protocol (SIP) poses unique challenges for the ACOS load
balancers that are attempting to create persistent sessions across a pair of firewalls in an FWLB
deployment.
Figure 48 on page 365 shows two separate SIP transactions side by side. Both scenarios involve a SIP
server and two or more SIP clients.
The SIP protocol requires two separate sessions, which the figure represents with red and green
arrows:
page 364
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Topologies for ALG Protocols FTP and SIP
Communication Session
Communication Session
The initial communication session is launched from a SIP client (as opposed to the SIP server). This
communication session can be launched from either side of the FWLB deployment.
In the leftmost scenario shown in Figure 48, the communication session originates from SIP client 1,
while the scenario on the right shows the communication session originating from SIP client 2, (in
which case SIP client 2 is on the same side of the firewall as the SIP server).
Once the communication session is established between the SIP server and client, then the SIP clients
can communicate through a separate SIP session.
The load balancers in the FWLB deployment must be able to handle the SIP sessions, regardless of
which side of the FWLB deployment those sessions might originate from.
When the communication session and SIP session are launched from different sides of an FWLB
Deployment, the ACOS device can load balance sessions through the same firewall by using a per-
sistent session template.
page 365
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Topologies for ALG Protocols FTP and SIP
• A client is located at the top of a firewall deployment and an FTP server is located at the bottom.
The firewalls are located at the center of the topology.
• The firewall deployment uses one external ACOS device (“Ex-AX”) on the public side of the fire-
walls and an internal ACOS device (“In-AX”) to handle traffic from the private side of the firewalls.
NOTE: Real-world scenarios often use two ACOS devices in VRRP-A high avail-
ability mode. However, for the sake of simplicity, the topology discussed
in this chapter shows a single ACOS device on each side of the firewalls.
page 366
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Topologies for ALG Protocols FTP and SIP
Figure 50 shows another example of a network topology, but this illustration shows the network ele-
ments that would appear in a situation in which SIP traffic is being load balanced across a firewall
deployment.
• A SIP client and a SIP server are located at the bottom of the firewall deployment.
• The firewall deployment uses one external ACOS device (“Ex-AX”) on the public side of the fire-
walls and an internal ACOS device (“In-AX”) to handle traffic from the private side of the firewalls.
page 367
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Topologies for ALG Protocols FTP and SIP
• Table 4 on page 368 displays persistent sessions for the client-side session, from the perspective
of the external-facing ACOS device.
• Table 5 on page 368 displays persistent sessions for the server-side session, from the perspec-
tive of the internal-facing ACOS device.
Session information in Table 4 represents the control connection of an FTP transaction in passive FTP
mode. The session (initiated from the client) is shown from the perspective of the external-facing
device, “Ex-AX”.
TABLE 4 ‘show session persist’ output for persistent FTP session through FWLB (“Ex-AX”)
Forward Source Forward Dest Reverse Source
10.1.1.2 10.4.1.2:65535 10.2.1.2:65535
• Forward Src – This leftmost column in the table above shows the IP address of the client
(10.1.1.2). As with standard SLB scenarios, the Forward Source is the IP address of the client.
• Forward Dest – The Forward Destination, (middle column above), is the real server’s IP address
(10.4.1.2). Note that this is different from standard SLB situations, in which the Forward Destina-
tion would usually be a VIP on the ACOS device instead of a real server.
• Reverse Source – The Reverse Source, (rightmost column above), represents the IP address
(10.2.1.2) for the firewall interface connected to the external-facing ACOS device, “Ex-AX”. The
fact that the firewall’s IP address is the Reverse Source is different from standard SLB scenarios
where the Reverse Source would typically be the IP address of the VIP on the ACOS device.
The control connection for the server-side session, from the client to the server, opens a persistent ses-
sion through the firewall. Subsequent TCP traffic, such as the data connection, has the same source IP
and destination IP as the control connection, so it follows the same path and selects the same firewall
as the persistent session selected by the control session.
Table 5 below displays output from the show session persist command for the persistent sessions for
passive FTP from the perspective of the internal-facing ACOS device (“In-AX”)
TABLE 5 show session persist’ output for persistent FTP sessions through FWLB (“In-AX”)
Forward Source Forward Dest Reverse Source
10.1.1.2 10.4.1.2:65535 10.4.1.2:65535
10.4.1.2 10.1.1.2:65535 10.3.1.2:65535
page 368
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Topologies for ALG Protocols FTP and SIP
The first session in the table is for the control session, and the second session is for the data session.
The session output has the following noteworthy properties:
• (Prot) Forward Src – This is the IP address of the client (10.1.1.2). As with standard SLB scenar-
ios, the Forward Source is also the IP address of the client.
• Forward Dest – The Forward Destination is the real server’s IP address (10.4.1.2). This is differ-
ent from a standard SLB situation, in which the Forward Destination would usually be a VIP on
the ACOS device.
• Reverse Source – This is the IP address of the real FTP server (10.4.1.2).
The second session in the table can be disregarded because it belongs to the data connection; the
data connection is following the control connection that was opened up by the first persistent ses-
sion.
• Table 6 on page 369 displays persistent sessions for the server-side session, from the perspec-
tive of the internal-facing ACOS device.
• Table 7 on page 370 displays persistent sessions for the client-side session, from the perspec-
tive of the external-facing ACOS device.
The session tables below show persistent sessions for SIP FWLB. The server-side sessions are seen
from the perspective of the internal-facing “In-AX” (AX5100A).
TABLE 6 show session persist’ output for persistent SIP session through FWLB (“In-AX”)
Forward Source Forward Dest Reverse Source
N/A 1.0.7.2:65535 1.0.1.2:65535
• Forward Src – This is a destination-IP persistent session. Therefore, there is no "Forward Source"
port.
• Forward Dest – The Forward Destination, (middle column above), is the SIP client 1 in the public
network (1.0.7.2). (See Figure 48 on page 365.)
• Reverse Source – The Reverse Source, (rightmost column above), represents the IP address
(1.0.1.2), which is the IP of the firewall interface connected to the internal-facing ACOS device,
“ACOS5100A”.
page 369
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Topologies for ALG Protocols FTP and SIP
The session information shown below represents the communication connection for a SIP transaction.
The session (initiated from the client) is shown from the perspective of the external-facing device, “Ex-
AX”.
When configuring SIP for FWLB, the source-IP persistence template and the destination-IP persistence
template should be configured with the netmask option (with the value set to “/24”), in order to make the
SIP server and SIP client 2 traffic follow the same persistent session. The netmask option is needed
because the two sessions have different IP addresses but are located within the same subnet.
TABLE 7 ‘show session persist’ output for persistent SIP sessions through FWLB (“Ex-AX” - ACOS5100B)
Forward Source Forward Dest Reverse Source
1.0.7.2 1.0.9.3:65535 1.0.2.2:65535
1.0.7.2 1.0.9.2:65535 1.0.2.2:65535
The output for the two persistent sessions (from the perspective of the external-facing ACOS device,
“ACOS5100B”) has the following noteworthy properties:
• (Prot) Forward Src – The Forward Source is the IP address (1.0.7.2) associated with SIP client 1
on the public network.
• Forward Dest – The Forward Source is the IP address (1.0.9.3), which is associated with the SIP
server in Figure 50 on page 367. (The second session in the table has an IP of 1.0.9.2, which is
associated with SIP client 2.)
• Reverse Source – This address represents the IP (1.0.2.2) for the firewall interface connected to
the external-facing ACOS device, “ACOS5100B”.
• Session persistence – See “Session Persistence for FTP and SIP” on page 373
• Health Monitoring – See “Health Monitoring for FWLB Paths” on page 374
Wildcard VIP
A wildcard VIP is a VIP that does not have a specific IP address. Instead, wildcard VIPs have IP address
0.0.0.0 (for IPv4) or “ :: ” (for IPv6). Client requests sent to any IP address will be accepted when they are
received at a a wildcard VIP.
Wildcard VIPs use Access Control Lists (ACLs) to filter client requests, thus preventing potential mis-
creants from causing damage to network resources located behind the wildcard VIP.
page 370
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Topologies for ALG Protocols FTP and SIP
To load balance ALG protocols through the firewalls, wildcard VIPs are necessary to handle traffic
heading in each direction (ingress and egress). A pair of wildcard VIPs is needed for each ACOS device.
One wildcard VIP is needed for traffic coming to the firewall and another is needed to handle traffic
going from the firewall.
To specify the source and destination IP addresses that a wildcard VIP will accept from clients, a pair
of ACLs must be configured. Extended ACLs, which can filter based on destination address, IP protocol,
and TCP/UDP port numbers, should be used to provide more granular control. The goal is to permit
traffic along the path from a specific client subnet to the IP addresses of the real servers.
• Each ACL has an implicit “deny any” rule at the end. Any traffic that is not explicitly permitted by
another rule in the ACL is denied by the implicit “deny any” rule.
• ACOS can have only one wildcard VIP that is not bound to an ACL. This unbound wildcard VIP is
known as the default, and it is used to process traffic that does not create a positive match on
any of the other ACLs that are bound to other wildcard VIPs.
• An ACL is configured to permit traffic from the client subnet (10.1.1.x/24) to pass to the server’s
subnet (10.4.1.x/24). This ACL is bound to the service group associated with the firewalls. (In the
sample configuration that follows, this ACL is called “ACL 100”.)
• An ACL is configured to permit traffic from the server subnet (10.4.1.x/24) to pass to the client’s
subnet (10.1.1.x/24). This ACL is bound to the service group associated with the client. (In the
sample configuration that follows, this ACL is called “ACL 101”.)
• An ACL is configured to permit traffic from the client subnet (10.1.1.x/24) to pass to the server’s
subnet (10.4.1.x/24). This ACL is bound to the service group associated with the servers. (In the
sample configuration that follows, this ACL is called “ACL 150”.)
• An ACL is configured to permit traffic from the server subnet (10.4.1.x/24) to pass to the client’s
subnet (10.1.1.x/24). This ACL is bound to the service group associated with the firewalls. (In the
sample configuration that follows, this ACL is called “ACL 151”.)
Each VIP on the ACOS devices in an ALG protocol FWLB deployment (“Ex-AX” and “In-AX”) requires a
wildcard TCP port (port 0). This wildcard port 0 is required because the data session destination port is
unknown when dealing with ALG scenarios. Thus, simply configuring well-known FTP ports 20 and 21
will not work and a wildcard port must be used instead.
These parameters (enabled by default) must be disabled for ALG protocol FWLB to work:
• Layer 4 health check – Layer 4 health checks are typically used to test the TCP ports on a real
server. The health check consists of a TCP SYN request being sent to the TCP port on an ACOS
page 371
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Topologies for ALG Protocols FTP and SIP
device. If the TCP port responds with a TCP SYN ACK, then it is determined that the TCP port is
healthy. If no response is received, then it is determined that the TCP port is down.
The Layer 4 health check must be disabled in ALG protocol FWLB scenarios. If not disabled, then
the default Layer 4 health check method will be used, causing the SYN packet to be sent to the
default port (“port 65535”) of the real server. The SYN packet will not be received on port 0, the SYN
ACK response will not be sent, and the health check will fail (because it will appear as though the
real server status is down).
• Destination NAT – With destination NAT enabled, the ACOS device swaps the destination
address in the packet from the client with the VIP on the ACOS device. However, destination NAT
must be disabled at the wildcard port level to prevent this swap or else the traffic from the client
will have its destination IP changed to the IP address of the service-group member. This would be
the IP address of the firewall, which would present problems because the firewall can not handle
the traffic.
On the external-facing ACOS device (“Ex-AX”), a service group is required for the firewalls, and another
service group is required for the client. However, in most deployments, the service group would be con-
figured for the next-hop router(s) instead of an actual client.
On the internal ACOS device (“In-AX”), a service group is required for the firewalls, and another service
group is required for the real server(s).
When configuring the service groups, keep in mind that stateless load balancing algorithms, such as
Stateless Source IP Hash, are not supported.
• All real servers in the service groups must use wildcard ports, such as “port 0 tcp”. If this is not
done, persistent FWLB for FTP will not work correctly. The FTP protocol uses well-known ports
20 and 21, so specifying just one of these ports would result in traffic from the other port being
denied.
• Layer 4 health checks on the wildcard ports must be disabled. If this is not done, the configura-
tion will fail because the Layer 4 health check traffic will be sent to default port 65535 instead of
port 0. No response will be generated, and it will appear as though the port is down.
Promiscuous Mode
Promiscuous mode can be enabled on ACOS data interfaces. By default, the option is disabled, but it
must be enabled on the data interfaces that are connected to the firewalls in an ALG FWLB configura-
tion.
When using a Virtual Ethernet (VE) interface to connect to the firewalls, you must enable promiscuous
mode only on the VE itself. ACOS automatically enables promiscuous mode on each of the Ethernet
ports in the VLAN that belongs to that VE.
page 372
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Topologies for ALG Protocols FTP and SIP
FTP-Specific Configurations
FWLB for FTP requires the following configuration options for persistence:
• Source-IP persistence template – Within the source-IP persistence template, the include destina-
tion-IP option is used to enable persistence of the destination IP address. When the include desti-
nation-IP option is enabled in a source-IP persistence template, the ACOS device uses the same
firewall for a given source-destination pair of IP addresses for the entire session. This option is
disabled by default.
The internal ACOS device (“In-AX”), which is connected to the FTP servers, must have the per-
sistence template configured on both wildcard VIPs. However, the external ACOS device (“Ex-AX”),
which is connected to the clients, only needs to have the persistence template configured on the
wildcard VIP that is bound to the firewalls, but not on the wildcard VIP that is bound to the client.
• Use-rcv-hop-for-resp – This option is configurable on individual virtual ports. When enabled, it
forces the ACOS device to send a reply back through the last hop from which the request was
received.
• On the ACOS device connected to clients, FWLB ALG for FTP requires this option on the wild-
card virtual port for the server-to-client direction. This is the virtual port on the wildcard VIP that
uses that ACL that matches on the client subnet.
• On the ACOS device connected to the servers, the use-rcv-hop-for-resp option is required on the
wildcard virtual port for the client-to-server direction. In this case, the src-dst-ip-swap-persist
suboption also is required. The src-dst-ip-swap-persist suboption “swaps” the source and desti-
nation addresses in the persistent session.
The use-rcv-hop-for-resp option has several sub-options that can be used with the SIP protocol that
can use more than two sessions.
SIP-Specific Configuration
FWLB for SIP requires the following configuration options for persistence:
• Destination-IP session persistence should be configured on the ACOS device that is connected to
the SIP server and SIP client 2. (See Figure 50 on page 367.)
• Source-IP session persistence should be configured (using the incl-dst-ip command) on the
ACOS device that is connected to SIP client 1. (See Figure 50 on page 367.)
In order to get both sessions (originating from different sides of the FWLB) to go through the same fire-
wall node, a special persistent session must be configured on the ACOS device at the side of the SIP
server and SIP client 2. (See Figure 50 on page 367.)
page 373
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Topologies for ALG Protocols FTP and SIP
The options: use-src-ip-for-dst-persist and use-date-ip-for-src-persist, have the same operation mode
as src-dst-ip-swap-persist.
The transparent option includes a special payload in the health-check packets that is recognized by the
other ACOS device. For example, in Figure 51, a health-check packet from “Ex-AX” travels through FW1
to “In-AX”. “In-AX” recognizes the payload and replies to the health check.
The red arrow in Figure 51 below shows the path of this ICMP packet.
In response, the external-facing ACOS device (“Ex-AX”) checks whether the ICMP echo request packet
has a special payload. If the special payload is present, then “Ex-AX” sends an ICMP echo response
packet to the source MAC address of “FW1”, which was contained in the original echo request packet.
This ICMP echo response packet is represented by the blue arrow.
The health check (ICMP ping) occurs at Layer 3. The health checks at Layer 4 do not apply to FWLB
ALG and must be disabled.
page 374
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
Configuration
This section shows how to configure an ACOS device for ALG FWLB using wildcard VIPs. Separate
instructions are provided for FTP and SIP, and configuration instructions are provided for the ACOS GUI
and CLI.
The process of configuring a pair of ACOS devices to handle AGL traffic, such as FTP and SIP, consists
of the following high-level steps:
1. Create ACLs that are bound to the wildcard VIPs in order to permit traffic from specific clients or
subnets. It is recommended that you use an extended ACL for greater granularity instead of a stan-
dard ACL.
2. Enable promiscuous mode on Ethernet interfaces connected to the firewalls, real servers, and cli-
ents.
3. Configure a Layer 3 ICMP health monitor with transparent mode enabled.
4. Configure the firewall nodes and real servers, and then add wildcard ports to the firewall nodes and
disable the Layer 4 health checks on those ports.
5. Create separate service groups for the firewall nodes, real servers, and SIP or FTP clients.
6. Configure a source-IP persistence template and enable destination persistence.
7. Configure the wildcard VIPs:
• Create a wildcard VIP for traffic in each direction.
• Bind the ACL that matches traffic from the servers to the wildcard VIP for the servers.
• Bind the ACL that matches traffic from the clients to the wildcard VIP for the firewalls.
• Disable destination NAT.
Configuring Use-rcv-hop-for-resp
The use-rcv-hop-for-resp command is used at the virtual port level to enable the ACOS device to sup-
port persistent sessions of ALG traffic across a firewall deployment.
Configuring Src-dst-ip-swap-persist
This option cannot be used for the SIP protocol, because a SIP transaction may involve three or more
parties.
page 375
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
Configuring Use-src-ip-for-dst-persist
The use-rcv-hop-for-resp command, with the use-src-ip-for-dst-persist option, at the virtual port
level, creates a destination persistent session based on the source IP.
Configuring Use-dst-ip-for-src-persist
The use-rcv-hop-for-resp command, with the use-dst-ip-for-src-persist option, is used at the vir-
tual port level. When this option is enabled, the ACOS device uses the destination IP to create source-IP
persistent sessions for SIP or FTP sessions; the response packet goes through the same firewall as the
client’s request packet, and the SIP session and communication sessions is load balanced through the
same firewall node.
The incl-dst-ip command is used within the source-IP persistence template for ALG protocols, such
as FTP. A special persistent session is used for this feature, and this option helps ensure that the ses-
sion will be matched on both the source IP and destination IP addresses.
The CLI example below is based on the network topology for FTP FWLB shown in Figure 49 on
page 366.
Configure ACLs
It is recommended that you use extended ACLs, rather than standard ACLs, in order to achieve greater
granularity. Extended ACLs allow you to specify both the source and destination IP, so you have explicit
control over which traffic is permitted and where it is allowed to go.
This command creates extended “ACL 100”, which permits traffic from clients on subnet 10.1.1.0 and
to FTP servers on subnet 10.4.1.0. (This ACL is later bound to the service group associated with the
firewalls.)
This command creates extended “ACL 101”, which permits traffic from FTP servers on subnet 10.4.1.0
and to clients on subnet 10.1.1.0. (This ACL is later bound to the service group associated with the cli-
ents.)
page 376
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
This command creates extended “ACL 150”, which permits traffic from clients on subnet 10.1.1.0 and
to FTP servers on subnet 10.4.1.0. (This ACL is later bound to the service group associated with the
FTP servers.)
This command creates extended “ACL 151”, which permits traffic from FTP servers on subnet 10.4.1.0
and to clients on subnet 10.1.1.0. (This ACL is later bound to the service group associated with the fire-
walls.)
The following commands create the Ethernet interfaces connected to the firewalls and the real servers
or clients, and then enable promiscuous mode:
These commands create health monitor “FW-HC”, which contains the method ICMP transparent. The
method performs a transparent health check and sends a ping through the firewall to the IP address of
the external-facing ACOS device (“Ex-AX”) at 10.2.1.1.
Next, create a server configuration for the firewall node “FW1” (at IP address 10.3.1.2) and another fire-
wall node “FW2” (at IP address 10.3.1.3), and assign the “FW-HC” health check. Then, add wildcard
ports (port 0) to the firewall nodes.
Create a server configuration for the FTP server, “SRV”, at IP address 10.4.1.2, and add wildcard ports
(port 0) to the server while disabling the Layer 4 health checks, which are enabled by default.
While it may seem unusual to do so, create a server configuration for the client, “CL” (at IP address
10.1.1.2). This ensures the FTP sessions are correctly routed across the firewall while maintaining ses-
sion persistence. As with the other servers, you must add wildcard ports (port 0) while disabling the
Layer 4 health checks.
page 377
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
These commands create the service group, “FW-SG”, which will be used to manage the two firewall
nodes. Then, add the two firewall nodes, “FW1” and “FW2”, as service group members, on port 0. Simi-
larly, create a separate service group “SRV-SG” to manage the FTP server, and then add the server
“SRV” on port 0. Lastly, create a separate service group “CL-SG” to manage the clients, and then add the
client “CL” on port 0.
page 378
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
Create a source-IP persistence template “AAA” and use the incl-dst-ip command to enable destina-
tion persistence.
Use the following commands to create the wildcard VIPs at IP address 0.0.0.0, which will be used to
handle FTP traffic coming to the external-facing ACOS device from the client on the public network. The
previously-created ACL (“ACL 100”) is bound to the wildcard VIP, port 0 is associated with service group
“FW-SG”, destination NAT is disabled, and persistence is enabled.
These commands create the wildcard VIPs at IP address 0.0.0.0 to handle FTP traffic from the exter-
nal-facing ACOS device to real servers on the private network. “ACL 101” is bound to the wildcard VIP;
port 0 is associated with service group “SRV-SG”; destination NAT is disabled; and persistence is
enabled.
When finished with these configurations, you can use the “show session” command to verify that an
FTP control connection could create a src-dst-ip-swap-persist session.
page 379
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
When FTP control connection is established, data connections select the right firewall using the estab-
lished persistent session.
Internal-facing Device
The configurations below are based on the network topology shown in Figure 50 on page 367 and rep-
resent the configuration that must be made on the internal-facing ACOS device (ACOS5100A).
Configure ACLs
The following commands create a standard ACL, which will be applied to the internal-facing ACOS
device (“ACOS5100A”), and will permit traffic from “SIP client 1”, which is located on the public subnet
(1.0.7.0). At the same time, this ACL will deny all other traffic.
The following commands create standard ACL, which will be applied to the internal-facing ACOS device
(“ACOS5100A”), and will permit traffic from the SIP client and SIP server on the internal subnet (1.0.9.0)
while denying all other traffic.
The following commands create the Ethernet interfaces on the internal-facing ACOS device that is con-
nected to the firewalls and to the real servers or clients. Then, commands are used to enable promiscu-
ous mode on those interfaces:
page 380
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
The following command creates the health monitor “fw-hc1”, which contains the method ICMP trans-
parent. The method is used to perform a transparent health check, and it will send a ping through the
firewall to the ACOS interface on the far side of the firewall at IP 1.0.2.1:
Next, create a server configuration for the SIP client, “sip-client2”, which is at IP address 1.0.9.2. This is
necessary to ensure the SIP sessions can be correctly routed across the firewall while maintaining ses-
sion persistence. Add wildcard ports at port 0 for both TCP and UDP, both of which are necessary for
SIP. In addition, disable Layer 4 health checks on both wildcard ports.
Create a server configuration for the firewall node “fw1” (at IP address 1.0.1.2) and firewall node “fw2”
(at IP address 1.0.1.3), and assign the “fw-hc1” health check to both firewall nodes. Add wildcard ports
(port 0) to the firewall nodes for TCP and UDP, and disable the Layer 4 health checks for these wildcard
ports.
page 381
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
Next, create a server configuration for the SIP server “sip-srv” (at IP address 1.0.9.3), and add wildcard
ports (port 0) for TCP and UDP, while disabling the Layer 4 health checks on port 0, which are enabled
by default.
Create two service group “sg-sip-client2-tcp” and “sg-sip-client2-udp” to manage the clients, and then
add the client “sip-client2” to each service group at port 0.
Use these commands to create service groups “sg-fw-tcp1” (TCP) and “sg-fw-udp2” (UDP). These ser-
vice groups manage the firewall nodes. Add two firewall nodes, “fw1” and “fw2”, on port 0 to each ser-
vice group.
page 382
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
Similarly, create two separate service groups to manage the SIP server. Create service group “sg-sip-
srv1” for TCP traffic and create “sg-sip-srv2”. Then, add “sip-srv” as a member of each service group on
port 0.
Use the following commands to create the wildcard VIPs at IP address 0.0.0.0. This wildcard VIP will be
assigned to the internal-facing ACOS device (ACOS5100A), and will be used to handle SIP traffic com-
ing from the firewall (and from the SIP client on the public network), and going to the internal-facing
ACOS device.
The previously-created ACL is bound to the wildcard VIP, thus allowing traffic from SIP client 1, while
denying all other traffic.
Port 0 is associated with service groups “sg-sip-client2-tcp” and “sg-sip-client2-udp”. Destination NAT is
disabled.
The use-rcv-hop-for-resp use-src-ip-for-dst-persist option is applied to wildcards ports for both TCP and
UDP to create a destination persistent session based on source IP. The no-dest-nat option is applied to
TCP and UDP service groups to help ensure the session is matched on both the source IP and destina-
tion IP addresses.
page 383
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
Use these commands to create the wildcard VIPs at IP address 0.0.0.0. This wildcard VIP is assigned
to the internal-facing ACOS device (ACOS5100A) and used to handle SIP traffic going to the firewall
from the internal-facing ACOS device (and originally from the SIP client and SIP server on the private/
internal network).
The previously-created ACL is bound to the wildcard VIP, thus allowing traffic from internal subnet (that
is, SIP client 2 and the SIP server), while denying all other traffic. In addition, port 0 is associated with
service group “sg-fw-tcp1” and “sg-fw-udp2”. Destination NAT is disabled.
Also, the no-dest-nat option is applied to the TCP and UDP service groups to help ensure the session
will be matched on both the source IP and destination IP addresses.
When finished with these configurations, you can use the “show session” command to verify that a SIP
control connection could create a dst-ip-persistent session, as shown below:
External-facing Device
The configurations below are based on the network topology shown in Figure 50 on page 367 and rep-
resent the configurations that must be made on the external-facing ACOS device (ACOS5100B).
page 384
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
Configure ACLs
This command creates a standard ACL, which is applied to the external-facing ACOS device
(“ACOS5100B”), and permits traffic from “SIP client 2” located on the private subnet (1.0.9.0). This ACL
denies all other traffic.
This command creates a standard ACL, which is applied to the external-facing ACOS device
(“ACOS5100B”), and permits traffic from SIP client 1 on the public subnet (1.0.7.0) while denying all
other traffic.
The following commands create the Ethernet interfaces on the external-facing ACOS device that is con-
nected to the firewalls and to the SIP client. Promiscuous mode is then enabled on those same inter-
faces:
The following command creates the health monitor “fw-hc2”, which contains the method ICMP trans-
parent. The method is used to perform a transparent health check by sending a ping through the fire-
wall to the ACOS interface on the far side of the firewall at IP 1.0.1.1:
A server configuration is created for the SIP client, “sip-client1” (at IP 1.0.7.2). This is necessary to
ensure the SIP sessions can be correctly routed across the firewall while maintaining session per-
sistence. Add wildcard ports (port 0) for both TCP and UDP, both of which are necessary for SIP. In
addition, disable the Layer 4 health checks these wildcard ports.
page 385
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
Create a server configuration for the firewall node “fw1” (at IP 1.0.2.2) and firewall node “fw2” (at IP
1.0.2.3). Assign the health check created earlier (“fw-hc2”). Then, add wildcard ports (port 0) to the fire-
wall nodes for TCP and UDP, while disabling the default layer 4 health checks.
There is no server configuration required for the SIP server because that device is connected to the
ACOS5100A, the internal-facing ACOS device.
Create a service group, “sg-sip-client1-tcp” to manage the TCP portion of the SIP transaction on the cli-
ent, and then add “sip-client1” on port 0 of the service group.
Repeat the process above for UDP. Create a service group, “sg-sip-client1-udp” to manage the UDP por-
tion of the SIP transaction on the client, and then add “sip-client1” on port 0 of the service group.
page 386
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
These commands create service groups “sg-fw-tcp3” (TCP) and “sg-fw-udp4” (UDP), which are used to
manage firewall nodes. The firewall nodes, members “fw1” and “fw2”, are added to port 0 of each ser-
vice group.
There is no service group required for the SIP server because that device is connected to the internal-
facing ACOS device (ACOS5100A).
Use these commands to create a source-IP persistence template “stemp1” with incl-dst-ip option
enabled:
Use these commands to create the wildcard VIPs at IP address 0.0.0.0. This wildcard VIP will be
assigned to the external-facing ACOS device (ACOS5100B), and will be used to handle SIP traffic com-
ing from the firewall, (and from the SIP client on the private network), and going to the external-facing
ACOS device.
The previously-created ACL is applied to the wildcard VIP, thus allowing traffic from SIP client 2, while
denying all other traffic.
In addition, port 0 is associated with service group “sg-sip-client1-tcp” and “sg-sip-client1-udp”, and des-
tination NAT is disabled. Also, the use-rcv-hop-for-resp use-dst-ip-for-src-persist command is applied to
the wildcard ports (port 0), which will cause the response packets to go through the same firewall as
the client’s request packets. The communication and SIP sessions will be load balanced through the
same firewall node.
page 387
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
Use the following commands to create the wildcard VIPs at IP address 0.0.0.0. This wildcard VIP will be
assigned to the external-facing ACOS device (ACOS5100B), and will be used to handle SIP traffic com-
ing to the external-facing ACOS device from the SIP client. The previously-created ACL is bound to the
wildcard VIP, thus allowing traffic from public network (that is, SIP client 1), while denying all other traf-
fic. In addition, port 0 is associated with service group “sg-fw-tcp” and “sg-fw-udp”. Destination NAT is
disabled.
When finished with these configurations, you can use the “show session” command to see that a SIP
session could create the following source-IP persistent sessions, as shown below:
Internal-ACOS(config)#
Note that the two sessions in the table are the same. This is because the SIP session is following the
persistent session that has already been established by the communication session.
page 388
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization
ACOS can locally cache DNS replies and serve cached replies in response to DNS requests from clients.
DNS caching offloads DNS servers, by caching replies to DNS queries and serving the cached replies in
response to subsequent queries. This chapter describes the DNS optimization features supported by
the ACOS device.
You can enable DNS caching globally or on individual VIPs. See the following sections:
• “Load Balancing with the “DNSSEC OK” (DO) Bit” on page 408
These features are supported only in software releases that support SLB. For information about DNS
security features, see the Application Access Management and DDoS Mitigation Guide.
ACOS continues to use the cached DNS reply until the reply times out. After the reply times out, ACOS
sends the next request for the hostname to the DNS server, and caches the reply, and so on.
DNS caching is disabled by default. When you enable it, replies are cached for 300 seconds by default.
A DNS reply begins aging as soon as it is cached and continues aging even if the cached reply is used
after aging starts. Use of a cached reply does not reset the age of that reply.
The maximum size for DNS cache entries can be 1-4096 bytes. The default is 256 bytes.
Global DNS caching applies to DNS requests sent to a VIP with virtual-port type udp (on port 53) or dns-
udp (on port 53). DNS caching is not supported for DNS requests sent to other UDP port numbers or
over TCP.
page 389
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
The default cache timeout is 300 seconds. To change the cache timeout to 500 seconds, use this com-
mand:
The default maximum cache entry size is 256 bytes. This command changes the maximum size to 128
bytes.
To display global DNS caching statistical information, use the following command:
Parameters for DNS caching per VIP are configured in the following places:
page 390
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
• Class list
• DNS template
Per-VIP DNS caching applies to DNS requests sent to a VIP with virtual-port type dns-udp, on any port
number. DNS caching is not supported for DNS requests sent to virtual-port type dns, or requests sent
over TCP.
• match-option – Specifies the match criteria for the domain-string. The match-option can be one of
the following:
• dns contains – The entry matches if the DNS request is for a domain name that contains the
domain-string anywhere within the requested domain name.
• dns starts-with – The entry matches if the DNS request is for a domain name that begins with
the domain-string.
• dns ends-with – The entry matches if the DNS request is for a domain name that ends with the
domain-string.
• domain-string – Specifies all or part of the domain name on which to match.
For wildcard matching on more than one character, you can use the dns contains, dns starts-with,
and dns ends-with options. For example, “dns ends-with example.com” matches on both
“abc.example.com” and “www.example.com”.
• {glid | lid} num – Specifies a global limit ID (GLID) or a local limit ID (LID). Limit IDs contain poli-
cies. GLIDs can be used by more than one DNS template. LIDs are configured within an individual
DNS template. GLIDs / LIDs contain DNS caching policies. ACOS applies the DNS caching policy
in the specified GLID or LID to the domain-string.
Each class list can contain a maximum of 1000 entries or 5000 domain-string characters.
Each class-list entry selects a DNS caching policy, contained in the LIDs, based on the matching host-
name. For example, queries for hostnames that contain “a10networks.com” are processed using the
page 391
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
policy in LID 1. The LIDs are configured in a DNS template that is applied to the DNS virtual port. (See
“DNS Template Parameters” on page 392.)
• DNS caching state (DNS template enabled or disabled) – DNS caching is enabled by default. You
can easily disable it by setting this parameter, without changing the configuration of other cach-
ing parameters or changing the configuration settings on the DNS virtual ports that use the tem-
plate.
• Default caching policy – Specifies the cache action (cache or nocache) for requests that do not
match any domain-string in the class list. The default is nocache. By default, replies for domain
names that do not match the class list are not cached.
• Maximum cache size per ACOS device – Specifies the maximum number of DNS replies that can
be cached on the ACOS device. You can specify from 1 to the maximum allowed on your ACOS
model. The default is the maximum allowed on your ACOS model.
This is based on the amount of RAM installed in each ACOS device. For details, contact A10 Net-
works.
• Maximum cache entry size – Specifies the maximum number of bytes a DNS cache entry can
have. You can specify 1-4096 bytes. The default is 256 bytes.
• Maximum query length – Specifies the maximum number of bytes a DNS query can received by
the DNS virtual port can contain. You can specify 1-4096 bytes. By default, this parameter is
unset.
• Logging – You can enable logging of DNS caching events. (See “DNS Cache Logging” on
page 394.) Logging is disabled by default. When you enable it, you can specify the number of
minutes between generation of log messages, 1-10000 minutes.
• Class-list LID – Specifies the DNS policy (DNS caching settings) for domain-strings in the class
list.
• Connection rate limit – maximum DNS connection rate allowed before the over-limit action is
applied. (See below.) You can specify 1-4294967295 DNS connections per 1-65535 100-millisec-
ond (ms) intervals. There is no default.
page 392
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
• Over-limit action – Action to take when the DNS connection or request limit or rate is exceeded.
The default action is to drop the traffic. Optionally, you can specify one of the following actions
instead:
• Enable caching
• Disable caching
• Forward the traffic anyway
• Lock out further traffic from the sender for the specified number of minutes, 1-1023. You also
can specify a lockout time for any of the other over-limit actions listed above.
By default, logs are not generated by an over-limit action. You can enable logging of over-limit
actions. Over-limit messages are sent immediately. They are not queued based on DNS cache log-
ging settings.
• Time-To-Live (TTL) – Period an entry remains in the cache before it is removed. By default, the
global DNS cache age is used. The default global DNS cache age is 300 seconds (5 minutes).
• Weight – Numeric value used when cache entries need to be removed to make room for new
entries. You can assign a weight of 1-7. Lower-weighted objects are removed before higher
weighted objects.
• Cache more than 60% full, entries with weight 1 are eligible to be removed.
• Cache more than 70% full, entries with weight 1 or 2 are eligible to be removed.
• Cache more than 80% full, entries with weights 1-4 are eligible to be removed.
• Cache more than 90% full, entries with weights 1-6 are eligible to be removed.
The default weight is 1.
• Connection limit – maximum active DNS connections allowed before the over-limit action is
applied. You can specify 1-1048575 DNS connections. There is no default.
• Request limit – maximum number of DNS requests before the over-limit action is applied. You
can specify 1-1048575. There is no default.
• Request rate limit – maximum rate of DNS requests before the over-limit action is applied. You
can specify 1-4294967295 DNS requests every 1-65535 100-millisecond (ms) interval(s). There is
no default.
• Use NAT pool – Binds a NAT pool to the GLID. The pool is used to provide reverse NAT for class-
list members that are mapped to this GLID.
page 393
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
• Number of DNS cache hits between log intervals or before aging time
• ACOS management IP address, severity level (6, informational) and domain name requested
The hits counter is reset to 0 after the messages are sent. The counter is not cumulative.
Aug 22 04:05:14 192.168.20.164 a10logd: [DNS-Cache]<6> dns=example.com hits=6 for the last
1 minute interval
Aug 22 04:05:16 192.168.20.164 a10logd: [DNS-Cache]<6> dns=example5.nl hits=5 for the last
1 minute interval
Configuration
To configure per-VIP DNS caching:
• If using GLIDs to specify the DNS caching policies, configure the GLIDs.
• Configure a DNS template. Specify the name of the class list. Bind the class list to the GLIDs, or
configure the LIDs under the class list.
• Configure a real server for the DNS server. Add UDP port 53 to the real server.
• Configure a UDP service group and add the real server to it.
• Configure a VIP using a virtual port with service type dns-udp. Bind the DNS template and the ser-
vice group to the virtual port.
In the service group, stateless load-balancing methods are not supported with DNS features described
in this chapter.
• Use a text editor on a PC or other device to create the list, then import it onto the ACOS device.
For class-list syntax information, see “Class-List Parameters for DNS Caching” on page 391.
page 394
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
After the class list is configured, import it onto the ACOS device using the import class-list com-
mand at the Privileged EXEC or global configuration level. The command specifies the name the class
list will have on the ACOS device along with the file transfer protocol, username (when required), and
directory path.
You can enter the entire URL on the command line or press Enter to display a prompt for each part of
the URL. If you enter the entire URL and a password is required, you will still be prompted for the pass-
word. To enter the entire URL:
• tftp://host/file
• ftp://[user@]host[:port]/file
• scp://[user@]host/file
• sftp://[user@]host/file
You also can export class lists to a remote server, using the export class-list command.
Deleting a class list from a file system is the same as saving the configuration changes to the file sys-
tem. The write mem command is required.
To configure a class list in the CLI, use the class-list commands. You can either save the class list as
a separate file or save it to the startup-config. If the class list contains 100 or more entries, it is recom-
mended to save the list to a file. A class list can be exported only if you use the file option.
The class-list command creates the class list if it is not already configured, and changes the CLI to
the configuration level for the list, where the dns command is available. Use the command to configure
match rules to map DNS traffic to LIDs or GLIDs. (See “Class-List Parameters for DNS Caching” on
page 391.)
Use the glid command at the global configuration level. This command creates the GLID and changes
the CLI to the configuration level for it, where the following commands are available.
• The conn-limit command specifies the maximum number of concurrent connections on the
DNS virtual port before the over-limit action is applied.
page 395
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
• The conn-rate-limit command specifies the maximum DNS connection rate before over-limit
action is applied.
• The over-limit-action command specifies the action when the DNS connection, request limit,
or rate is exceeded.
• Th request-limit command specifies the maximum number of DNS requests before over-limit
action is applied.
• The request-rate-limit command specifies the maximum DNS request rate before over-limit
action is applied.
• The dns command disables or enables DNS caching.
• The dns ttl command specifies the number of seconds to keep an entry in the cache before
removing it.
• The dns weight command specifies the numeric value used when cache entries need to be
removed to make room for new entries.
To configure a DNS template for DNS caching, enter the slb template dns command at the global con-
figuration level of the CLI. The command creates the template and changes the CLI to the configuration
level for it, where the following commands are available.
For configurable ranges and default values, see “DNS Template Parameters” on page 392.
• The default-policy command specifies the default action for DNS queries for domain names
that do not match a class list entry.
• The dns-log-enable period command enables logging and specifies how often to generate logs.
• The max-cache-size command specifies the maximum number of replies to cache per DNS vir-
tual port.
• The class-list name command specifies the name of the class list to use.
• The class-list lid command creates a LID and changes the CLI to configure it. LID numbers
are from 1 to 1023.
• To disable the DNS template without removing the template from the configuration, use the dis-
able-dns-template command:
page 396
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
The following commands are available at the configuration level for DNS caching LIDs.
• The conn-rate-limit command specifies the maximum DNS connection rate before over-limit
action is applied.
• The over-limit-action command specifies the action when DNS connection, request limit, or
rate is exceeded.
• The dns cache-disable command disables DNS caching. The dns cache-enable command
enables caching.
• The dns ttl command specifies the number of seconds to keep an entry in the cache before
removing it.
• The dns weight command specifies the value used when cache entries are removed for space
for new entries.
• At the configuration level for the virtual server, the port command adds a dns-udp port to the vir-
tual server. The service type must be dns-udp, not dns. DNS caching per VIP is supported only on
dns-udp virtual ports. The command changes the CLI to the configuration level for the virtual
port. At this level, use the template dns command to bind the DNS template to the virtual port:
Make sure to also bind a UDP service group to the virtual port. The commands for real server and ser-
vice group configuration are the same as those for other types of virtual ports and are not covered in
this chapter.
To display DNS cache entries, use the show dns cache entry command:
To display the requested domain names and their IP addresses, as well as limit, rate, and lockout statis-
tics, use the show dns cache client command:
To display DNS caching statistics, use the show dns cache statistics command.
page 397
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
When authentication of DNS-over-UDP is enabled, ACOS drops DNS requests from the client if they are
sent over UDP and sends the client a DNS Truncate message. This action essentially informs the client
that it must re-send the DNS request over TCP in order to pass the DNS authentication.
This feature gives the user the ability to cache TCP based DNS queries and is interchangeable with que-
ries made to UDP and TCP based VIPs. This feature has been implemented in tandem with caching so
that the initial request is not only redirected to TCP, but is then cached so that a second request is not
made to the DNS server.
By default, DNS requests from clients are not authenticated. To enable ACOS to authenticate client
requests by directing the client to retry the connection over TCP (instead of UDP), use the redirect-to-
tcp-port command at the slb template dns config level.
By default, DNS cache sharing is disabled. To enable DNS Cache Sharing, use the enable-cache-shar-
ing command at the slb template dns config level:
• Configure a DNS caching policy in which the default action is to cache, and bind it to the DNS vir-
tual port for which you want to cache DNS replies.
• Configure another DNS caching policy, in which the default action is not to cache, and bind it to
the DNS virtual port for which you do not want to cache DNS replies.
In this example, default settings are used for all DNS caching parameters except the default cache
action.
page 398
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
The following commands configure the real server and service group:
Since the default action is nocache, dns-disable-template is not needed for vip-nocache.
• Create a class list that contains match rules for domain names to perform DNS caching. In this
example:
• Allow caching of all entries for “example.com”; for example, “mail.example.com”, “ftp.exam-
ple.com”, and so on.
page 399
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
The following commands configure the real server and service group:
The following commands bind the DNS template to the DNS virtual port:
page 400
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
• Create a class list that contains match rules for the domain names for which to perform DNS
caching. Associate the URL string with an LID.
• Configure a GLID that enables caching when a specified connection rate is reached.
• Configure a DNS template that specifies the default action (in this example, nocache).
Although this example uses a GLID, you can use a LID within the DNS template instead.
ACOS(config)# glid 1
ACOS(config-global lid)# dns cache-disable
ACOS(config-global lid)# conn-rate-limit 1000 per 10
ACOS(config-global lid)# over-limit-action dns-cache-enable
ACOS(config-global lid)# exit
The following commands configure the real server and service group:
page 401
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
The following commands bind the DNS template to the DNS virtual port:
• Create a class list that contains match rules for the domain names for which to perform DNS
caching. Associate each URL string with an LID.
• Configure a DNS template with default action nocache, add the class list to the template, and
configure these LIDs:
• LID 1 – DNS cache-enable, weight 1
• LID 2 – DNS cache-enable, weight 2
• Bind the DNS template to the DNS virtual port.
page 402
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
The following commands configure the real server and service group:
The following commands bind the DNS template to the DNS virtual port:
• Create a class list that contains match rules for domain names to throttle. Associate each URL
string with an LID.
• Assign a very low connection or request rate (for example, 1).
page 403
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
The following commands configure the real server and service group:
The following commands bind the DNS template to the DNS virtual port:
Logging for DNS caching will be enabled for each virtual DNS port that uses this template. Logs will be
generated every 5 minutes.
page 404
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
Notes
• The T (Type) column lists the DNS record type. For a list, see the following: http://en.wikipe-
dia.org/wiki/List_of_DNS_record_types
• If logging is enabled, the Hit counter is reset after each log entry is created. (See “DNS Cache Log-
ging” on page 394 and “CLI Example – Logging” on page 404.)
• The counter in the Age column is always a multiple of 60. This is because the age is rounded up
to the next 60-second cache refresh interval. ACOS refreshes the cache every 60 seconds. An
entry that has aged out is removed at some point during the 60-second cache refresh.
ACOS# show dns cache client
Client class list statistics:
F = Flag (C-Connection, R-Request), Over-RL = Over rate limit
Domain Destination F Rate Over-RL lock lock-time
-------------------------+---------------------+-+---------+---------+----------+------
ad.example.com 192.22.35.90:53 C 0 0 0 0
example.com 192.22.35.90:53 C 0 0 0 0
www.examplelive.com 192.22.35.90:53 C 0 30 0 0
.example2.com 192.22.35.90:53 C 0 0 0 0
example-corp1.com 192.22.35.90:53 C 0 0 0 0
example-corp2.com 192.22.35.90:53 C 0 0 0 0
page 405
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
This example uses the following components without providing their configuration: wild (class list), sg-
dns (service group), and svg_v6_0 (service group).
page 406
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
DNS Optimization per VIP
In the example above, the DNS template “temp_dns1” is applied to two virtual ports, port 53 and port
5353. With the enable-cache-sharing command enabled, those ports will share the DNS cache, which
will save memory costs.
The following example shows you how to disable cache sharing in your configured DNS template:
page 407
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing with the “DNSSEC OK” (DO) Bit
The ACOS device checks the header of the UDP or TCP packet for an OPT field, and checks the OPT
field for the “DNSSEC OK” or DO bit. If not found, the DNS request is load-balanced to a service group
for DNS servers not supporting DNSSEC. If found, the request is sent to a service group for servers pro-
viding DNSSEC support.
This configuration implements the topology in Figure 52. This example uses UDP, but TCP can also be
used.
page 408
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing with the “DNSSEC OK” (DO) Bit
2. Configure the SG-NON-DNSSEC service group for servers not supporting DNSSEC:
ACOS(config)$ slb server RS11 10.0.0.11
ACOS(config-real server)$ exit
ACOS(config)$ slb server RS12 10.0.0.12
ACOS(config-real server)$ exit
ACOS(config)$ slb service-group SG-NON-DNSSEC udp
ACOS(config-slb svc group)$ member RS11 53001
ACOS(config-slb svc group-member:53001)$ exit
ACOS(config-slb svc group)$ member RS12 53001
ACOS(config-slb svc group-member:53001)$ exit
ACOS(config-slb svc group)$ exit
3. Create the DNS SLB template TMP-DNSSEC and apply it to the SG-DNSSEC service group.
ACOS(config)$ slb template dns TMP-DNSSEC
ACOS(config-dns)$ dnssec-service-group SG-DNSSEC
ACOS(config-dns)$ exit
4. Configure the virtual server and port on the ACOS device, and associate them with the proper ser-
vice group and template.
ACOS(config)$ slb virtual-server VS-DNS 10.10.10.10
ACOS(config-slb vserver)$ port 53 dns-udp
ACOS(config-slb vserver-vport)$ service-group SG-NON-DNSSEC
ACOS(config-slb vserver-vport)$ template dns TMP-DNSSEC
ACOS(config-slb vserver-vport)$ exit
ACOS(config-slb vserver)$ exit
The “DNSSEC switch” field displays the number of DNSSEC packets switch to the service group
supporting DNSSEC.
page 409
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Load Balancing with the “DNSSEC OK” (DO) Bit
page 410
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
RAM Caching
This chapter describes usage of an ACOS device as a transparent cache server. These topics are cov-
ered:
• Dynamic Caching
• Host Verification
Caching HTTP content reduces Web server transactions and hence the server loads. Caching dynamic
content reduces latency and computation cost of generating dynamic pages by application servers
and database servers. Caching also reduces page download time and bandwidth utilization.
RAM caching is useful for high-demand objects on a website, for static content such as images, and
when used in conjunction with compression to store compressed responses, eliminating unnecessary
overhead.
ACOS RAM caching considers HTTP responses with the following status codes to be cacheable:
• 200 – OK
page 411
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of RAM Caching
• 410 – Gone
If-Modified-Since: date-time
This header instructs the content server (or cache server) to send the requested page only if the page
has been modified subsequent to the date and time specified in the IMS header.
• If the requested content is in the cache and is still fresh, but the content was cached before the
date and time in the IMS header, the ACOS device sends a 304 – Not Modified response to the
client.
• If the requested content is in the cache and is still fresh, and the content was cached after the
date and time in the IMS header, the ACOS device sends a 200 – OK response, along with the
requested page, to the client.
• If the requested content is not in the cache, or is in the cache but is stale, the ACOS device
deletes the IMS header from the request. This forces the server to send a 200 OK response,
which is then immediately cached.
• Cache-Control: no-cache
• Cache-Control: max-age=0
However, for security, support for these headers is disabled by default. These headers can make the
ACOS device vulnerable to Denial of Service (DoS) attacks.
To enforce strict RFC compliance, you can enable support for the headers.
page 412
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Cacheability Behavior of ACOS RAM Cache
• Age header – indicates the age of the cached response, measured in seconds
• Via header – indicates the ACOS software version, in the following format:
ACOS-CACHE-software-version(major.minor):last-octet-of-VIP address
HTTP/1.1 200 OK
Server: ACOS-3200
Date: Thu, 04 Mar 2010 20:46:23 GMT
Content-Type: text/plain
Content-Length: 4096
Last-Modified: Fri, 29 Jan 2010 00:37:46 GMT
Age: 230
Via: ACOS-CACHE-2.4:130
Insertion of these headers is enabled by default. You can disable insertion of the Age and Via headers,
in individual RAM caching templates.
• If a cache policy is configured, ACOS checks if the URI in the request matches any of the URIs
configured for the cache policy. If there is a match, the configured action (invalidate, cache,
nocache) is remembered for that request.
• ACOS checks to see if response should be cached based on request processing results.
• If the response is cacheable, ACOS ignore the Cache-Control from server response.
In summary, the server’s cache-control header in the HTTP response can override the cache policy. The
default-policy-nocache only applies when there is a cache policy configured but there is no URI
match.
page 413
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Dynamic Caching
• A response for a request that uses any method other than GET is not cached.
• Responses that contain a Set-Cookie or a Set-Cookie2 header are not cached. (Responses with
Cookie headers often contain information that is specific to the user and so should not be
cached.)
• If the response type is FIN terminated, or the response does not have one of the following attri-
butes: Content-Length, or Transfer-Encoding: Chunked, it is not cached.
ACOS RAM caching does not cache responses that contain cookies. In configurations that also use
cookie persistence, this behavior prevents server responses from being cached. You can enable the
ACOS device to remove cookies from server replies, so that the replies can be cached.
Image files are an exception; RAM caching can cache images that have cookies.
Dynamic Caching
You can enhance RAM caching performance with dynamic RAM caching. Dynamic RAM caching is
useful in situations where the response to a client request can be used multiple times before the
response expires. Here are some examples where dynamic RAM caching is beneficial:
• The same response is usable by multiple users within a certain period of time. In this case,
dynamic RAM caching is useful even if the cache expiration period is very small, if enough users
access the response within that period. For example, dynamic RAM caching is beneficial for a
hierarchical directory that is generated dynamically but presents the same view to all users that
request it.
page 414
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Host Verification
• The response is usable by only a single user but the user accesses it multiple times. For example,
if the response generated in one session can be used unchanged in a second session.
Host Verification
RAM caching has an optional host verification feature. Host verification supports multiple name-based
virtual hosts. Name-based virtual hosts are host names that share the same IP address. For example,
the real server IP address 192.168.209.34 could be shared by the following virtual hosts:
• www.abc.com
• www.xyz.com
By default, host verification is disabled. When the ACOS device receives the server response for cache-
able content, the ACOS device caches the content along with the URI, but not the host name. For exam-
ple, if a client requests http://www.abc.com/index.html, the ACOS device caches the content and “/
index.html” but does not cache “abc.com”. If another request is received, for http://www.xyz.com/
index.html, the ACOS device serves the same content.
If you enable host verification, the ACOS device caches the host name along with the URI. For example,
for http://www.abc.com/index.html, the ACOS device caches the content, “/index.html”, and “abc.com”.
If a new request is received, for http://www.xyz.com/index.html, the ACOS device checks the cache for
content indexed by both “/index.html” and “xyz.com”. ACOS serves the content to the client only if the
content was cached for “xyz.com”.
1. Add the real servers that serve the content to be cached, if not already configured.
2. Configure a service group and add the real servers to it, if not already configured.
3. Configure a cache template with settings for the type and size of content to be cached. Optionally,
configure dynamic caching policies.
4. Configure the virtual server, and bind the service group and cache template to the service ports for
which caching will be provided.
page 415
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring RAM Caching
• Basic Configuration
Basic Configuration
The commands in this example enable RAM caching for virtual service port TCP 80 on VIP “cached-
vip”.
These commands add a RAM caching template using default template settings.
The following commands configure the virtual server and bind the RAM caching template and the ser-
vice group to virtual HTTP service port 80.
page 416
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring RAM Caching
The following command shows client sessions. Asterisks ( * ) in the Reverse Source and Reverse Dest
fields indicate that the ACOS device directly served the requested content to the client from the ACOS
RAM cache. In this case, the session is actually between the client and the ACOS device rather than the
real server.
Prot Forward Source Forward Dest Reverse Source Reverse Dest Age
---------------------------------------------------------------------------------------
Tcp 10.10.10.61:25058 10.10.10.10:80 * * 600
Tcp 10.10.10.60:9239 10.10.10.11:80 * * 600
Tcp 10.10.10.61:1838 10.10.10.10:80 * * 600
Tcp 10.10.10.65:47834 10.10.10.11:80 * * 600
Tcp 10.10.10.62:55613 10.10.10.11:80 * * 600
Tcp 10.10.10.57:9233 10.10.10.11:80 * * 600
Total
---------------------------------------------------------------
Cache Hits 0
Cache Misses 6
Memory Used 27648
Bytes Served 0
page 417
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring RAM Caching
Entries Cached 6
Entries Replaced 0
Entries Aged Out 0
Entries Cleaned 0
Total Requests 0
Cacheable Requests 0
No-cache Requests 0
No-cache Responses 0
IMS Requests 0
304 Responses 0
Revalidation Successes 0
Revalidation Failures 0
Policy URI nocache 0
Policy URI cache 0
Policy URI invalidate 0
Content Too Big 0
Content Too Small 0
Srvr Resp - Cont Len 220
Srvr Resp - Chnk Enc 37
Srvr Resp - 304 Status 0
Srvr Resp - Other 0
Cache Resp - No Comp 383579
Cache Resp - Gzip 0
Cache Resp - Deflate 0
Cache Resp - Other 0
Entry create failures 0
The Status column indicates the status. In this example, all entries are fresh (FR). For more informa-
tion, see the Command Line Interface Reference.
page 418
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring RAM Caching
http://x.y.com/list
http://x.y.com/private?user=u1
http://x.y.com/add?a=p1&b=p2
http://x.y.com/del?c=p3
Dynamic RAM caching policies can be used to effectively manage caching for this site.
The /list URI is visited by many users and therefore should be cached, so long as the content is current.
However, the /private URI contain private data for a specific user, and should not be cached.
The /add and /del URLs modify the content of the list page. When either type of URI is observed by the
ACOS device, the currently cached content for the /list URI should be invalidated, so that new requests
for the URI are not served with a stale page.
The following commands implement the dynamic RAM caching configuration described above.
The policy that matches on “/list” caches content for 50 minutes. The policy that matches on “/private”
does not cache content. The policies that match on “/add” and “/del” invalidate the cached “/list” con-
tent.
This policy is configured to flush (invalidate) all cached entries that have “/story” in the URI. The policy
is activated when a request is received with the URI “/flush”.
page 419
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring RAM Caching
page 420
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
• Overview
page 421
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview
Overview
ACOS supports Transparent Cache Switching (TCS). TCS enables you to improve server response
times by redirecting client requests for content to cache servers containing the content. Figure 53
shows an example topology.
In this example, a client sends a request for content that is hosted by the content server. ACOS redi-
rects the client’s request to the cache server. If the cache server has the requested content, the cache
server sends the content to the ACOS device, which sends the content to the client.
If the content is cacheable, but the cache server does not have the requested content or the content is
stale, the cache server requests the content from the content server, caches the content, then sends
the content to the ACOS device, which sends the content to the client.
page 422
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview
Granularity of TCS
You can configure Layer 4 TCS or Layer 7 TCS.
• Layer 4 TCS – Sends all TCP or UDP traffic addressed to the content server to the cache server
instead
• Layer 7 TCS – You can configure Layer 7 TCS with either of the following levels of granularity:
• Sends all HTTP requests to the cache server and sends all other requests to the content server
• Sends HTTP requests for specific URLs to the cache server; sends other requests to the con-
tent server
For even greater control, you can configure the ACOS device to select from among multiple cache ser-
vice groups based on the requested URL. When combined with destination-IP persistence, this method
allows you to control initial selection of the cache service group, after which the ACOS device always
sends requests for the same content to the same cache server within the cache service group.
Application Templates
TCS does not require configuration of any application templates. However, you can use the following
types of application templates for advanced features, such as URL-based Layer 7 TCS:
• HTTP template – If you want to selectively redirect client requests based on URL strings, you can
use an HTTP template containing URL switching rules. When a client request matches the URL
string in a URL switching rule, the ACOS device selects the service group specified in the URL
switching rule, instead of the service group bound to the virtual port.
For example, you can configure a URL switching rule that matches on any URL that contains
“.mycorp/”. In this case, requests for any URL that contains “.mycorp/” are sent to the service
group that contains the cache server. Requests for other URLs are sent to the gateway router
instead.
In Layer 7 TCS configurations using URL switching, a separate real server is required for the gate-
way router, and the real server must be placed in its own service group. The gateway router’s ser-
vice group is the default service group for the virtual port. Client requests to a URL that does not
match a URL switching rule are sent to the gateway router’s service group instead of the cache
server’s service group.
page 423
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 TCS
• Destination-IP persistence template – In deployments that use multiple cache servers, you can
use a destination-IP persistence template to ensure that the same cache server is used for every
request for content on a given content server. ACOS uses standard SLB to select a cache server
for the first request to a real server IP address, and assigns a hash value to the server. All subse-
quent requests for the same real server are sent to the same cache server.
By always using the same cache server for content from a given server, a destination-IP per-
sistence template can reduce duplication of content on multiple cache servers, and can also
reduce cache misses.
• RAM caching template – To also cache some content on the ACOS device itself, you can use a
RAM caching template. In this case, the ACOS device directly serves content that is cached on
the ACOS device, and only sends requests to the cache server for content that is not cached on
the ACOS device.
• Connection reuse template – You can use a connection reuse template to reuse TCP connec-
tions. When a client’s session ends, the TCP connection is not terminated. Instead, the connec-
tion is reused for a new client session.
1. Configure the interfaces connected to the clients, the content servers, and the cache server.
Enable promiscuous VIP on the ACOS interface(s) connected to the clients.
2. Configure an extended ACL that uses the permit action and that matches on client addresses as
the source address, and on the content server address as the destination address.
3. Configure a real server for the cache server. Add the TCP or UDP port; for example, TCP port 80.
page 424
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 TCS
If the cache server spoofs client IP addresses when requesting content from content servers,
enable cache spoofing support.
4. Configure a service group for the cache server and add the cache server to it.
5. Configure a virtual server with virtual IP address 0.0.0.0 (the wildcard VIP address) and bind it to
the ACL.
Add virtual port 80 and bind it to the service group containing the cache server. Disable destination
NAT on the virtual port.
6. If the cache server spoofs client IP addresses when requesting content from content servers,
enable cache spoofing on the ACOS interface connected to the cache server and on the real
(cache) server.
page 425
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 TCS
CLI Example
The commands in this section implement the TCS configuration shown in Figure 54.
These commands configure the ACOS interface to the client. Promiscuous VIP is enabled on the inter-
face.
ACOS(config)# vlan 4
ACOS(config-vlan:4)# tagged ethernet 4
ACOS(config-vlan:4)# router-interface ve 4
ACOS(config-vlan:4)# exit
ACOS(config)# interface ve 4
ACOS(config-if:ve:4)# ip address 192.168.19.1 255.255.255.0
ACOS(config-if:ve:4)# ip allow-promiscuous-vip
ACOS(config-if:ve:4)# exit
The following commands configure the ACOS interface to the content server.
ACOS(config)# vlan 2
page 426
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 4 TCS
This command configures an extended ACL to match clients and the content server. The ACL in this
example matches on any source address (client IP address) and on the destination IP address of the
content server.
The following commands configure a real server for the cache server. TCP port 80 is added to the real
server.
The following commands configures a service group for the cache server:
The following commands configure a wildcard VIP and bind it to the ACL:
page 427
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 7 TCS
• Service type HTTP without URL switching rules – This method redirects all HTTP traffic to the
cache server. The configuration steps are very similar to those for Layer 4 TCS. The only differ-
ence is use of HTTP instead of TCP or UDP as the service type of the virtual port.
• Service type HTTP with URL switching rules – This method uses an HTTP template containing
URL switching rules. Traffic that matches a URL switching rule is redirected to the cache server.
Other traffic is sent to the gateway router.
This method requires configuration of a separate real server and service group for the gateway
router.
Figure 55 on page 429 shows an example of the first method, which does not use URL switching rules.
Figure 56 on page 430 shows an example of the second method, which does use URL switching rules.
page 428
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 7 TCS
page 429
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 7 TCS
1. Configure the interfaces connected to the clients, the content servers, and the cache server.
Enable promiscuous VIP on the ACOS interface(s) connected to the clients.
2. Configure an extended ACL that uses the permit action and that matches on client addresses as
the source address, and on the content server address as the destination address.
3. Configure a real server for the cache server. Add the TCP port; for example, TCP port 80.
4. Configure a service group for the cache server and add the cache server to it.
5. Configure a virtual server with virtual IP address 0.0.0.0 (the wildcard VIP address) and bind it to
the ACL.
page 430
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 7 TCS
Add virtual port 80 with service type HTTP and bind it to the service group containing the cache
server. Enable disable destination NAT on the virtual port.
CLI Example
The commands in this section implement the TCS configuration shown in Figure 55 on page 429. The
commands for configuring the interfaces and ACL, and the real server and service group for the cache
server, are the same as those used in the Layer 4 TCS example, and are therefore not shown.
The following commands configure a wildcard VIP and bind it to the ACL:
1. Configure the interfaces connected to the clients, the content servers, and the cache server.
Enable promiscuous VIP on the ACOS interface(s) connected to the clients.
2. Configure an extended ACL that uses the permit action and that matches on client addresses as
the source address, and on the content server address as the destination address.
3. Configure a real server for the cache server. Add the TCP or UDP port; for example, TCP port 80.
4. Configure a real server for the next-hop router through which the ACOS device will reach the con-
tent servers. Add the same TCP port number as the one on the cache server (for example, TCP port
80). Disable health checking on the port.
The configuration requires health checking to be disabled on the router port. The router will not
respond to the health check. If you leave health checking enabled, the ACOS device will mark the
port down and TCS will not work.
5. Configure a service group for the cache server and add the cache server to it.
6. Configure a separate service group for the router, and add the router to it.
7. Configure an HTTP template with URL switching rules. Add a separate URL switching rule for each
URI string based on which to select a service group.
8. Configure a virtual server with virtual IP address 0.0.0.0 (the wildcard VIP address) and bind it to
the ACL.
Add virtual port 80 with service type HTTP and bind it to the service group containing the cache
server. Bind the virtual port to the HTTP template. Enable disable destination NAT.
page 431
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 7 TCS
Add virtual port 0 with service type HTTP and bind it to the service group containing the router.
Enable disable destination NAT.
CLI Example
The commands in this section implement the TCS configuration shown in Figure 56 on page 430. The
commands for configuring the interfaces and ACL, and the real server and service group for the cache
server, are the same as those used in the Layer 4 TCS example, and are therefore not shown.
The following commands configure a real server for the gateway router:
The following commands configure an HTTP template containing URL switching rules. Client requests
for any URL that contains “.examplecorp/” or “.mycorp/” will be redirected to the service group for the
cache server. Requests for any other URL will instead be sent to the service group for the router.
The following commands configure a wildcard VIP and bind it to the ACL:
page 432
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 7 TCS
Commands in this section implement the TCS configuration shown in Figure 57. Only commands spe-
cific to destination-IP persistence are shown. The other commands are the same as those in the previ-
ous sections.
page 433
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Layer 7 TCS
The match-type service-group command is required to enable URL switching and persistence in the
same configuration.
The following commands configure the VIP. The commands are the same as those used for Layer 7
TCS, with the addition of a command to bind the destination-IP persistence template to the virtual port.
1. Enable cache spoofing support on the ACOS interface connected to the spoofing cache server.
Use the ip cache-spoofing-port command at the interface configuration level.
2. In the real server configuration for the cache server, enable spoof caching support. Use the spoof-
ing-cache command at the real server configuration level.
The commands in this section enable cache spoofing support for the TCS configuration shown in
Figure 57.
page 434
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 TCS in VRRP-A High Availability Layer 3 Inline Mode
page 435
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 TCS in VRRP-A High Availability Layer 3 Inline Mode
Interface Parameters
In this configuration, each ACOS device connects to the client, cache servers, and content server on a
single IP interface:
• Promiscuous VIP – Must be enabled on the interface connected to clients and the IP interface
assigned to the VE on the VLAN containing the interfaces to the clients, content servers, and
cache servers.
• Cache spoofing – If the cache server will spoof client IP addresses when requesting content
from content servers, enable cache spoofing support on the ACOS interface connected to the
cache server.
This configuration uses the following VRRP-A high availability parameters. The last two in this list apply
specifically to inline mode. The other parameters apply to all types of VRRP-A configurations.
• VRID and priority – A single VRID is configured, with a higher priority on ACOS-1.
• Pre-emption – Pre-emption is enabled, to force initial failover to the ACOS device with the higher
priority.
• VRRP-A interfaces – Ethernet interfaces 1, 3, and 6 are configured as VRRP-A interfaces. Inter-
faces 1 and 3 are the lead interfaces in trunks, so all the interfaces in these trunks are VRRP-A
interfaces.
• Session synchronization (connection mirroring) – Each ACOS device is enabled, when in Active
role, to synchronize its sessions onto the other ACOS device.
• Floating IP address – Both ACOS devices share floating IP address 10.10.10.250 for the VRID.
• Restart port list – Interfaces 1 to 5 and interface 9 are designated as inline-mode restart ports.
This includes the ACOS interfaces with the client, cache servers, and content server. Interface 6
is the dedicated HA link between the ACOS devices and is not included in the restart list.
SLB Parameters
page 436
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 TCS in VRRP-A High Availability Layer 3 Inline Mode
• Port type – A Layer 4 port type, such as TCP, should be used. HA session synchronization is sup-
ported only for Layer 4 sessions.
• Cache spoofing – If the cache server will spoof client IP addresses when requesting content
from content servers, enable cache spoofing support on the real server configuration for the
cache server.
• Members – Add the real servers configured for the cache servers.
In a Layer 7 TCS configuration that uses URL switching, a separate real server is required for the gate-
way router, and the real server is required to be placed in its own service group. (See “Configuring Layer
7 TCS” on page 428.) The example in Figure 58 on page 435 does not use Layer 7 switching.
• VIP – The VIP address must be 0.0.0.0 (a wildcard VIP). The ACL associated with the VIP must
be an extended ACL that uses the permit action and that matches on client addresses as the
source address, and on the content server address as the destination address:
• Service type – The service type of the TCS virtual port must be a Layer 4 service type (TCP).
• Session synchronization – Enable this feature so that customer sessions are synchronized from
the Active ACOS device to the standby ACOS device.
NOTE: Client sessions will be reset if a failover occurs. In most cases, the reset
will not be noticeable. However, if a client is downloading a large file, the
reset may be noticeable, because the download progress is not retained
after the session is reset.
Templates
For simplicity, the sample configuration in this section does not use any custom templates. For infor-
mation about the templates that can be used with TCS, see “Application Templates” on page 423.
The following CLI examples show how to implement the configuration shown in Figure 58 on page 435.
page 437
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 TCS in VRRP-A High Availability Layer 3 Inline Mode
ACOS-1 Configuration
The following commands configure the links:
page 438
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 TCS in VRRP-A High Availability Layer 3 Inline Mode
The following commands configure static routes. One of the routes goes to the subnet on the other
side of the router that connects the ACOS device to the content servers. The other static route goes to
the subnet on the other side of the router that connects the ACOS device to the client.
The following command configures an extended ACL that uses the permit action and that matches on
client addresses as the source address, and on the content server address as the destination address:
The following commands configure real servers for the cache servers:
page 439
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 TCS in VRRP-A High Availability Layer 3 Inline Mode
The following commands configure a service group for the real servers:
ACOS-2 Configuration
The commands on ACOS-2 are the same as the ones on ACOS-1, with the following exceptions:
• The ip address command on the VE adds a unique IP address (not the address of the other
ACOS device).
• The vrid command assigns VIRD 2 instead of VRID 1.
page 440
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 TCS in VRRP-A High Availability Layer 3 Inline Mode
ACOS-2(config-if:ethernet:3)# ip allow-promiscuous-vip
ACOS-2(config-if:ethernet:3)# trunk-group 3
ACOS-2(config-if:ethernet:3-trunk-group:3)# exit
ACOS-2(config-if:ethernet:3)# exit
ACOS-2(config)# interface ethernet 4
ACOS-2(config-if:ethernet:4)# enable
ACOS-2(config-if:ethernet:4)# trunk-group 3
ACOS-2(config-if:ethernet:4-trunk-group:3)# exit
ACOS-2(config-if:ethernet:4)# exit
ACOS-2(config)# vlan 11
ACOS-2(config-vlan:11)# untagged ethernet 3 to 6
ACOS-2(config-vlan:11)# tagged ethernet 1 to 2
ACOS-2(config-vlan:11)# router-interface ve 11
ACOS-2(config-vlan:11)# exit
ACOS-2(config)# interface ethernet 5
ACOS-2(config-if:ethernet:5)# enable
ACOS-2(config-if:ethernet:5)# ip cache-spoofing-port
ACOS-2(config-if:ethernet:5)# exit
ACOS-2(config)# interface ve 11
ACOS-2(config-if:ve11)# ip address 10.10.10.2 255.255.255.0
ACOS-2(config-if:ve11)# ip allow-promiscuous-vip
ACOS-2(config-if:ve11)# exit
ACOS-2(config)# ip route 20.20.20.0 /24 10.10.10.20
ACOS-2(config)# ip route 192.168.19.0 /24 10.10.10.254
ACOS-2(config)# access-list 198 permit ip any host 20.20.20.11 log
ACOS-2(config)# vrrp-a common
ACOS-2(config-common)# device-id 1
ACOS-2(config-common)# set-id 1
ACOS-2(config-common)# enable
ACOS-2(config-common)# disable-default-vrid
ACOS-2(config-common)# exit
ACOS-2(config)# vrrp-a l3-inline-mode
ACOS-2(config)# vrrp-a vrid 2
ACOS-2(config-vrid:1)# floating-ip 10.10.10.250
ACOS-2(config-vrid:1)# blade-parameters
ACOS-2(config-vrid:1-blade-parameters)# priority 180
ACOS-2(config-vrid:1-blade-parameters)# exit
ACOS-2(config-vrid:1)# exit
ACOS-2(config)# vrrp-a interface ethernet 6
ACOS-2(config-ethernet:6)# vlan 11
ACOS-2(config-ethernet:6)# exit
ACOS-2(config)# vrrp-a restart-port-list
ACOS-2(config-restart-port-list)# ethernet 1 to 5
ACOS-2(config-restart-port-list)# ethernet 9
page 441
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv4 TCS in VRRP-A High Availability Layer 3 Inline Mode
ACOS-2(config-restart-port-list)# exit
ACOS-2(config)# slb server cache1 10.10.10.10
ACOS-2(config-real server)# spoofing-cache
ACOS-2(config-real server)# port 80 tcp
ACOS-2(config-real server-node port)# exit
ACOS-2(config-real server)# exit
ACOS-2(config)# slb server cache2 10.10.10.11
ACOS-2(config-real server)# spoofing-cache
ACOS-2(config-real server)# port 80 tcp
ACOS-2(config-real server-node port)# exit
ACOS-2(config-real server)# exit
ACOS-2(config)# slb service-group sg-cache-80 tcp
ACOS-2(config-slb svc group)# member cache1 80
ACOS-2(config-slb svc group)# member cache2 80
ACOS-2(config-slb svc group)# exit
ACOS-2(config)# slb virtual-server wildcard 0.0.0.0 acl 198
ACOS-2(config-slb vserver)# vrid 2
ACOS-2(config-slb vserver)# port 80 tcp
ACOS-2(config-slb vserver-vport)# service-group sg-cache-80
ACOS-2(config-slb vserver-vport)# no-dest-nat
ACOS-2(config-slb vserver-vport)# ha-conn-mirror
page 442
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv6 TCS in VRRP-A Layer 3 Inline Mode
The configuration requirements and syntax are the same as for IPv4. The only difference is use of IPv6
addresses instead of IPv4 addresses.
page 443
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv6 TCS in VRRP-A Layer 3 Inline Mode
ACOS-1 Configuration
The following commands configure the links.
These commands configure static routes. One of the routes goes to the subnet on the other side of the
router that connects the ACOS device to the content servers. The other static route goes to the subnet
page 444
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv6 TCS in VRRP-A Layer 3 Inline Mode
on the other side of the router that connects the ACOS device to the client. CPU processing is also
enabled on the routes.
The following commands configure an IPv6 ACL that uses the permit action and that matches on client
addresses as the source address, and on the content server address as the destination address:
The following commands configure a custom ICMP health monitor with very short interval and timeout
values. In Layer 3 inline VRRP-A configurations, the short interval and timeout values help eliminate
traffic disruption following a failover.
page 445
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv6 TCS in VRRP-A Layer 3 Inline Mode
The following commands configure ICMP health checking for the upstream and downstream routers.
The health checks help ensure rapid VRRP-A failover. (See the Configuring VRRP-A High Availability
guide.) The custom ICMP health monitor configured above is also used.
The following commands configure real servers for the cache servers:
The following commands configure a service group for the real servers (cache servers):
page 446
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv6 TCS in VRRP-A Layer 3 Inline Mode
ACOS-2 Configuration
Here are the configuration commands for ACOS-2. Most of the commands are exactly the same as on
ACOS-1. Only the following values differ:
• VRID priority
page 447
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv6 TCS in VRRP-A Layer 3 Inline Mode
page 448
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring IPv6 TCS in VRRP-A Layer 3 Inline Mode
page 449
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring TCS for FTP
When a client sends a request to the FTP server, the ACOS device intercepts the request and forwards
it to the FTP cache server. The cache server then forwards the requested content to the ACOS device, if
the content is cached. ACOS forwards the content to the client.
If the requested content is not already cached, the cache server obtains the content from the FTP
server and caches it. ACOS forwards the content to the client.
Each cache server in this example has two physical interfaces. One of the interfaces receives client
requests forwarded by the ACOS device. The other interface communicates with the FTP server, and
forwards cached content to the ACOS device. Only the interfaces that receive client requests from the
ACOS device need to be configured as real servers.
page 450
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring TCS for FTP
NOTE: In this example, the content transferred by FTP is cached on the cache
servers. However, this feature also can be used if the device is a firewall
instead of an FTP cache server. In that case, the firewall is used to exam-
ine the traffic that is transferred to or from the FTP server by the client.
Configuration
To configure TCS for FTP:
1. Configure the interfaces connected to the clients, the content servers, and the cache server.
• Enable promiscuous VIP on the ACOS interface(s) connected to the clients.
• Enable cache spoofing on the interface(s) connected to the cache server.
2. Configure an extended ACL that uses the permit action and that matches on client addresses as
the source address, and on the content server address as the destination address.
3. Configure a real server for the cache server. Add an FTP port to the server.
If the cache server will spoof client IP addresses when requesting content from content servers,
enable cache spoofing support.
If the cache server has multiple interfaces, configure a separate real server for each one.
4. Configure a real server for the next-hop router through which the ACOS device will reach the con-
tent servers. Add the same FTP port number as the one on the cache server (for example, port 21).
Disable health checking on the port.
The configuration requires health checking to be disabled on the router port. The router will not
respond to the health check. If you leave health checking enabled, the ACOS device will mark the
port down and TCS will not work.
5. Configure a service group for the cache servers and add them to it.
6. Configure a separate service group for the router, and add the router to it.
7. Configure a virtual server with virtual IP address 0.0.0.0 (the wildcard VIP address) and bind it to
the ACL.
Add an FTP virtual port and bind it to the service group containing the cache server, and to the ser-
vice group containing the router. Disable destination NAT on the virtual port.
CLI Example
These commands configure the ACOS interfaces to the FTP server, the FTP client, and the cache serv-
ers.
page 451
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring TCS for FTP
ACOS(config-if:ethernet:1)# exit
ACOS(config)# interface ethernet 2
ACOS(config-if:ethernet:2)# enable
ACOS(config-if:ethernet:2)# ip address 192.168.19.254 255.255.255.0
ACOS(config-if:ethernet:2)# ip allow-promiscuous-vip
ACOS(config-if:ethernet:2)# exit
ACOS(config)# interface ethernet 5
ACOS(config-if:ethernet:5)# enable
ACOS(config-if:ethernet:5)# ip address 12.12.12.254 255.255.255.0
ACOS(config-if:ethernet:5)# ip cache-spoofing-port
ACOS(config-if:ethernet:5)# exit
ACOS(config)# interface ethernet 6
ACOS(config-if:ethernet:6)# enable
ACOS(config-if:ethernet:6)# ip address 11.11.11.254 255.255.255.0
ACOS(config-if:ethernet:6)# ip cache-spoofing-port
ACOS(config-if:ethernet:6)# exit
This command configures an extended ACL to match clients and the content server. The ACL in this
example matches on any source address (client IP address) and on the destination IP address of the
content server.
The following commands configure real servers for FTP on each of the cache servers. Cache spoofing
is enabled and TCP port 21 is added to each real server.
The following commands configure an FTP service group for the cache server:
page 452
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Bandwidth Limits Per Server or Port
The following commands configure a wildcard VIP traffic and bind it to the ACL. The FTP virtual port is
bound to the FTP and router service groups. Also, destination NAT is disabled.
This feature can be deployed for either Server Load Balancing (SLB) or Transparent Cache Switching
(TCS) topology. In the TCS deployment considered in Figure 61, there is SLB and TCS traffic flow:
To calculate the bandwidth for a real server or real port given both SLB traffic and TCS traffic flows
through ACOS, the traffic rate is computed by counting the total bytes processed, corresponding to
actual packets sent to and received from the real server (cache server) within a one second interval.
1. Client request packets are sent to the cache server (SLB session in orange).
2. Request packets are received from the cache server destined to the Internet (TCS session in blue).
3. Internet server response packets are sent to the cache server (TCS session in blue).
4. Response packets received from the cache server to be sent to the client (SLB session in orange).
page 453
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Bandwidth Limits Per Server or Port
Upon receiving a client request packet, ACOS will create an SLB session and then forward that packet
to the cache server. The bytes in this request packet sent by ACOS to the cache server will count
towards the traffic rate seen by the cache server.
Similarly when the cache server sends a request to the Internet server, ACOS will create a transparent
session and subsequently such packets will be counted for the bandwidth computation.
Next when the Internet server response is received, it will be transmitted to the cache server and this
packet length will count towards the cache server bandwidth computation.
Lastly when the cache server sends a response, the packet length will be counted towards the cache
server bandwidth computation.
When the load exceeds the configured limit and duration interval, that cache server will no longer be
included as part of the server selection process for newer flows. However, existing sessions continue
to be processed and forwarded to the cache server.
If a persist template is configured with dont-honor-conn-rules, the real server/port will continue to be
selected for new sessions, regardless of the threshold limit.
The following example shows how to configure the bandwidth rate limit of 1000 Kbps to exclude a real
server from receiving new traffic flows when the threshold is exceeded for a duration of 5 seconds. The
server will resume accepting new traffic flows after the bandwidth drops below 800 Kbps for a duration
of 5 seconds. The rate limit messages will not be logged.
If the measured traffic rate is greater than the configured bw-rate-limit consistently for the specified
duration, it will be considered in 'exceed' state. Once it is in 'exceed' state, the measured traffic rate
needs to fall below the resume threshold consistently for the specified duration to be considered in
'resume' state. Exceed and resume state transition is then logged (once per state change per real port
or real server within a 60 second interval). Logging is enabled by default.
If this feature is enabled along with a feature, such as system resource template, that tracks bandwidth
usage on a partition or resource and then takes action to drop packets exceeding the resource tem-
page 454
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Bandwidth Limits Per Server or Port
plate threshold, inconsistent computation of the underlying bandwidth rate for traffic from the real
server may result.
For more information, see “slb template server” in the Command Line Interface Reference.
To configure the accounting for bw-rate-limit, use the bw-rate-limit-acct command. This command
is only available for SLB server template configuration, and not for SLB port templates. Upon binding a
server template under a real server with this option, all real ports under the real server will automatically
be subject to the same accounting method.
The following example shows how to configure the bandwidth rate limit accounting only for traffic
received from the real server.
For more information, see “slb template server” in the ADC-CLI Command Line Interface Reference.
page 455
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Bandwidth Limits Per Server or Port
page 456
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS provides a more optimal Transparent Cache Switching (TCS) solution that is based on hash of
the destination IP address for persistence instead of session persistence based on destination IP
address. With this feature, ACOS does not create a persistent session. Instead, ACOS device uses a
hash based on the available number of servers that are in an “UP” state in the service group.
1. Three cache servers (cache server 1, cache server 2, and cache server 3) are configured with desti-
nation IP hash persistence and bound to a virtual port.
2. Cache server 1 temporarily goes down.
3. Traffic that was persisting to cache server 1 will be distributed between the remaining two cache
servers, cache server 2 and cache server 3 (with a hash base of 2, since only 2 servers are opera-
tional and available to calculate persistence).
4. Traffic sent to cache server 2 and cache server 3 will continue to be sent to the servers. This traffic
will not be recalculated. Only traffic that is configured to “persist” to cache server 1 gets recalcu-
lated. Redistribution is resumed and traffic is distributed among the total number of functional
servers.
To configure destination IP address hash persistence using the GUI, do the following:
page 457
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
From the destination-ip persist template, configure TCS destination IP address hash persistence.
1. To ensure that the destination IP address hash calculation will persist even after a server fails,
enter the following commands, where “dhash” is the name of the template that you are creating for
destination IP hash persistence:
ACOS-Active(config)# slb template persist destination-ip dhash
ACOS-Active(config-destination ip persist)# hash-persist
ACOS-Active(config-destination ip persist)# exit
page 458
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes how to configure the ACOS device to secure Simple Mail Transfer Protocol
(SMTP) mail using STARTTLS.
• Overview of STARTTLS
• Configuring STARTTLS
Overview of STARTTLS
STARTTLS is an extension to SMTP that enables you to secure mail traffic to and from your legacy
SMTP servers. SMTP itself does not provide any security.
When the ACOS device is configured to perform STARTTLS, the ACOS acts as a proxy between SMTP
clients and servers. In client-side SSL, mail traffic to and from clients is encrypted by the ACOS,
whereas traffic between the ACOS and the SMTP servers is clear (not encrypted). With the server-side
option, the traffic between the ACOS and the SMTP server is encrypted, but traffic to and from clients is
not encrypted. It is possible to configure the encryption for client, server, or both.
page 459
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of STARTTLS
• Require STARTTLS – By default, use of STARTTLS is optional. You can configure the ACOS to
require STARTTLS. In this case, before any mail transactions are allowed, the client must issue
the STARTTLS command to establish a secured session.
Client-side - if the client does not issue the STARTTLS command, the ACOS sends the following
message to the client: "530 - Must issue a STARTTLS command first”
Server-side - if a server responds without 250-STARTTLS, this will result in an error.
• Disable SMTP commands – By default, the VRFY, EXPN, and TURN commands are allowed. You
can disable support of any of these commands. In this case, if the client tries to issue a disabled
SMTP command, the ACOS sends the following message to the client: “502 - Command not
implemented”
page 460
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring STARTTLS
Domain Switching
By default, SMTP traffic from all client domains is sent to the same service group. You can configure
multiple service groups and send traffic to the groups based on client domain. For example, you can
send SMTP traffic from clients in domain "CorpA" to a different service group than SMTP traffic from
clients in domain "CorpB".
Configuring STARTTLS
Below is an overview of the steps required to configure STARTTLS:
1. Import a certificate and its key to use for TLS sessions with clients.
2. Configure a client SSL template and add the certificate and its key to it.
3. Configure a real server for each SMTP server and add the SMTP port to the server.
page 461
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring STARTTLS
4. Configure a service group for the SMTP servers and add them to the group.
5. Configure an SMTP template. Within the template:
a. Specify the email server domain. The default is “mail-server-domain”.
b. Optionally, modify the service ready message. The default message text is "ESMTP mail service
ready". The complete message sent to the client is constructed as follows:
200 - smtp-domain service-ready-string
c. Optionally, disable one or more of the following SMTP commands: VRFY, EXPN, or TURN. If a
client sends an SMTP command that is disabled on the ACOS, the ACOS sends the following
message to the client: “502 - Command not implemented”
d. Optionally, change STARTTLS from being optional to being required. If you leave the setting
"optional", mail clients will be able to send and receive unencrypted mail.
e. Optionally, load balance SMTP traffic among multiple service groups based on client domains.
6. Configure a virtual server and port for the SMTP address to which clients will send SMTP traffic,
and add the SMTP service group and SMTP template to the port.
page 462
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring STARTTLS
Configure a client SSL template and add the certificate and key to the template:
page 463
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring STARTTLS
page 464
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring STARTTLS
The following commands configure a client SSL template to use the certificate and key:
The following commands configure a service group for the SMTP servers:
page 465
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring STARTTLS
The following commands configure the STMP template. In this example, additional security is added by
enforcing STARTTLS and by disabling the SMTP commands VRFY, EXPN, and TURN.
The following commands configure the VIP to which mail clients will send SMTP traffic:
The following commands configure the SMTP template to enforce the use of server-side STARTTLS:
This command configures the server template to ensure that the connection to the server is over SSL:
These commands configure the VIP for encrypting traffic to and from the Internet mail servers.
page 466
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
STARTTLS for IMAP and POP3
STARTTLS Statistics
To display STARTTLS statistics, use the show slb smtp command at the Privileged EXEC level or any
configuration level of the CLI.
For more information, see “show slb smtp” in the Command Line Interface Reference for ADC.
The current IMAP specification allows for the Login command to come in clear text. With the START-
TLS support, the servers have the ability to specify whether the Login is supported in clear text or not.
The LOGINDISABLED has to be sent as part of the capability response by server to indicate that the
server expects the Login to be supported only in encrypted format. Within the ACOS device, this can be
enabled/disabled by configuring an IMAP template. If the ACOS device sends the LOGINDISABLED
command, then it expects the Login to come only after the STARTTLS is done. If the login is issued by
the client before STARTTLS, the ACOS device will send no response.
As per the RFC, STARTTLS is valid only in the non-authenticated state. In this version of the release,
since the ACOS device is only supporting offload and there is no requirement yet to conform to the pro-
tocol (most of the protocol compliance is handled by the server), the device will not track when the
STARTTLS is sent. From the point of view of the ACOS device, when the client sends STARTTLS, it
expects the SSL handshake to occur. To configure IMAP for STARTTLS, assign it to a virtual port and
include this port within an SLB virtual server. The following shows an example CLI configuration for
enabling this.
page 467
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
STARTTLS for IMAP and POP3
page 468
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes SLB for the Diameter AAA protocol. Diameter is a successor to RADIUS that pro-
vides security and other enhancements not supported in RADIUS.
Overview
Diameter load balancing enables the ACOS device to act as a proxy between Diameter clients and serv-
ers. Figure 66 shows an example.
page 469
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview
Diameter operates over TCP or SCTP. the ACOS device terminates the client’s Diameter connection,
and opens another Diameter connection with the selected server.
Clients send Diameter messages, such as authentication requests, to the VIP configured on the ACOS
device. ACOS uses SLB to select a Diameter server and forwards the client’s request to the server.
ACOS then forwards the server’s reply to the client.
The clients and real servers can be connected to the ACOS device on Layer 2 or Layer 3.
Source NAT
Source NAT is required for traffic between the ACOS device and the Diameter servers. ACOS estab-
lishes a separate connection to each Diameter server before any client requests arrive. The NAT
address(es), consisting of source IP address and source TCP port, uniquely identify the connections.
Load-Balancing
Diameter load balancing requires the strict round-robin load balancing method.
Session-ID persistence is automatically enabled for Diameter virtual ports. After a server is selected for
a given client session, all requests for that session go to the same real server.
Optionally, you can configure multiple sets of service-group members (server:port pairs) that differ
based on member priority. In this case, the ACOS device uses only the members with the highest prior-
ity as long as they are available, and uses lower-priority members only if the high-priority members
become unavailable.
An additional option allows lower-priority members to temporarily be elevated to high priority to com-
pensate for high-priority members that are unavailable.
Health Monitoring
You can use the Layer 3 health method (ICMP ping) to test the IP reachability of each server. Layer 3
health monitoring is enabled by default.
You do not need to configure any Layer 4 or Layer 7 health monitors on the ACOS device for Diameter
load balancing. The Diameter protocol includes its own Layer 7 health method, the Device-Watchdog-
Request message. ACOS periodically sends Device-Watchdog-Request messages to each Diameter
real server. Each server must respond to its message within a configurable number of seconds or the
server is marked Down.
page 470
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Diameter Parameters
NOTE: You will need to disable Layer 4 health monitoring, which is enabled by
default. You can disable it individually in each server’s configuration, or
create a real port template for Diameter, disable the Layer 4 health moni-
tor in the template, and assign the template to the TCP port in each real
server configuration.
Application Templates
The following types of application templates are applicable to Diameter load balancing:
• TCP – Contains settings used for TCP connections between the ACOS device and Diameter cli-
ents and servers.
• Diameter – Contains the Diameter settings. (See “Diameter Parameters” on page 471.)
Optionally, you can configure the ACOS device to duplicate Accounting-Request messages and send
them to a separate service group. This option is useful for logging, accounting, and so on.
Session-ID persistence is used to send all duplicate messages for a given client’s session to the same
server in the service group.
ACOS does not send Accounting-Answer messages in response to duplicate Accounting-Request mes-
sages sent to the duplication service group.
High Availability
You can use a set of ACOS devices configured for High Availability (HA) to provide redundancy for
Diameter load balancing. Make sure to enable session synchronization (also called “connection mirror-
ing”) on the Diameter virtual port, to ensure that session-ID persistence is maintained across failovers.
Diameter Parameters
The following parameters are configurable in Diameter templates.
page 471
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Diameter Parameters
• Origin-host – Sets the value of Diameter AVP 264. This AVP can be a character string and speci-
fies the identity of the originating host for Diameter messages. Since the ACOS device acts as a
proxy for Diameter, this AVP refers to the ACOS device itself, not to the actual clients. From the
Diameter server’s standpoint, the ACOS device is the Diameter client.
Specify the origin-host in the following format: host.realm
The host is a string unique to the client (ACOS device). The realm is the Diameter realm, specified
by the origin-realm option (described below). There is no default.
• Multiple-origin-host – Prepends the ACOS CPU ID onto the origin-host string to identify the CPU
used for a given Diameter peer connection. By default, this option is disabled and the CPU ID is
not prepended onto the origin-host string.
ACOS establishes a separate peer connection with each Diameter server on each CPU. The multi-
ple-origin-host option does not enable or disable this behavior. The option simply shows or hides
the CPU ID in the origin-host string.
• Origin-realm – Sets the value of Diameter AVP 296. This AVP can be a character string and spec-
ifies the Diameter realm from which Diameter messages, including requests, are originated.
There is no default.
• Product-name – Sets the value of Diameter AVP 269. This AVP can be a character string and
specifies the product; for example, “a10dra”. There is no default.
• terminate-on-cca-t - Removes Diameter sessions when receiving the Server CCA-Termination
message, rather than waiting for the Client Session-Terminate-Request (STR).
• Vendor-ID – Sets the value of Diameter AVP 266. This AVP can be a numeric value and specifies
the vendor; for example, “156”. Make sure to use a non-zero value. Zero is reserved by the Diame-
ter protocol. There is no default.
• AVP insertion – Specifies custom AVP values to insert into Capabilities-Exchange-Request mes-
sages sent by the ACOS device to Diameter servers. For each custom AVP value to insert, you
must specify the following information:
avp-num [mandatory] {int32 | int64 | string} value
• avp-num – Diameter AVP number.
• mandatory – Sets the AVP mandatory flag on. By default, this flag is off (not set).
• int32 | int64 | string – Specifies the data format of the value to insert.
• value – Specifies the value to insert.
You can configure up to 6 custom AVP values.
• Customize-CEA – Replaces the AVPs in Capabilities-Exchange-Answer (CEA) messages with the
custom AVP values you configure before forwarding the messages. By default, this option is dis-
abled.
page 472
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Diameter Parameters
Optionally, use the message-code option to enable load balancing of additional Diameter message
codes, on an individual message-code basis. You can enable load balancing of up to 10 additional mes-
sage codes.
Timers
You can configure the following Diameter timers:
• Idle timeout – Specifies the number of minutes a Diameter session can remain idle before the
session is deleted. You can specify 1-65535 minutes. The default is 5 minutes.
• Session-age – Specifies the absolute limit for Diameter sessions. Any Diameter session that is
still in effect when the session age is reached is removed from the ACOS session table. You can
specify 1-65535 minutes. The default is 10 minutes.
• DWR-time – Specifies the maximum number of seconds the ACOS device will wait for the reply
to a device-watch-dog message sent to a Diameter server before marking the server Down. You
can specify 0-2147483647 milliseconds (ms), in 100-ms increments. The default is 10 seconds.
page 473
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Diameter Load Balancing
• DWR-up-retry – Specifies the number of Device Watchdog Request and Device Watchdog
Answer messages required to mark a server port as up. You can specify 1-7. The default is 3.
• Duplicate AVP – Specifies the Accounting-Request messages to duplicate, and the service group
to which to send the duplicates. You must specify the following information:
avp-num pattern service-group
• avp-num – Diameter AVP number.
• pattern – String pattern within the message.
• service-group – The duplication service group, which is the service group to which to send the
duplicate messages.
Notes
• To place the message duplication configuration into effect, you must unbind the Diameter tem-
plate from the Diameter virtual port, then rebind it.
• A Diameter template in which message duplication is configured can be bound to only a single
virtual port.
1. Configure a source NAT pool containing addresses in the same subnet as the Diameter servers.
2. Configure the real servers.
3. Configure the service group.
4. (Optional) Configure the real servers and service group for Accounting-Request message duplica-
tion.
5. Configure the Diameter template.
6. Configure the virtual server.
page 474
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Diameter Load Balancing
page 475
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Diameter Load Balancing
The port command changes the CLI to the configuration level for the virtual port.
Use the source-nat pool command to bind the virtual port to the source NAT pool:
Use the template diameter command to bind the virtual port to the Diameter template:
Use the service-group command to bind the virtual port to the service group:
7. To verify and monitor Diameter load balancing operation, use the show slb diameter and show slb
server commands.
Configuring Basic Diameter Load Balancing – Single ACOS Device (CLI Example)
This example configure the Diameter load-balancing deployment shown in Figure 66 on page 469.
The following commands configure the service group. In this example, diameter-rs3 is a backup.
page 476
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Diameter Load Balancing
These commands configure an additional set of real servers and a service group for duplicate Account-
ing-Request messages:
The following commands add the duplicate option to the Diameter template:
page 477
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Diameter Load Balancing
This option duplicates Accounting-Request messages with AVP 30 that contain the string “acct”, and
sends the duplicate messages to service group “diameter-duplicate-group”.
The duplicate service group does not need to be bound to the Diameter virtual port. Instead, the dupli-
cate option in the Diameter template takes care of this.
page 478
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes RADIUS message load balancing and how to configure it. These topics are cov-
ered:
page 479
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of RADIUS Message Load Balancing
In this example, all RADIUS requests received by the ACOS device have the same source and destina-
tion IP addresses. The source address is the address of a Broadband Remote Access Server (BRAS),
10.11.11.50. The destination IP address is a RADIUS VIP on the ACOS device, 10.11.11.90.
In this type of topology, wherein RADIUS requests for multiple clients arrive at the ACOS device with the
same source and destination addresses, using a UDP virtual port does not provide load balancing. This
is because the ACOS device uses the same session for all the requests.
Normally, the ACOS device sends all traffic on a given session to the same server. If a UDP virtual port
is used, the ACOS device uses the configured load balancing method to select a server for the first
request, then uses the same server (and data CPU) for all subsequent requests.
Figure 68 shows the traffic flow for RADIUS message load balancing.
page 480
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of RADIUS Message Load Balancing
• 1645
• 1646
• 1812
• 1813
• 12,000 – 28,000
• 42,000 – 58,000
Both the virtual port number and real port numbers must be in the list to support stateless load balanc-
ing.
Notes
• Stateless load balancing for RADIUS is supported only for the listed real and virtual port numbers.
• On ACOS models that use FTAs, using stateful and stateless load-balancing methods simultane-
ously is not supported for the listed protocol ports if the same port number is used for real and
virtual ports.
Load Balancing Across Data CPUs for the RADIUS Virtual Port Type
To optimize performance, traffic for the RADIUS virtual port type is load balanced across multiple data
CPUs. All requests that have a given Identifier value go to the same server and are processed by the
same data CPU.
If the virtual port uses source NAT, all traffic for the virtual port is processed by the same data CPU,
without further load balancing across CPUs. Depending on the traffic volume, this can affect perfor-
mance.
Stateless RADIUS load balancing supports only IP Map list static NAT. Source NAT is not supported in
stateless RADIUS mode.
page 481
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration RADIUS Message Load Balancing
Enable hardware-based per-packet CPU distribution, device supporting that method, by using Stateless
Per-packet Round-robin load balancing method. This method is called “Stateless Per-Packet Round
Robin” in the GUI, and stateless-per-pkt-round-robin in the CLI.
You also can use the aging option in the UDP template. For example, setting aging to “immediate” ter-
minates a session as soon as the server responds to the client.
1. (Optional) To configure connection-rate limiting or request-rate limiting for the RADIUS ports, con-
figure a real-port template and set the rate within the template.
2. Create a real server configuration for each RADIUS server.
• Make sure the port number(s) you assign to the RADIUS port(s) are among those listed in “Pro-
tocol Port Numbers Supported with Stateless RADIUS Load Balancing” on page 481.
• If you configure a real-port template (step 1 above), bind the template to each of the RADIUS
ports in each real-server configuration.
3. Add the real servers to a service group. Configure the group to use the Stateless Per-packet
Round-robin load-balancing method.
4. Create a VIP configuration that has the IP address that will receive the RADIUS requests. Add a
RADIUS virtual port to the VIP. Bind the service group created in step 3 to the virtual port.
The RADIUS port number on each real server must be the same. Using mixed port numbers in a
service group is not supported. The virtual port number does not need to be the same as the real
port number.
At the configuration level for the virtual server, use the port command. To view RADIUS sessions, use
the show session radius command.
CLI Example
The commands in this example implement the RADIUS load balancing configuration shown in
Figure 67 on page 479 and Figure 68 on page 480.
page 482
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration RADIUS Message Load Balancing
To begin, the following commands create server configurations for the RADIUS servers:
page 483
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration RADIUS Message Load Balancing
page 484
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration RADIUS Message Load Balancing
The session table contains a separate session for each RADIUS Identifier value. The following address
information is shown for each session:
• Forward Source – The sender of the RADIUS message. In Figure 67 on page 479, this is the IP
address of the BRAS.
• Forward Dest – The RADIUS VIP on the ACOS device.
• Reverse Source – The RADIUS server to which the ACOS device sends requests that have the
Identifier listed in the RADIUS ID field.
• Reverse Dest – The destination of the RADIUS server reply forwarded by the ACOS device. (This
is the sender of the initial RADIUS message that started the session, the BRAS in the example
above.)
page 485
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration RADIUS Message Load Balancing
page 486
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
• CPU utilization
• Connection capacity
Requirements
• External health monitor – SNMP-based load balancing uses an external health monitor (a script)
to periodically send SNMP queries to each of the real servers. The script must return a numeric
value. The following values are valid for SNMP-based load balancing:
• 0-124 – Server is up. The server’s weight value (1-100) is dynamically changed to the value
returned by the script. If the script returns 0, the value is set to 1. If the script returns value 101-
124, the value is set to 100.
• -1 – Server is down.
• 125 or higher – Server is down.
Exit codes 1 and 2 are reserved. Please make sure the script does not have general errors.
When configuring the external health monitor on the ACOS device, make sure to use the prefer-
ence option. This option enables the server weight values to be dynamically set based on the val-
ues returned by the health monitor’s script.
page 487
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SNMP-Based Load Balancing
• Weighted load-balancing method – The server weight is used for server selection only if the ser-
vice group uses either of the following load-balancing methods:
• Weighted-least-connection
• Weighted-rr (weighted round robin)
For example, assume the SNMP-based health check of a group of 4 real servers results in the following
dynamically assigned weight values:
• Server1 – weight 1
• Server2 – weight 2
• Server3 – weight 4
• Server4 – weight 5
• Server1 – 1 connection
• Server2 – 1 connection
• Server3 – 1 connection
• Server4 – 1 connection
• Server1 – 0 connections
• Server2 – 1 connection
• Server3 – 1 connection
• Server4 – 1 connection
• Server1 – 0 connections
• Server2 – 0 connections
• Server3 – 1 connection
• Server4 – 1 connection
page 488
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of SNMP-Based Load Balancing
• Server1 – 0 connections
• Server2 – 0 connections
• Server3 – 1 connection
• Server4 – 1 connection
• Server1 – 0 connections
• Server2 – 0 connections
• Server3 – 0 connections
• Server4 – 1 connection
• Server1 – 1 connection
• Server2 – 1 connection
• Server3 – 1 connection
• Server4 – 1 connection
...
The pattern of selection repeats until the server weight values are changed based on the next health
check.
#!/bin/sh
dst="$HM_SRV_IPADDR"
#dst="$HM_SRV_IPADDR:$HM_SRV_PORT"
# Community String
community="public"
page 489
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring SNMP-Based Load Balancing
# EXAMPLECORP-SNMP-MIB::extResult.1
oid=".1.3.6.1.4.1.2021.8.1.100.1"
function check_value {
echo "$output"
value=`echo $output | sed 's/INTEGER: //'`
echo "value" = "$value"
if [[ "$value" =~ "^[[:digit:]]*$" ]]; then
# echo "digit string"
if [ $value -ge 0 -a $value -lt 125 ]; then
echo "Good"
exit $value
fi
fi
}
# success
echo "Mark server down"
exit -1
NOTE: These steps apply specifically to SNMP-based load balancing. The other
configuration steps standard to all types of load balancing are also
required: configure the real servers and add them to a service group, con-
page 490
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring SNMP-Based Load Balancing
figure the virtual server (VIP), bind the service group to a virtual port on
the VIP, and so on.
page 491
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring SNMP-Based Load Balancing
1. Import an external health monitor script onto the ACOS device using the import health-external
command at the global configuration level of the CLI. For example, to import a script named snmp-
hm.sh:
ACOS(config)# import health-external snmp-hm.sh scp://[email protected]/
scripts/
2. Configure an external health monitor that will use the script. For example:
ACOS(config)# health monitor hm-ext-snmp
This command changes the CLI to the configuration level for the monitor, where you use the
method command to have the health monitor use the external script:
3. Set the service group to use a load-balancing method based on server weight:
ACOS(config)# slb service-group snmp-sg1 tcp
ACOS(config-slb svc group)# method weighted-rr
To verify that all servers are up, use the show health stat command:
To display the current weight values of the servers, use the show running-config | sec slb server
command.
page 492
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS includes a traffic replication feature that intercepts traffic feeds, such as SNMP or Syslog pack-
ets, copies them to a buffer, and forwards the duplicated packet to multiple collector servers, where the
data can be used to track users and devices.
The new feature can be helpful for organizations that need Network Monitoring feeds to be replicated
to multiple destinations. It represents a significant improvement over alternative method that rely on
servers processing feeds and then forwarding them to other groups in an organization.
Figure 69 shows the topology used to discuss this traffic replication feature.
The figure shows an ACOS device connected to multiple real “collector” servers. The servers can be
connected directly to the ACOS device (Server 5), or they can be connected through a Layer 2 switch
(Servers 1 and 2), or they can be connected through a Layer 3 router (Servers 3 and 4).
page 493
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
1. The Network Monitoring device (NM-1) sends traffic to the ACOS VIP.
2. As traffic passes through the ACOS device, it is vetted to see if it belongs to one of the target NM
traffic types, such as SNMP or Syslog. If the traffic does belong to one of the NM traffic types, then
duplicates are made for each collector server and are stored locally on the ACOS device.
3. The original traffic from NM-1 is load balanced using standard SLB algorithms and is sent to its
original target destination (RS-1). This is represented by the solid blue line in Figure 70.
4. ACOS applies one of the traffic replication options to the duplicated packets. This customization of
the duplicated packet changes the MAC or IP in the packet’s header. These changes are needed to
forward the packets to multiple destinations (RS-2, RS-3, and RS-4). Forwarded packets are repre-
sented by the dotted blue lines.
While previous releases supported a port mirroring feature, it operated at the port level and did not dis-
criminate between different types of traffic. This new approach to traffic replication provides better
granularity by enabling you to specify which parts of the source and destination addresses will be
replaced.
The feature allows you to bind a traffic replication mode to a normal VIP or to a wildcard VIP, and that
wildcard VIP can be associated with an ACL.
Separate VIPs can be created on the ACOS device to handle specific types of traffic. For example, a VIP
could be dedicated to receiving SNMP traffic. When traffic is received on that VIP, (and assuming one
of the replication modes has been enabled), the SNMP traffic stream will be replicated to the collector
servers designated within the associated service group.
Both TCP and UDP traffic types are supported, as long as the feature is enabled at the service group
level.
page 494
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Only one of the Traffic Replication modes, mirror IP-replacement, alters the packets’ IP address and
makes changes to the Layer 4 source and destination ports in the duplicated packets.
Details:
• When using the mirror IP-replacement option, the destination port can be changed under the fol-
lowing circumstances:
• If the virtual port is set to wildcard port 0, and if the service group members have different real
ports configured, then the Layer 4 destination port on the duplicated packets will be changed.
• If the virtual port is set to wildcard port 0, and if a service group member is configured with port
80, then the Layer 4 destination port on the duplicated packets will be changed to port 80.
NOTE: If the virtual port is set to wildcard port 0, and if a service group member
is configured with real port 0, then the Layer 4 destination port will not be
changed.
• If the virtual port is not set to wildcard port 0 but is instead set to port 80, and if a service group
member is configured with real port 81, then the Layer 4 destination port will be changed to port
81.
• When using the mirror IP-replacement option, the source port can be changed under the following
circumstances:
page 495
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
• The Layer 4 source port will only be changed if the original packet being load balanced and rep-
licated is changed. The reasons for this change to the source port of the original packet, (and in
the duplicated packets) are unrelated to the Advanced Traffic Replication feature.
• Source NAT can be used with the mirror IP-replacement option. In this case, the Layer 4 source-
port might be replaced for packets that have been load balanced, but all of the replicated pack-
ets will have the same source port as the packet that was load balanced.
• Mirror: This mode does not change the packet header at all. The original Layer 2 Destination
Address (DA) or Source Address (SA) and Layer 3 IP addresses are left intact. ACOS simply sends
the packets “as is” to the collector server(s), and the forwarding is based on the IP address in the
original packet. Unlike other replication modes, mirror mode replicates traffic to the client, in addi-
tion to replicating traffic to the server. Only lower priority servers are used, so it is recommended
to define the collector servers as lower priority to ensure they receive the replicated traffic.
• Mirror Destination MAC Address replacement: This mode uses Layer 2 forwarding, with the ACOS
device replacing the destination MAC address on the incoming packet with the destination MAC
for each of the collector servers within the designated service group.
• Mirror IP-replacement: This mode replaces the incoming packet’s IP address with the IP address
of the collector server(s) and then forwards the duplicated packet to those servers. This is the
only mirroring option that affects the packet at Layer 4, with minor changes being made to the
Layer 4 source and destination ports. This option is recommended for scenarios in which collec-
tor servers are not directly connected to the ACOS device.
• Mirror Source MAC Address and Destination MAC Address replacement: This mode replaces
both the source and destination MAC addresses at Layer 2 but does not change the Layer 3 IP
addressing information.
• Mirror Source MAC Address replacement: This mode replaces the source MAC address on the
incoming packet with the MAC address corresponding to virtual server on the ACOS device. This
option is recommended for scenarios where not changing the source MAC can cause a loop.
page 496
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Implementation Details
Implementing the Traffic Replication feature is almost the same set of configuration steps as required
for a standard SLB. To configure this feature, the following configurations are necessary:
1. Define a normal VIP (or a wildcard VIP) within the service group. If a wildcard VIP is used, then cre-
ate an ACL to identify the subnet of the network monitoring devices from which traffic will be
accepted.
2. Configure the real collector servers.
page 497
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
3. Configure a service group for the collector servers, add the real collector servers to the service
group, and define which traffic replication modes are used with the traffic-replication-type
command.
Configuration
Using the CLI
To configure a traffic replication mode, use the traffic-replication-type command at the service-
group level.
CLI Example
3. The following commands configure a service group for the collector servers and add the real col-
lector servers to the service group. The traffic-replication-type command then specifies traffic
replication mode used to forward duplicated network monitoring traffic to the collector servers.
ACOS(config)# slb service-group SG-RS tcp
ACOS(config-slb svc group)# member RS-1 0
ACOS(config-slb svc group-member:0)# exit
ACOS(config-slb svc group)# member RS-2 0
ACOS(config-slb svc group-member:0)# exit
ACOS(config-slb svc group)# member RS-3 0
ACOS(config-slb svc group-member:0)# exit
ACOS(config-slb svc group)# member RS-4 0
ACOS(config-slb svc group-member:0)# exit
ACOS(config-slb svc group)# member RS-5 0
ACOS(config-slb svc group-member:0)# exit
ACOS(config-slb svc group)# traffic-replication-type mirror-da-repl
ACOS(config-real server)# exit
page 498
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS supports outbound Next Hop Load Distributor (NHLD). Outbound NHLD enables you to balance
client-server traffic across a set of WAN links. In outbound NHLD, the clients are located on the internal
side of the network. The servers are located on the external side of the network.
In this example, the ACOS device is configured to balance client traffic across a set of two WAN links,
through next-hop routers 192.168.10.1 and 192.168.20.1.
When the ACOS device receives a request from a client, the ACOS device uses SLB load balancing to
select one of the WAN links. ACOS then uses source IP NAT to translate the client’s private IP address
into a public IP address, then sends the client’s request to the next-hop router for the selected WAN
link.
page 499
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
When the ACOS device receives the server’s reply to a client request, the ACOS device translates the
destination IP address from the NAT address to the client’s private IP address, then forwards the reply
to the client.
Use one of the following load balancing methods to load balance traffic across the WAN links:
• Round-robin – Selects link in simple rotation. This results in each link being selected an equal
number of times. The default method is round-robin.
• Least-connections – Selects the link that has the least current client connections on it. The con-
nection count is based on client connections initiated on the link by the ACOS device.
In an outbound NHLD topology, the next-hop routers for the WAN links must be able to send the server
reply traffic back to the ACOS device. To ensure that the server reply traffic passes back through the
ACOS device, use an IP source NAT pool for each WAN link.
The pools do not need to contain more than a few addresses. ACOS internally uses a separate protocol
port number for each client session on a pool address.
SLB destination NAT, which is enabled by default, must be disabled. In a standard SLB configuration,
destination NAT is used to translate the server address (destination IP address) requested by clients
from the VIP address into the server’s real address. However, this NAT operation is not applicable to
outbound NHLD.
1. Configure an IP source NAT pool for each link to be load balanced. The address range in a pool
must be in the same subnet as the next-hop router’s interface with the ACOS device.
Configure a pool group and add the pools to it.
2. Configure ACOS interfaces connected to the clients. Enable promiscuous VIP support on the inter-
faces.
3. Configure the ACOS interfaces connected to the next-hop routers for the links to be load balanced.
(Do not enable promiscuous VIP on these interfaces.)
4. Configure a real server for each load balanced link. Add wildcard ports (TCP, UDP, or both) to the
servers.
Use Layer 3 health checking (ICMP ping) to check router’s IP interface health. When testing a path
through a device between the ACOS device and router, use the ICMP health monitor transparent
option.
page 500
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
The configuration requires health checking to be disabled on the wildcard ports added for a router.
The router will not respond to these health checks. If you leave health checking enabled on the
wildcard ports, the ACOS device will mark the ports down and NHLD will not work.
5. Configure a service group for the links (real servers). If the real server configurations for the links
have both TCP and UDP ports, configure a service group for TCP and another service group for
UDP.
6. Configure a virtual server with virtual IP address 0.0.0.0 (the wildcard VIP address). Using the wild-
card VIP address enables the configuration to work for any destination IP address requested by cli-
ents.
Add the wildcard TCP port (TCP 0) and bind it to the TCP service group. Likewise, add the wildcard
UDP port and bind it to the UDP service group.
Bind the ports to service group(s). On each port, bind the port to the IP Source NAT pool group and
disable destination NAT.
CLI Example
Commands in this example implement the NHLD configuration shown in Figure 72 on page 499. This
example uses a single Ethernet port for each interface to the clients and the next-hop routers. You also
can use trunk interfaces, virtual Ethernet (VE) interfaces, or both.
1. The following commands configure the IP source NAT pools and pool group:
ACOS(config)# ip nat pool nat10 192.168.10.3 192.168.10.4 netmask /24
ACOS(config)# ip nat pool nat20 192.168.20.3 192.168.20.4 netmask /24
ACOS(config)# ip nat pool-group outbound-nat-group
ACOS(config-pool-group:outbound-nat-gro)# member nat10
ACOS(config-pool-group:outbound-nat-gro)# member nat20
ACOS(config-pool-group:outbound-nat-gro)# exit
2. The following commands enable promiscuous VIP support on the ACOS interfaces connected to
clients.
ACOS(config)# interface ethernet 3
ACOS(config-if:ethernet:3)# ip address 10.10.10.1 255.255.255.0
ACOS(config-if:ethernet:3)# ip allow-promiscuous-vip
ACOS(config-if:ethernet:3)# exit
ACOS(config)# interface ethernet 4
ACOS(config-if:ethernet:4)# ip address 10.20.20.1 255.255.255.0
ACOS(config-if:ethernet:4)# ip allow-promiscuous-vip
ACOS(config-if:ethernet:4)# exit
3. These commands configure the ACOS interfaces to the next-hop routers for the load-balanced
links:
ACOS(config)# interface ethernet 1
ACOS(config-if:ethernet:1)# ip address 192.168.10.2 255.255.255.0
ACOS(config-if:ethernet:1)# exit
page 501
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
4. The following commands configure a real server for each link to be load balanced:
ACOS(config)# slb server link-101 192.168.10.1
ACOS(config-real server)# port 0 tcp
ACOS(config-real server-node port)# health-check-disable
ACOS(config-real server-node port)# exit
ACOS(config-real server)# port 0 udp
ACOS(config-real server-node port)# health-check-disable
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
ACOS(config)# slb server link-201 192.168.20.1
ACOS(config-real server)# port 0 tcp
ACOS(config-real server-node port)# health-check-disable
ACOS(config-real server-node port)# exit
ACOS(config-real server)# port 0 udp
ACOS(config-real server-node port)# health-check-disable
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
page 502
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 503
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 504
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
HTTP Proxy
This chapter provides an overview of HTTP proxy, configuration resources that are available and how
to configure it.
When configuring a proxy, the main configuration difference between an explicit proxy and transparent
proxy is that for an explicit proxy, the virtual ip address (VIP) is specified for the slb virtual-server tem-
plate configured with an HTTP virtual port, whereas for a transparent proxy, the virtual server VIP is set
as a wildcard (0.0.0.0) and must have a vport for HTTP and another for HTTPs traffic, and a separate
policy-template for HTTP and HTTPs. Separate service-groups for HTTP and HTTPs are also needed to
correctly route the two types of traffic.
page 505
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Explicit and Transparent HTTP Proxy Overview
The main configuration element of an HTTP proxy is the policy template where the source rules and
actions are defined in the forward-policy sub-configuration. The template is then binded to an slb vir-
tual-server template with an HTTP virtual port for explicit proxy and transparent proxy, and also an
HTTPs virtual port for transparent proxy.
Explicit and transparent HTTP proxy services can be configured to operate separately, or in parallel.
Proxy services also work in an SSLi configuration (refer to the SSL Configuration Guide for proxy config-
urations related to SSL and SSLi).
You can use the ACOS device as an HTTP proxy to control client access to hosts based on lists of
allowed traffic sources (clients) and destinations (Web servers). In the case of explicit proxies, client
applications, which are typically Web browsers, must explicitly configure the proxy's IP address and
port such that all HTTP requests will be sent to the explicit proxy.
When this feature is enabled, an HTTP virtual port on the ACOS device intercepts HTTP requests from
clients, validates both the sources and the destinations, and forwards only those requests that come
from valid sources and that are sent to approved destinations. Destinations are validated based on
layer 3 IP addresses, HTTP URL/hostname strings or web-category. The policy template specifies the
action to take to handle requests.
The destinations requested by clients can be filtered based on the URL of the request or the hostname
in the Host header of the request.
• If both the source and destination are allowed, ACOS translates the client address into a NAT
address, if applicable, and forwards the request to the destination.
• If either the source or the destination is not explicitly allowed by the applicable source or destina-
tion list, the request is dropped.
There are three mechanisms by which explicit HTTP proxy can forward traffic: traffic may be forwarded
to the Internet, to a specified service group, or to another HTTP proxy server. These configuration sce-
narios are highlighted in this document.
The following differences between an explicit proxy vs. a transparent proxy are:
page 506
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
• An explicit proxy requires that clients are configured to point to the explicit proxy, whereas a
transparent proxy requires no configuration in this regard.
• An explicit proxy offers more flexibility for managing traffic, although at a cost of additional con-
figuration and resources, as you can create multiple VIPs, but can only have one wildcard VIP.
• For a typical transparent proxy configuration, a vport is required for HTTP and another for HTTPs
traffic, configured under an slb virtual-server template. This also means a separate policy
and service-group are needed to handle each type of traffic.
FIGURE 73 Explicit HTTP Proxy Mechanisms: Forward to Service Group and Forward to Internet
page 507
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
page 508
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
Optionally, for any approved destinations which the ACOS device cannot resolve, you can serve requests
locally by configuring the following resources:
Real Locally serves con- Standard SLB configuration with real servers and service group, to be
Server(s) tent if called in Forward Policy
and service destination can-
group not be reached
VIP with Receives requests
HTTP vPort to be served locally
NAT Resources
The following resources are required only if sources (clients) require source NAT.
NAT pool Assigns outside Range of public (externally routable) IP addresses to assign to clients
addresses to before forwarding the client traffic to the Internet.
inside clients
Basic network resources, including network interface connections to the sources and destinations, and
DNS servers, also are required.
page 509
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
A basic transparent proxy configuration requires a configuration to handle HTTP and HTTPs traffic
separately, as HTTPS traffic differs from HTTP traffic in that the traffic is encrypted and requires certif-
icates and keys to handle the back and forth communication. For more information on SSLi configura-
tion, see the SSL Insight Configuration Guide.
The following configuration example shows the basic elements needed to configure a transparent
proxy for the inside device and outside device. This example assumes a basic network has been set up.
2. An slb template is configured for DNS resolution so the traffic knows where to go to.
ACOS(config)# slb template dynamic-service DNS
ACOS(config-dynamic-service)# dns server 168.95.1.1
ACOS(config-dynamic-service)# exit
3. Now, the server to handle HTTP and HTTPs (SSL) traffic is configured as well as the service-
groups which we bind the slb server to, through the two separate ports, 80 for HTTP traffic, and
8080 for HTTPs traffic.
ACOS(config)# slb server SSL 192.168.90.142
ACOS(config-real server)# health-check-disable
ACOS(config-real server)# port 80 tcp
ACOS(config-real server-node port)# health-check-disable
ACOS(config-real server-node port)# exit
ACOS(config-real server)# port 8080 tcp
ACOS(config-real server-node port)# health-check-disable
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
ACOS(config)# slb service-group HTTP tcp
ACOS(config-slb svc group)# health-check-disable
ACOS(config-slb svc group)# member SSL 80
ACOS(config-slb svc group-member:80)# exit
ACOS(config-slb svc group)# exit
ACOS(config)# slb service-group SSL_8080 tcp
ACOS(config-slb svc group)# health-check-disable
ACOS(config-slb svc group)# member SSL 8080
ACOS(config-slb svc group-member:8080)# exit
ACOS(config-slb svc group)# exit
4. Import the certificate and key, if they do not already reside on the device.
ACOS(config)# import cert ROOTCA.crt use-mgmt-port tftp://192.168.1.25/ROOT-CA.crt
page 510
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
Done.
ACOS(config)# import key ROOTCA.key use-mgmt-port tftp://192.168.1.25/ROOT-CA.key
Done
5. Next, a client-ssl template is configured to handle the certificate and key exchange for SSL
(HTTPs) connections for transparent proxy. Note that forward-proxy-enable is only necessary for
SSL Insight configuration to allow inspection through a man-in-the-middle inspection device.
ACOS(config)# slb template client-ssl SSL
ACOS(config-client ssl)# forward-proxy-ca-cert ROOTCA.crt
ACOS(config-client ssl)# forward-proxy-ca-key ROOTCA.key
ACOS(config-client ssl)# forward-proxy-enable
ACOS(config-client ssl)# exit
6. The HTTP policy (HTTP-policy) and HTTPs (SSL-policy) are configured where we simply take the
appropriate traffic to its destination through the source and action sub-configurations. The source
network address translation (SNAT), as an action, is an optional component.
ACOS(config)# slb template policy HTTP-POLICY
ACOS(config-policy)# forward-policy
ACOS(config-policy-forward-policy)# action A1
ACOS(config-policy-forward-policy-action)# forward-to-internet HTTP snat NAT
ACOS(config-policy-forward-policy-action)# log
ACOS(config-policy-forward-policy-action)# exit
ACOS(config-policy-forward-policy)# source ANY
ACOS(config-policy-forward-policy-source)# match-any
ACOS(config-policy-forward-policy-source)# destination any action A1
ACOS(config-policy-forward-policy-source)# exit
ACOS(config-policy-forward-policy)# exit
ACOS(config-policy)# exit
7. Finally, we bind all these elements together in an slb virtual-server template using the wildcard VIP
0.0.0.0, with the HTTP and HTTPs traffic through the 80 and 443 virtual ports respectively.
ACOS(config)# slb virtual-server IN_VIP 0.0.0.0
ACOS(config-slb vserver)# port 80 http
ACOS(config-slb vserver-vport)# service-group HTTP
ACOS(config-slb vserver-vport)# template policy HTTP-POLICY
ACOS(config-slb vserver-vport)# template dynamic-service DNS
page 511
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
The configuration for the outside device (or partition), we need the following elements:
1. The slb server and service group are configured to receive HTTP and HTTPs traffic.
ACOS(config)# slb server DEFAULT_GATEWAY 20.1.1.10
ACOS(config-real server)# port 443 tcp
ACOS(config-real server-node port)# health-check-disable
ACOS(config-real server-node port)# exit
ACOS(config-real server)# port 0 tcp
ACOS(config-real server-node port)# health-check-disable
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
2. The virtual-server binds these components together for the HTTP and HTTPs traffic. The use-rcv-
hop-for-resp is used to ensure correct direction of traffic.
ACOS(config)# slb virtual-server OUTSIDE_VIP 0.0.0.0
ACOS(config-slb vserver)# port 8080 http
ACOS(config-slb vserver-vport)# no-dest-nat port-translation
ACOS(config-slb vserver-vport)# service-group DG_SSL_SG
ACOS(config-slb vserver-vport)# template server-ssl SSLINSIGHT_SERVERSIDE
ACOS(config-slb vserver-vport)# use-rcv-hop-for-resp
ACOS(config-slb vserver-vport)# exit
ACOS(config-slb vserver)# port 0 tcp
ACOS(config-slb vserver-vport)# no-dest-nat
page 512
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
The basic configuration is to forward all traffic via Explicit Proxy to the Internet and log each request.
page 513
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
ACOS(config-if:ethernet:1)# exit
ACOS(config)# interface ethernet 2
ACOS(config-if:ethernet:2)# ip address 203.0.113.254 255.255.255.0
ACOS(config-if:ethernet:2)# exit
ACOS(config)# interface ethernet 3
ACOS(config-if:ethernet:3)# ip address 172.168.0.254 255.255.255.0
ACOS(config-if:ethernet:3)# exit
ACOS(config)# ip route 0.0.0.0 /0 203.0.113.1
ACOS(config)# ip route 192.168.0.0 /16 172.16.0.1
6. Create an action for Internet-bound traffic to use the source NAT pool and log the request.
ACOS(config-policy-forward-policy)# action Permit_to_Internet
ACOS(config-policy-forward-policy-action)# forward-to-internet To_Internet snat
Internet_Pool
ACOS(config-policy-forward-policy-action)# log
ACOS(config-policy-forward-policy-action)# exit
page 514
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
ACOS(config-policy-forward-policy-source)# match-any
ACOS(config-policy-forward-policy-source)# destination any action Permit_to_Internet
ACOS(config-policy-forward-policy-source)# exit
ACOS(config-policy-forward-policy)# exit
ACOS(config-policy)# exit
To make the basic explicit proxy configuration resilient, add a fallback service group to handle cases
when a domain name cannot be resolved. All requests are then forwarded to the configured fallback
service group.
10.Add a different source NAT pool for forwarded requests to the fallback service group.
ACOS(config)# ip nat pool Fallback_Pool 10.10.1.120 10.10.1.120 netmask /24
11.Add fallback service group to the action in the existing SLB template policy, Explicit_Proxy using
step 5 first then the following commands:
ACOS(config)# slb template policy Explicit_Proxy
ACOS(config-policy)# forward-policy
ACOS(config-policy-forward-policy)# action Permit_to_Internet
ACOS(config-policy-forward-policy-action)# forward-to-internet To_Internet snat
Internet_Pool fallback Fallback snat Fallback_Pool
ACOS(config-policy-forward-policy-action)# log
page 515
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
ACOS(config-policy-forward-policy-action)# exit
ACOS(config-policy-forward-policy)# exit
ACOS(config-policy)# exit
Configure network settings such as Ethernet data interfaces, VLANs, and routing so that there is con-
nectivity between the traffic sources or clients, the destinations (Internet servers and internal real serv-
ers), and DNS servers, as shown in Figure 74. This example assumes three ethernet interface
connections have been established.
Establish IP Routes.
page 516
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
2. Click + Create.
3. In the IP Dest Address field, enter “0.0.0.0”.
4. In the IP Mask field, enter “/0”.
5. In the IP Next Hop field, enter “203.0.113.1”.
6. Click Add.
7. Click Create Route.
8. Click + Create.
9. In the IP Dest Address field, enter “192.168.0.0”.
10.In the IP Mask field, enter “/16”.
11.In the IP Next Hop field, enter “172.16.160.1”.
12.Click Add.
13.Click Create Route.
1. Navigate to Security>> Forward Proxy. This should take you to the Services tab.
2. Click + Create.
3. In the Name field, enter “EP_VIP”.
4. In the IPv4 Address field, enter “172.16.10.10”.
5. Click + Add Port.
page 517
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
Define our Service Group and our server as a member for ports 80 and 443.
Create a Forward Policy, and the action policy and source policy to be followed.
page 518
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
Now, we’ll make our configuration more resilient, by creating a fallback service group to handle cases
when a domain name cannot be resolved. All requests will then be forwarded to the configured fallback
service group. Take the following steps:
page 519
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
After creating the fallback servers and service group, edit our existing forward policy.
page 520
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
2. Create destination class lists of Aho-Corasick string type or IP type. For Aho-Corasick string type,
destinations specified may be partial strings matching the HOST field or URL field of an HTTP
request. String match is not case-sensitive.
ACOS(config)# class-list Allowed_Destinations ac
ACOS(config-class list)# contains yahoo
ACOS(config-class list)# contains google
ACOS(config-class list)# contains facebook
ACOS(config-class list)# contains cnn
ACOS(config-class list)# contains disney
ACOS(config-class list)# contains ebay
ACOS(config-class list)# contains bankofamerica
ACOS(config-class list)# exit
ACOS(config)# class-list Restricted_Destinations ac
ACOS(config-class list)# contains youtube
ACOS(config-class list)# contains netflix
ACOS(config-class list)# contains hulu
ACOS(config-class list)# exit
ACOS(config)# class-list Internal_Destinations ac
ACOS(config-class list)# contains acme-inc
ACOS(config-class list)# exit
ACOS(config)# class-list Allowed_Client-urls ac
ACOS(config-class list)# contains news
ACOS(config-class list)# contains finance
page 521
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
3. Configure software update servers, service groups, and NAT pool to handle forward-to-service-
group and permit-to-internet requests.
ACOS(config)# slb server Update_Server1 10.10.1.31
ACOS(config-real server)# port 80 tcp
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
ACOS(config)# slb server Update_Server2 10.10.1.32
ACOS(config-real server)# port 80 tcp
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
ACOS(config)# slb server Internet_Server 1.1.1.1
ACOS(config-real server)# port 80 tcp
ACOS(config-real server-node port)# exit
ACOS(config-real server)# port 443 tcp
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
ACOS(config)# slb service-group Updates tcp
ACOS(config-slb svc group)# member Update_Server1 80
ACOS(config-slb svc group-member:80)# exit
ACOS(config-slb svc group)# member Update_Server2 80
ACOS(config-slb svc group-member:80)# exit
ACOS(config-slb svc group)# exit
ACOS(config)# slb service-group To_Internet tcp
ACOS(config-slb svc group)# member Internet_Server 80
ACOS(config-slb svc group-member:80)# exit
ACOS(config-slb svc group)# member Internet_Server 443
ACOS(config-slb svc group-member:443)# exit
ACOS(config-slb svc group)# exit
page 522
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
5. Modify the source rule to match-any and configure destination to match any for dropping and log-
ging.
ACOS(config-policy-forward-policy)# source Any_Source
ACOS(config-policy-forward-policy-source)# match-any
ACOS(config-policy-forward-policy-source)# destination any action Default_Deny
ACOS(config-policy-forward-policy-source)# exit
6. Configure a source rule and add up to two source class lists as a single match rule to a forward
policy. Multiple source match rules may be configured per forward policy using the OR clause.
ACOS(config-policy-forward-policy)# source Allowed_Clients
ACOS(config-policy-forward-policy-source)# match-class-list Corporate_Clients
ACOS(config-policy-forward-policy-source)# exit
ACOS(config-policy-forward-policy)# source Allowed_Servers
ACOS(config-policy-forward-policy-source)# match-class-list Corporate_Servers
ACOS(config-policy-forward-policy-source)# exit
7. Add one or more destination class lists as matching rules for a specific source class rule. Up to
1024 destination rules may be added to a single source match rule. The default action for non-
matching destination match rules is to drop the request.
ACOS(config-policy-forward-policy)# source Allowed_Clients
ACOS(config-policy-forward-policy-source)# match-class-list Corporate_Clients
ACOS(config-policy-forward-policy-source)# destination class-list Allowed_Destinations
action Permit_To_Internet host priority 100
ACOS(config-policy-forward-policy-source)# destination class-list Internal_Destinations
action Permit_Software-Updates host priority 200
ACOS(config-policy-forward-policy-source)# destination class-list Allowed_Client-urls
page 523
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
For creating a forward policy, go to the forward-policy sub-command for configuration of the various
types of templates. Templates and parameters are elaborated upon here.
Source Rule (source) – Defines the match rule for the traffic sources. The source sub-command
within forward policy names the source rule. Multiple source rules may be defined in a forward policy.
But only a single source rule of match-any may be defined for a forward policy. IP addresses in multiple
configured source class-lists configured for a forward policy cannot overlap.
• match-class-list – IPv4 or IPv6 class list that specifies hosts or subnets for matching source
rules.
• match-any - default match rule if no other specific class list is matched.
Destination Rule (destination)– The destination rule is associated with a source rule and defines
either a specific class-list or default match-any. A unique destination class for a particular source rule.
• Destination Class-List (class-list) – Class list that contains the URL or hostname strings or
IP range for destinations that clients are allowed to access.
• Destination Web-Category-List (web-category-list) - Category list that contains predefined web-
site URLs for destinations that clients are allowed to access.
• priority – This is used to break ties when there are multiple destination rules that match the
traffic such that only a single destination rule’s action is applied to the traffic. The higher value
takes priority over the lower value. The priority value is unique per source rule.
• action – Defines where to forward the packet upon receipt of request and whether to log the
event.
• Action type – Defines how traffic will be forwarded, can be drop, forward-to-internet, for-
ward-to-service-group or forward-to-proxy. Note that these are mutually exclusive
actions. Multiple actions may be configured under a single policy. Forward-to-proxy should
be used in the case of an upstream proxy server to ensure proper proxy information is not
lost during communication.
page 524
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
No Client Connection Reuse (no-client-conn-reuse) – Configure this option only when the HTTP/
HTTPS client will not send multiple requests to different destinations over the same TCP connection
between the client and the ACOS device. Most modern web browsers have connection reuse enabled
by default thus this setting typically doesn’t apply when clients are web browsers. In this mode, the
explicit proxy inspects only the first HTTP request after a TCP connection is established and applies
the forward policy. All subsequent requests on that TCP connection are not inspected and are tunneled
directly to the same destination. This mode is designed for higher performance.
NOTE
• The web-category license file must be imported and then enable must be invoked prior to the use
of category-list within the web-category sub-configuration.
• Commands drop-message and drop-redirect-url are mutually exclusive actions. If both are
entered, the prior command will be overwritten by the more recent one.
This configuration builds upon the basic explicit proxy configuration in the previous section and follows
the topology from Figure 74. Take the following steps:
Create a source class list of IPv4 type. Source class lists may be of IPv4 or IPv6 types and are defined
as a list of IP subnets and network masks.
page 525
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
9. Click + Create.
10.In the Name field, enter “Corporate_Servers”.
11.In the IPv4 Address field, enter “10.10.1.10/32” and click Add.
12.Go back to IPv4 Address field, enter “10.10.1.11/32” and click Add.
13.Go back to IPv4 Address field, enter “10.10.1.12/32” and click Add.
14.Click OK.
Create destination class lists of Aho-Corasick string type. Destinations specified may be partial strings
matching the HOST field or URL field of an HTTP request. String match is not case-sensitive.
1. Ensure you are in Security>> Forward Proxy>> Class Lists. If not, follow steps 1 and 2 in the prior
section.
2. Click + Create.
3. In the Name field, enter “Allowed_Destinations”.
4. In the Type field, click the Aho Corasick button.
5. In AC (Aho Corasick) empty field, enter “yahoo” and click Add.
6. Go back to this field, enter “google” and click Add.
7. Go back to this field, enter “facebook” and click Add.
8. Go back to this field, enter “cnn” and click Add.
9. Go back to this field, enter “disney” and click Add.
10.Go back to this field, enter “ebay” and click Add.
11.Go back to this field, enter “bankofamerica” and click Add.
12.Click OK.
13.Click + Create.
14.In the Name field, enter “Restricted_Destinations”.
15.In the Type field, click the Aho Corasick button.
16.In AC (Aho Corasick) empty field, enter “youtube” and click Add.
17.Go back to this field, enter “netflix” and click Add.
18.Go back to this field, enter “hulu” and click Add.
19.Go back to this field, enter “cnn” and click Add.
20.Go back to this field, enter “disney” and click Add.
21.Go back to this field, enter “ebay” and click Add.
page 526
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
1. Click + Create.
page 527
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
Configure software update servers and service group to handle forward-to-service-group requests.
page 528
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
Next, modify our existing source policy to add our new action policy, Default_Deny.
Next, create destination rules under a new source policy for our created Corporate_Clients.
1. Click on + Add.
2. In the Name field, enter “Allowed_Clients”.
3. Click on the Match Type drop-down menu and click on Class List.
4. Click on the Class List drop-down menu and click on Corporate_Clients.
page 529
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
page 530
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
34.Click on the Destination Rules Match Type drop-down menu, and click on Class List.
35.Click on the Value drop-down menu, and click on Restricted_Destinations.
36.Click on the Action drop-down menu, and click on Default-Deny.
37.Click on the Match drop-down menu, and click on Host.
38.In the Priority field, enter “500”.
39.Click Apply.
40.Click Update.
41.In Destination Rules, click + Add.
42.Click on the Destination Rules Match Type drop-down menu, and click on Class List.
43.Click on the Value drop-down menu, and click on Forbidden_Destinations.
44.Click on the Action drop-down menu, and click on Default-Deny.
45.Click on the Match drop-down menu, and click on IP.
46.In the Priority field, enter “600”.
47.Click Apply.
48.Click Update.
Next, we create a source policy for our Corporate_Servers and add a destination rule.
1. Click on + Add.
2. In the Name field, enter “Allowed_Servers”.
3. Click on the Match Type drop-down menu and click on Class List.
4. Click on the Class List drop-down menu and click on Corporate_Servers.
5. In Destination Rules, click + Add.
6. Click on the Destination Rules Match Type drop-down menu, and click on Class List.
7. Click on the Value drop-down menu, and click on Update_Destinations.
8. Click on the Action drop-down menu, and click on Permit_to_Internet.
9. Click on the Match drop-down menu, and click on Host.
10.In the Priority field, enter “100”.
11.Click Apply.
12.Click OK.
page 531
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
For explicit proxy client authentication using form-based-logon in an SSLi set up in conjunction with
this feature, to ensure the explicit proxy client authentication occurs, configure “match-any” or “match-
class-list” in the source rule so it matches the first request in the slb policy template.
AAM must initially be configured. If configuring AAM with an explicit proxy or AAM with an explicit
proxy + SSLi configuration, the authentication logon methods supported are: HTTP basic, NTLM, Ker-
beros and Form Based. SAML is not supported. For more information about AAM configuration, see the
Application Access Management Guide.
The following is an example of Windows Integrated Authentication (WIA), using Kerberos and NTLM for
authentication and Lightweight Directory Access Protocol (LDAP) for authorization.
Configuration Example
2. To set up an explicit proxy, a service group is needed as a stub. So a dummy server and service-
group are created, EP_DUMMY, in addition to the real server and service group.
ACOS(config)# slb server EP_DUMMY 10.0.0.1
ACOS(config-real server)# health-check-disable
ACOS(config-real server)# port 80 tcp
ACOS(config-real server-node port)# health-check-disable
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
ACOS(config)# slb service-group EP_DUMMY tcp
ACOS(config-slb svc group)# health-check-disable
ACOS(config-slb svc group)# member EP_DUMMY 80
ACOS(config-slb svc group-member:80)# exit
ACOS(config-slb svc group)# exit
ACOS(config)# slb server HTTP_PROXY 192.168.98.199
ACOS(config-real server)# port 80 tcp
ACOS(config-real server-node port)# exit
ACOS(config-real server)# exit
ACOS(config)# slb service-group PROXY_GROUP tcp
ACOS(config-slb svc group)# member HTTP_PROXY 80
ACOS(config-slb svc group-member:80)# exit
page 532
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
3. A basic forward policy, using the stub EP_DUMMY and the NAT pool are configured.
ACOS(config)# slb template policy EP_FORWARD_1
ACOS(config-policy)# forward-policy
ACOS(config-policy-forward-policy)# action TO_INET
ACOS(config-policy-forward-policy-action)# forward-to-internet EP_DUMMY snat EP_NAT
ACOS(config-policy-forward-policy-action)# log
ACOS(config-policy-forward-policy-action)# exit
ACOS(config-policy-forward-policy)# source ANY
ACOS(config-policy-forward-policy-source)# match-any
ACOS(config-policy-forward-policy-source)# destination any action TO_INET
ACOS(config-policy-forward-policy-source)# exit
ACOS(config-policy-forward-policy)# exit
ACOS(config-policy)# exit
4. Set up the explicit proxy, using the service-group and our policy.
ACOS(config)# slb virtual-server EP 192.168.91.110
ACOS(config-slb vserver)# port 8081 http
ACOS(config-slb vserver-vport)# service-group EP_DUMMY
ACOS(config-slb vserver-vport)# template policy EP_FORWARD_1
ACOS(config-slb vserver-vport)# exit
ACOS(config-slb vserver)# exit
5. AAM is set up for Kerberos authentication, by configuring an aam authentication server along with
the appropriate supporting aam templates and policies.
For WIA Kerberos, the logon type must use http-authenticate, and auth-method must be config-
ured as negotiate.
ACOS(config)# aam authentication logon http-authenticate NEGO
ACOS(config-http-authenticate auth logon:...)# auth-method negotiate enable
ACOS(config-http-authenticate auth logon:...)# exit
6. For WIA Kerberos, the user-agent that will access our vport must be a member of the realm.
ACOS(config)# aam authentication server windows KDC
ACOS(config-windows auth server:KDC)# host 192.168.221.50
ACOS(config-windows auth server:KDC)# auth-protocol ntlm-disable
ACOS(config-windows auth server:KDC)# realm EXAMPLEREALM.COM
ACOS(config-windows auth server:KDC)# exit
7. For WIA Kerberos, a service principal name (SPN), is needed for the key distribution center (KDC),
and requires the following: the KDC realm, account of the SPN owner, and the SPN name. So, if we
define the SPN as axproxy.examplerealm.com, the user-agent must use axproxy.example-
realm.com as the name of the explicit proxy.
ACOS(config)# aam authentication account kerberos-spn SPN
ACOS(config-kerberos-spn:SPN)# realm EXAMPLEREALM.COM
ACOS(config-kerberos-spn:SPN)# account Owner
ACOS(config-kerberos-spn:SPN)# service-principal-name HTTP/axproxy.examplerealm.com
ACOS(config-kerberos-spn:SPN)# password PASSWORD
page 533
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
ACOS(config-kerberos-spn:SPN)# exit
8. We configure an aam authentication template for WIA Kerberos. An additional template is config-
ured specifically for tracking session use, using auth-sess-mode.
ACOS(config)# aam authentication template NEGO_KRB_C
ACOS(config-auth template:NEGO_KRB_C)# logon NEGO
ACOS(config-auth template:NEGO_KRB_C)# server KDC
ACOS(config-auth template:NEGO_KRB_C)# account SPN
ACOS(config-auth template:NEGO_KRB_C)# exit
ACOS(config)# aam authentication template NEGO_KRB_I
ACOS(config-auth template:NEGO_KRB_I)# auth-sess-mode ip-based
ACOS(config-auth template:NEGO_KRB_I)# logon NEGO
ACOS(config-auth template:NEGO_KRB_I)# server KDC
ACOS(config-auth template:NEGO_KRB_I)# account SPN
ACOS(config-auth template:NEGO_KRB_I)# exit
11.The aam template is then bound to the aaa-policy and configured to provide the authorization
server, SERVER_PROVIDER, for our forward-policy through the authorize-policy command. This
policy is added to the explicit proxy.
ACOS(config)# aam aaa-policy NEGO_KRB_authen
ACOS(config-aaa policy:NEGO_KRB_authen)# aaa-rule 10
ACOS(config-aaa policy:NEGO_KRB_authen-aa...)# authentication-template NEGO_KRB_I
ACOS(config-aaa policy:NEGO_KRB_authen-aa...)# authorize-policy SERVER_PROVIDER
ACOS(config-aaa policy:NEGO_KRB_authen-aa...)# exit
ACOS(config-aaa policy:NEGO_KRB_authen)# exit
ACOS(config)# slb virtual-server EP 192.168.91.110
ACOS(config-slb vserver)# port 8082 http
ACOS(config-slb vserver-vport)# service-group EP_DUMMY
ACOS(config-slb vserver-vport)# template policy EP_FORWARD_1
ACOS(config-slb vserver-vport)# aaa-policy NEGO_KRB_authen
ACOS(config-slb vserver-vport)# exit
page 534
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
12.We configure two authorization policies, each with their own attribute values for use with AAM
check for the explicit proxy’s forward policy.
ACOS(config)# aam authorization policy GROUP_INET
ACOS(config-authorization policy:GROUP_I...)# attribute-rule 1
ACOS(config-authorization policy:GROUP_I...)# server AD_LDAP
ACOS(config-authorization policy:GROUP_I...)# attribute 1 memberOf attr-type string sub-
string CN=INET
ACOS(config-authorization policy:GROUP_I...)# exit
ACOS(config)# aam authorization policy GROUP_PROXY_NEED
ACOS(config-authorization policy:GROUP_PR...)# attribute-rule 1
ACOS(config-authorization policy:GROUP_PR...)# server AD_LDAP
ACOS(config-authorization policy:GROUP_PR...)# attribute 1 memberOf attr-type string
sub-string CN=PROXY_NEED
ACOS(config-authorization policy:GROUP_PR...)# exit
13.Now, the forward policy is configured. The default source drops all requests, while our defined
source GROUP_INET and GROUP_PROXY are routed through the use of the match-authorize-pol-
icy. The command priority is used to determine the order for authorization checking and can-
not be the same value, unless it is the default value of zero.
Checks are determined through the sequence:
Check class-list
Sources that have a specific class-list, but no match are removed.
Check remaining sources that have an authorize-policy. Use priority to determine authorization
checking.
If source passes authorization, the source is selected.
If using the GUI for configuration, during policy template creation (navigate to Security>>Forward
Proxy>>Templates, click Create and select Policy), when creating a source policy, in the Authoriza-
tion Policy field, select an existing authorization policy, and enter a priority value in the Priority field.
ACOS(config)# slb template policy EP_FORWARD_3
ACOS(config-policy)# forward-policy
ACOS(config-policy-forward-policy)# action DROP
ACOS(config-policy-forward-policy-action)# drop
ACOS(config-policy-forward-policy-action)# log
ACOS(config-policy-forward-policy-action)# exit
ACOS(config-policy-forward-policy)# action TO_INET
ACOS(config-policy-forward-policy-action)# forward-to-internet EP_DUMMY snat EP_NAT
ACOS(config-policy-forward-policy-action)# log
ACOS(config-policy-forward-policy-action)# exit
ACOS(config-policy-forward-policy)# action TO_PROXY
ACOS(config-policy-forward-policy-action)# forward-to-proxy PROXY_GROUP
ACOS(config-policy-forward-policy-action)# log
ACOS(config-policy-forward-policy-action)# exit
page 535
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
15.LDAP authorization needs to be configured through an aaa-policy, using the configured authenti-
cation-template and authorize-policy configured under aaa-rule. This policy is then added to the
explicit proxy.
ACOS(config)# aam aaa-policy NEGO_KRB_authen_LDAP_authz
ACOS(config-aaa policy:NEGO_KRB_authen_)# aaa-rule 10
ACOS(config-aaa policy:NEGO_KRB_authen_-a...)# authentication-template NEGO_KRB_I
ACOS(config-aaa policy:NEGO_KRB_authen_-a...)# authorize-policy GROUP_INET
ACOS(config-aaa policy:NEGO_KRB_authen_-a...)# exit
ACOS(config-aaa policy:NEGO_KRB_authen_)# aaa-rule 256
ACOS(config-aaa policy:NEGO_KRB_authen_-a...)# action deny
ACOS(config-aaa policy:NEGO_KRB_authen_-a...)# exit
ACOS(config-aaa policy:NEGO_KRB_authen_)# exit
ACOS(config)# slb virtual-server EP 192.168.91.110
ACOS(config-slb vserver)# port 8084 http
ACOS(config-slb vserver-vport)# service-group EP_DUMMY
ACOS(config-slb vserver-vport)# template policy EP_FORWARD_1
ACOS(config-slb vserver-vport)# aaa-policy NEGO_KRB_authen_LDAP_authz
ACOS(config-slb vserver-vport)# exit
ACOS(config-slb vserver)# exit
16.AAM is set up for NTLM authentication, by configuring an aam authentication server along with
the appropriate supporting aam templates and policies.
page 536
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
For WIA NTLM, the logon type must use http-authenticate, and auth-method must be ntlm.
ACOS(config)# aam authentication logon http-authenticate NTLM
ACOS(config-http-authenticate auth logon:...)# auth-method ntlm enable
ACOS(config-http-authenticate auth logon:...)# exit
18.We configure an aam authentication template. An additional template is configured specifically for
tracking session use, using auth-sess-mode.
ACOS(config)# aam authentication template NTLM_NTLM_C
ACOS(config-auth template:NTLM_NTLM_C)# logon NTLM
ACOS(config-auth template:NTLM_NTLM_C)# server NTLM
ACOS(config-auth template:NTLM_NTLM_C)# exit
ACOS(config)# aam authentication template NTLM_NTLM_I
ACOS(config-auth template:NTLM_NTLM_I)# auth-sess-mode ip-based
ACOS(config-auth template:NTLM_NTLM_I)# logon NTLM
ACOS(config-auth template:NTLM_NTLM_I)# server NTLM
ACOS(config-auth template:NTLM_NTLM_I)# exit
19.The aaa policy is configured for NTLM authentication and NTLM-LDAP authorization. The
NTLM_NTLM_authen aam aaa-policy is also configured to provide the authorization server for the
forward-policy by using authorize-policy SERVER_PROVIDER, just as it was done for Kerberos
(step 11).
ACOS(config)# aam aaa-policy NTLM_NTLM_authen
ACOS(config-aaa policy:NTLM_NTLM_authen)# aaa-rule 10
ACOS(config-aaa policy:NTLM_NTLM_authen-a...)# authentication-template NTLM_NTLM_I
ACOS(config-aaa policy:NTLM_NTLM_authen-a...)# authorize-policy SERVER_PROVIDER
ACOS(config-aaa policy:NTLM_NTLM_authen-a...)# exit
ACOS(config-aaa policy:NTLM_NTLM_authen)# v
ACOS(config)# aam aaa-policy NTLM_NTLM_authen_LDAP_authz
ACOS(config-aaa policy:NTLM_NTLM_authen)# aaa-rule 10
ACOS(config-aaa policy:NTLM_NTLM_authen-a...)# authentication-template NTLM_NTLM_I
ACOS(config-aaa policy:NTLM_NTLM_authen-a...)# authorize-policy GROUP_INET
ACOS(config-aaa policy:NTLM_NTLM_authen-a...)# exit
ACOS(config-aaa policy:NTLM_NTLM_authen)# exit
page 537
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
Using the GUI, to allow only server information for forward policies, when creating an authorization pol-
icy (navigate to AAM>>Policies and Templates, select Authorization Policies, and click Create), select
the Forward Policy Authorize Only checkbox.
Limitations
• Only LDAP and RADIUS servers can be used to obtain membership information.
• Authorization policies can be configured at a global level under an aaa-policy or at a source level
under a forward-policy.
• Only one server or service group is allowed per template policy to obtain membership informa-
tion.
• Any server or service-group configuration in an authorization policy template that is linked to a
forward-policy template at a source level is ignored.
• SAML authentication logon is not supported.
page 538
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
ACOS(config-web-category-category-list)# internet-portals
ACOS(config-web-category-category-list)# exit
ACOS(config-web-category)# exit
Display the web-category-list configurations with the show runnning-config web-category command:
2. Similar to destination class lists, destination web-category-lists can be used in the source class
rule, either supplementing or replacing them. Below is a modified version that replaces the source
configuration in step 7 of theAdvanced Explicit Proxy Configuration (CLI) example where we
replace the destination class-list rules with the destination web-category-list rules.
ACOS(config-policy-forward-policy)# source Allowed_Clients
ACOS(config-policy-forward-policy-source)# match-class-list Corporate_Clients
ACOS(config-policy-forward-policy-source)# destination web-category-list Finance_Sites
action Permit_To_Internet host priority 100
ACOS(config-policy-forward-policy-source)# destination class-list Internal_Destinations
action Permit_Software-Updates host priority 200
ACOS(config-policy-forward-policy-source)# destination class-list Allowed_Client-urls
action Permit_To_Internet url priority 300
ACOS(config-policy-forward-policy-source)# destination class-list Update_Destinations
action Permit_To_Internet host priority 400
ACOS(config-policy-forward-policy-source)# destination web-category-list Search_Sites
action Default_Deny host priority 500
ACOS(config-policy-forward-policy-source)# destination class-list Forbidden_Destination
action Default_Deny ip priority 600
ACOS(config-policy-forward-policy-source)# exit
ACOS(config-policy-forward-policy)# source Allowed_Servers
ACOS(config-policy-forward-policy-source)# match-class-list Corporate_Servers
ACOS(config-policy-forward-policy-source)# destination class-list Update_Destinations
action Permit_To_Internet host priority 100
ACOS(config-policy-forward-policy-source)# exit
ACOS(config-policy-forward-policy)# exit
ACOS(config-policy)# exit
page 539
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
Create a category list from pre-existing lists under web-category. These lists can be used in addition to,
or as a replacement for destination class lists shown in the Advanced Explicit Proxy Configuration
(GUI). A valid webroot license is required, and web categories must be enabled for this feature to work.
An example for creating two category lists follow. Take the following steps:
Similar to destination class lists, category-lists from Web Categories can be used in the source class
rule, either supplementing or replacing them. For a source policy destination rule, to use a category list
from web category, choose Web Category for the Destination Rules Match Type instead of Class List.
Below is an example showing the steps to modify the destination rules for source policy Allowed_Cli-
ents in the Advanced Explicit Configuration GUI example of existing destination class lists with cate-
gory lists.
page 540
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
Logging
HTTP requests handled by this feature can be logged based on the outcome of the request:
• Permitted
• Denied (dropped)
Message Examples
Here are some examples of log messages for the explicit HTTP-proxy feature. Each of them shows
information about an HTTP request intercepted by the HTTP virtual port.
The following requests are from source (client) 31.31.31.15. The client IP address is translated to NAT
address 41.41.41.99. ACOS replaces the source IP address of requests with this NAT address before
forwarding them to the destinations. The three cases shown below for drop, forward to service group,
and forward to Internet.
Drop:
Apr 01 2015 14:16:47 Info [ACOS]:Proxy GET [drop- (s1 priority#1)]:www.a4.com url http:/
/31.31.31.15 from 31.31.31.10:14993, to 0.0.0.0:0
Forward to service-group:
Apr 01 2015 14:16:44 Info [ACOS]:Proxy GET [server- (s1 priority#500)]:www.a3.com url
http://31.31.31.15 from 31.31.31.10:65518, snat 41.41.41.99:2194 to 41.41.41.20:80
Apr 01 2015 14:16:44 Info [ACOS]:Proxy GET [select-server- (s1 priority#500)]:www.a3.com
url http://31.31.31.15 from 31.31.31.10:65518, to 0.0.0.0:0
Forward to internet:
Apr 01 2015 14:16:40 Info [ACOS]:Proxy GET [internet- (s1 priority#1024)]:www.a1.com url
http://31.31.31.15 from 31.31.31.10:59605, snat 41.41.41.99:2185 to 20.20.20.22:80
In the case when a web category is found, it will also appear in the log message.
page 541
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
To display statistics for HTTP explicit proxy, use the show slb http-proxy command. The following
shows a sample output for show slb http-proxy.
page 542
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
Req retransmit 0
Req pkt out-of-order 0
Server reselection 0
Server premature close 0
Server conn made 7
Source NAT failure 0
Tot data before compress 0
Tot data after compress 0
Request over limit 0
Request rate over limit 0
Close on DDoS 0
To display statistics for HTTP explicit proxy, take the following steps:
To display forward policy statistics, use the show slb template policy forward-policy-stats com-
mand:
• Requests dropped
The following shows a sample output for show slb template policy forward-policy-stats.
page 543
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for HTTP Proxy
To display the statistics for the forward policy from the GUI, take the following steps:
To display HTTP Explicit Proxy web-category counters, use the command show counters web-category
category-list. The number of hits is displayed for all the various categories.
The following is a partial sample output using category-list search that contains the social network cat-
egory configured in Explicit Proxy URL Filtering Configuration (CLI):
page 544
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Proxy Chaining Overview
page 545
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Proxy Chaining Overview
SLB server policy template as an action as well as an SLB template that specifies the upstream proxy
server’s ip address and port for handling traffic.
Proxy chaining can also be applied to an upstream explicit proxy in an SSLi configuration. Information
on this configuration can be found in the SSL Configuration Guide.
page 546
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Proxy Chaining Overview
Explicit HTTP Proxy Configuration with Upstream Proxy Server (Proxy Chaining)
FIGURE 75 Explicit HTTP Proxy Configuration with Upstream Proxy Server (Proxy Chaining)
The following configuration steps are necessary to set up a proxy-chaining environment, using the
“Basic Explicit Proxy Configuration” on page 513 and “Advanced Explicit Proxy Configuration” on
page 521 set up as our initial template.
page 547
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Proxy Chaining Overview
2. Our forward-policy would change to go to the proxy server by using service group psg-3128 in the
forward-to-proxy command, replacing forward-to-internet To_Internet snat Internet_Pool in
step 6 in “Basic Explicit Proxy Configuration” on page 513.
ACOS(config)# slb template policy Explicit_Proxy
ACOS(config-policy)# forward-policy
ACOS(config-policy-forward-policy)# action Permit_to_Internet
ACOS(config-policy-forward-policy-action)# forward-to-proxy psg-3128 snat Internet_Pool
ACOS(config-policy-forward-policy-action)# log
ACOS(config-policy-forward-policy-action)# exit
ACOS(config-policy-forward-policy)# exit
ACOS(config-policy)# exit
The upstream proxy-server is configured with IP address of 192.168.111.10 and port 3128. Edit the
existing Explicit_Proxy policy template with the proxy server information and service group. by taking
these steps:
page 548
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Explicit Proxy and Secure Sockets Layer Insight Integration
14.In the Port field for Service Group, enter “3128”. click Apply, then click OK.
15.In the IPv4 Pool field, select Internet_Pool.
16.Click the Logging check box to enable logging.
17.Click Update.
page 549
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Explicit Proxy Authentication Support
page 550
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter provides an overview of explicit FTP proxy, configuration resources that are available, and
how to configure it.
When this feature is enabled, an FTP virtual port on the ACOS device intercepts FTP requests from cli-
ents, validates both the sources and the destinations, and forwards only those requests that come
from valid sources and that are sent to approved destinations. Destinations are validated based on
layer 3 IP address, and hostname strings. For approved destinations, the ACOS device performs DNS
lookups to obtain the IP addresses.
The destinations requested by clients can be filtered based on the hostname in the request’s Host
header.
• If both the source and destination are allowed, ACOS translates the client address into a NAT
address, if applicable, and forward the request to the destination.
• If either the source or the destination is not explicitly allowed by the applicable source or destina-
tion list, the request is dropped.
There are three mechanisms by which explicit FTP proxy can forward traffic: traffic may be forwarded
to the Internet, to a specified service group, or to another explicit proxy server.
Known Limitations
ACOS can be configured as an FTP load balancer (see “FTP Load Balancing” on page 155) or as an
explicit FTP proxy. It cannot function as both. Explicit SSL/TLS FTP only works with passive mode.
page 551
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for Explicit FTP Proxy
Explicit FTP Proxy differs from Secure FTP proxy (see “Secure FTP Proxy” on page 357) in the following
ways:
• FTP client provides only one pair of username/password for the FTP server.
• FTP client does not provide real FTP server address through FTP command
• FTP client can provide two username/password pairs, one for the FTP proxy and one for the FTP
server.
• FTP client provides the real FTP server address with FTP commands (SITE/OPEN/USER...)
page 552
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration Resources for Explicit FTP Proxy
If the destination rule matches, the action specified in the rule is applied.
The priority of the rule is used to break ties when multiple destination
rules are matched. The higher priority value takes precedence.
Action Defines the action Actions define what to do with the request and whether to log the event.
to take corre- The scope of the action object is within the forward policy.
sponding to the
matching rule The action can be one of the following: forward-to-internet,
forward-to-service-group, forward-to-proxy, log, or drop.
Source NAT is an optional action that may be applied. In the case of an
upstream proxy server and an SSLi configuration, forward-to-proxy is
used instead of forward-to-internet or forward-to-service-group.
Explicit Intercepts FTP Virtual port that receives FTP requests from traffic sources.
FTP-proxy requests from cli-
port ents This configuration resource consists of a real server configuration, a ser-
vice group, a virtual server, and an FTP-proxy virtual port.
page 553
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Explicit FTP Proxy
The following resources are required only if sources (clients) require source NAT.
NAT pool Assigns outside Range of public (externally routable) IP addresses to assign to clients
addresses to before forwarding the client traffic to the Internet.
inside clients
AAM Resources
The following resources are required only for authentication through aaa-policy.
AAA-policy Authenticates the Supports LDAP, RADIUS, and WINDOWS (NTLM/KERBEROS). Bind the
user through use aaa-policy at the virtual port configuration level. Explicit FTP proxy only
of aam authentica- checks the
tion server bound aaa-policy for authentication server configuration information.
to authentication-
template. If an aaa-policy is assigned in the virtual port, the explicit FTP proxy
expects the client to provide the username/password for the proxy. If
aaa-policy is not configured, the explicit FTP proxy waits for the SITE/
OPEN/USER command, then connects to the FTP server.
Basic network resources, including network interface connections to the sources and destinations and
DNS servers, are also required.
• Configure service-group for real FTP server(s) and add to the group as members
• Configure virtual port with port number and service type as ftp-proxy
• For SSL Offload, bind the client-ssl template at the virtual port configuration level.
page 554
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Explicit FTP Proxy
• Configure AAA-policy
• Bind the policy, dynamic-service templates and aaa-policy at the virtual port sub-configuration
level.
2. Create a source class list of IPv4 type. Source class lists may be of IPv4 or IPv6 types and are
defined as a list of IP subnets and network masks.
ACOS(config)# class-list cl-internet ipv4
ACOS(config-class list)# 192.0.2.0/32
ACOS(config-class list)# exit
page 555
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Explicit FTP Proxy
ACOS(config-policy-forward-policy-action)# log
ACOS(config-policy-forward-policy-action)# forward-to-service-group sg snat NAT
ACOS(config-policy-forward-policy-action)# exit
6. Configure the source match rules and actions to apply based on the match and priority.
ACOS(config-policy-forward-policy)# source src-internet
ACOS(config-policy-forward-policy-source)# match-class-list cl-internet
ACOS(config-policy-forward-policy-source)# destination any action act-internet
ACOS(config-policy-forward-policy-source)# exit
ACOS(config-policy-forward-policy)# source bad-dest
ACOS(config-policy-forward-policy-source)# destination web-category-list Wrong action
drop host priority 100
ACOS(config-policy-forward-policy-source)# exit
ACOS(config-policy-forward-policy)# source src-sg
ACOS(config-policy-forward-policy-source)# match-any
ACOS(config-policy-forward-policy-source)# destination any action act-sg
ACOS(config-policy-forward-policy-source)# exit
ACOS(config-policy-forward-policy)# exit
ACOS(config-policy)# exit
7. Configure the aam authentication servers. An LDAP and RADIUS server are configured in this
example.
ACOS(config)# aam authentication server ldap ldap
ACOS(config-ldap auth server:ldap)# host 203.0.113.72
ACOS(config-ldap auth server:ldap)# base ou=People,dc=mdept,dc=com
ACOS(config-ldap auth server:ldap)# dn-attribute uid
ACOS(config-ldap auth server:ldap)# exit
ACOS(config)# aam authentication template ldap-ex
ACOS(config-auth template:ldap-ex)# server ldap
ACOS(config-auth template:ldap-ex)# exit
ACOS(config)# aam authentication server radius rad-svr2
ACOS(config-radius auth server:rad-svr2)# host 203.0.113.71
ACOS(config-radius auth server:rad-svr2)# secret example
ACOS(config-radius auth server:rad-svr2)# exit
ACOS(config)# aam authentication template rad-ex
ACOS(config-auth template:rad-ex)# server rad-svr2
ACOS(config-auth template:rad-ex)# exit
9. Create the aam aaa-policy which contains the authentication servers that were created.
ACOS(config)# aam aaa-policy my-aaa-policy
ACOS(config-aaa policy:my-aaa-policy)# aaa-rule 1
ACOS(config-aaa policy:my-aaa-policy-aaa ...)# access-list 2
ACOS(config-aaa policy:my-aaa-policy-aaa ...)# authentication-template ldap-ex
ACOS(config-aaa policy:my-aaa-policy-aaa ...)# exit
page 556
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Explicit FTP Proxy
10.Ensure the aaa-policy, template policy and dynamic service templates are bound under the ftp-
proxy virtual port.
ACOS(config)# slb virtual-server ftp-vip 192.168.91.105
ACOS(config-slb vserver)# port 21 ftp-proxy
ACOS(config-slb vserver-vport)# source-nat auto
ACOS(config-slb vserver-vport)# service-group sg
ACOS(config-slb vserver-vport)# aaa-policy my-aaa-policy
ACOS(config-slb vserver-vport)# template policy policy-template
ACOS(config-slb vserver-vport)# template dynamic-service ds
ACOS(config-slb vserver-vport)# exit
ACOS(config-slb vserver)# exit
page 557
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Explicit FTP Proxy
page 558
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Explicit FTP Proxy
page 559
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Explicit FTP Proxy
d. In the IPv4 DNS Server 1 field, enter “203.0.113.50” for the DNS server.
e. Click OK.
4. Bind the policy template and dynamic service template to the virtual port.
a. Navigate to ADC>>SLB and click on the Virtual Servers tab.
b. Click Edit for “vip-ftp”, our virtual server.
c. In the Virtual Port section, click Edit on the configured virtual port.
d. Expand the Templates section by clicking on +.
e. In the Template Policy list, select the policy template “policy-template” to bind to the virtual port.
f. In the Dynamic Service list, select the dynamic service template “dynamic-service” to bind to the
virtual port.
g. Click Update to complete configuration update to virtual port.
h. Click Update to complete configuration update to virtual server.
The following example shows output from the show slb ftp-proxy command.
page 560
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Explicit FTP Proxy
open cmd 0
site cmd 0
user cmd 0
pass cmd 0
quit cmd 0
port cmd 0
cant find port 0
eprt commnad 0
cant find eprt 0
other cmd 0
line too long 0
client auth tls 0
pasv cmd 0
cant find pasv 0
psv addr != svr 0
smp create fail 0
data svr conn fail 0
data send fail 0
epsv command 0
cant find epsv 0
Unsupported auth 0
adat cmd 0
Unsupported PBSZ 0
Unsupported PROT 0
Umsupported cmd 0
Control chn clear txt 0
Control chn ssl 0
Bad Sequence 0
Serv Sel Persist fail 0
Serv Sel SMPv6 fail 0
Serv Sel SMPv4 fail 0
Serv Sel ins tpl fail 0
Client EST state erro 0
Serv CTNG state erro 0
Serv RESP state erro 0
Client RQ state erro 0
Data Start state erro 0
Data Serv CTNG erro 0
Data Serv CTED erro 0
Auth Request 0
Auth Success 0
Auth Failure 0
Forward to Internet 0
Forward to Service-group 0
page 561
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Explicit FTP Proxy
Drop 0
Resolved Host Name 0
Unresolved Host Name 0
The clear slb ftp-proxy command clears the counters that appear in the show slb ftp-proxy output
page 562
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Figure 76 below shows a sample ICAP topology. On traffic from the client to the Web server, ICAP typi-
cally serves to provide data loss prevention (DLP). Whereas, on traffic from the Web server to the client,
ICAP typically provides anti-virus (AV) services.
Configuring ICAP
Before you can configure your network for ICAP, you must select where to provision your network with
ACOS devices acting as forward proxy servers. That is, in order to intercept HTTP and HTTPS sessions
as the man-in-the-middle and use ICAP services, forward proxy is a prerequisite.
page 563
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring ICAP
• Deployment overviews and configuration instructions for the ACOS man-in-the-middle SSL
Insight (SSLi) application are provided in the SSL Insight Configuration Guide.
• For detailed information on configuring ICAP in an SSLi deployment, see the “Redirection of SSLi
Sessions to ICAP Servers” chapter of the SSL Insight Configuration Guide.
page 564
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Figure 77 below shows a sample Thales HSM topology. On traffic from the client to the Web server, the
ACOS device is proxy for SSL offloading. Then the ACOS device communicates with the Thales HSM
during the SSL handshake to use information stored in the Thales HSM Device.
page 565
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Thales HSM Device Support Overview
• Install Thales HSM SDK into the Current Backup System File
2. Run rfs-sync.
# /opt/nfast/bin/rfs-sync --update
page 566
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Thales HSM Device Support Overview
# ls thalesssl*
thalesssl thalesssl_req thalesssl_selfcert
# key file : thalesssl cert file : thalesssl_selfcert
1. Import the Thales certificate and key that have been generated by a Thales client into the ACOS
device (where 192.168.213.78 is a Thales client):
ACOS# import cert thalesssl_selfcert use-mgmt-port scp://192.168.213.78/opt/nfast/
kmdata/local/thalesssl_selfcert
ACOS# import key thalesssl use-mgmt-port scp://192.168.213.78/opt/nfast/kmdata/local/
thalesssl
2. Use the backup system command to save a backup file to a x86_64 Linux machine (where
10.6.12.201 is the Linux machine).
ACOS# backup system use-mgmt-port scp://10.6.12.201/tmp/acos_backup.tar
1. Change directories to the tmp directory (where tmp is the directory where the backup file is saved)
# cd /tmp
2. Extract the Thales SDK files from the mounted media to the current directory.
# tar -xvf /media/iso/linux/libc6_11/amd64/nfast/ctls/agg.tar -C ./
# tar -xvf /media/iso/linux/libc6_11/amd64/nfast/hwcrhk/user.tar -C ./ <== For SSL
# tar -xvf /media/iso/linux/libc6_11/amd64/nfast/hwsp/agg.tar -C ./
# tar -xvf /media/iso/linux/libc6_11/amd64/nfast/pkcs11/user.tar -C ./ <== For DNSSEC
Install Thales HSM SDK into the Current Backup System File
Complete the following steps on the Linux machine.
1. Install THales HSM SDK into current backup system file (file size increases after issuing the com-
mand):
# tar cvf acos_backup.tar a10data -C /
page 567
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Thales HSM Device Support Overview
2. Reboot.
ACOS# reboot
Configure the SLB service group and add the web server as a member.
Configure the client SSL template and bind the HSM template and cert/key for TLS sessions with cli-
ents. Only client-side SSL is supported.
Configure the SLB virtual server IP. Both IPv4 and IPv6 addresses are supported. Only HTTPS and SSL-
proxy virtual port type are supported. Bind the service group and client SSL template to the virtual port.
page 568
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Thales HSM Device Support Overview
ACOS# reboot
Depending on the number of keys stored on the RFS, it will take several minutes to synchronize infor-
mation between the ACOS device and the Thales RFS and to be ready to handle SSL traffic after a
reboot.
page 569
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Thales HSM Device Support Overview
page 570
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Part VI Part VI
Logging
This section contains topics pertaining to logging server load balancing activities.
This chapter describes the ACOS support for logging to external servers over TCP.
ACOS supports web logging for HTTP virtual ports, which can be used with HTTP load balancing or
RAM caching. Web logging for load-balanced HTTP servers provides data about client access to serv-
ers. Web logging for RAM caching provides information about client access to content cached on the
ACOS device.
Web logging to external log servers is supported over TCP and UDP. Logging over TCP is applicable to
web logging for HTTP virtual ports. The rest of this chapter describes this use of the feature.
Here is an example:
This example uses a default log string. See “Log String Customization” on page 578 for instructions on
configuring custom log strings.
Configuration
To configure web logging:
1. Create a server configuration for each log server. On each server, add a TCP port with the port
number on which the log server listens for log messages.
2. Add the log servers to a service group. Make sure to use the round-robin load-balancing method.
(This is the default method.)
3. (Optional) Configure a TCP-proxy template to customize TCP settings for connections between the
ACOS device and log servers. For example, keepalive probes can be enabled to ensure TCP con-
page 573
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
nections with log servers remain established during idle periods between logs. (See CLI example
below.)
4. Configure a logging template. Add the service group containing the log servers to the logging tem-
plate. If you configure a custom TCP-proxy template, also add that template to the logging tem-
plate.
5. To log web traffic sent to load-balanced HTTP servers, create a custom HTTP template and add
the logging template to it.
6. To log web traffic served from the ACOS device’s local RAM cache, create a custom RAM Caching
template and add the logging template to it.
7. On the VIP, add the HTTP or RAM Caching template (or both) to the HTTP virtual port.
This section describes the GUI steps related to logging templates. The configuration steps for the real
servers, service groups, and VIPs are the same as without use of logging templates.
page 574
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
To configure a logging template, use the slb template logging command to change the CLI to the
configuration level for the template, where the service-group command is available to specify the
name of the service group that contains the log servers.
This template tcp-proxy command specifies the name of the TCP-proxy template to use for managing
TCP sessions between the ACOS device and the log servers.
Use the template logging command at the configuration level for the HTTP template:
Use the template logging command at the configuration level for the RAM Caching template:
CLI Example
The following commands configure web logging for an IPv4 virtual port and an IPv6 virtual port. On
each virtual port, web logging is enabled both for HTTP load-balanced client-server traffic and for client
access to content that is cached in the ACOS device's RAM cache.
In this example, two real servers are used as HTTP content servers and as logging servers. Clients send
requests for HTTP content to port 80. ACOS either serves the requested from the local RAM cache, if
available, or sends the request to one of the servers.
In this example, the ACOS device uses the same servers as the content servers and as the logging serv-
ers. Client requests for HTTP content are sent to port 80. Log traffic is sent to one of the following
ports:
• 4999 – TCP port listening for log traffic sent over IPv4.
• 5999 – TCP port listening for log traffic sent over IPv6.
page 575
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
The following commands configure the service groups for the applications clients will access:
The following commands configure the TCP-proxy template, to enable keepalive probes:
page 576
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuration
These commands configure the VIPs. The configuration of the snat and snat6 NAT pool referenced in
the example is not included.
page 577
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Log String Customization
In this log message, Feb 1 19:30:53 is the timestamp of when the log was received. The IP address of
the server that received the log is 11.0.0.40. The remaining content of the log message is constructed
according to the format string (defined by the format command that is configured within the logging
template).
Table 12 describes W3C format characters supported on the ACOS device and references content in
the example log message above.
page 578
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Log String Customization
• %Y – year
• %m – month
• %d – day
• %H – hour
• %M – minute
• %S – seconds
%{USER-AGENT}i User-agent sending the request “Wget/1.12 (linux-gnu)”
%{REFERER}i Referer of a request “OK”
%H HTTP request protocol HTTP/1.0
%v Name of the virtual server that processed the Vip1
request
Control Characters
In addition to the format characters described in Table 12, ACOS supports the following control
characters:
page 579
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Log String Customization
• \\r – Tab
Format Consideration
If the format of a string includes an unsupported character, the log message will contain only the first
section of valid information leading up to the unsupported character. Even if the log message contains
supported content after the unsupported character, the latter section of supported content is not
included in the log message. For example, given the structure below:
The log message breaks at <unsupported “B”>, displaying only content associated with <supported
“A”>.
For example, given the logging format “%P%A%a%p”, “%P” is not supported and as a result nothing is
parsed into a log message.
For the logging format “%p%P%a%A”, the content after the unsupported “%P” format character is not
included in the log message and the information for “%p” is the only content parsed into a log message.
To view which characters are parsed in a format string, use the show slb template logging command.
NOTE: Do not use the question mark (?) as a literal character for log messages.
This example shows how to use the format command to create a log format, then use the show slb
template logging command to verify the configuration:
page 580
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Log String Customization
page 581
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Log String Customization
page 582
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
• Overview
Overview
ACOS provides real-time notifications for when the system has detected a failed server selection. Log
entries include the cause of the event and users are immediately notified of the instance. In addition to
the system log entry, you can configure alerts using SNMP traps, enabling you to immediately respond
to server selection failure.
1. Within a server template, enable alerts for failed server selection and apply to the SLB server.
2. Apply the template to one or more real servers.
3. Add these servers to a service group, and apply the service group to a virtual server.
4. Configure SNMP traps for immediate event notifications of failed server selection. The SNMP trap
notification will include information such as the server name, IP address, server port, partition
name, and known cause for server selection failure.
• Configure Logging
page 583
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using the GUI to Configuring Real-Time Logging
Configure Logging
To configure logging:
1. Hover over ADC (menu bar) and select Templates. Select the SLB tab (should be selected by
default).
2. Click Create and select Server from the drop-down menu.
3. Enter a name and other information for the template. (See online help for details on mandatory
fields.)
4. Select checkbox in the Log Selection Failure field.
This option enables real-time logging for the server selection failure event.
page 584
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using the GUI to Configuring Real-Time Logging
1. Hover over System in the menu bar, then select Getting Started.
2. In the SNMP section, click the Edit (Pencil) button.
3. For System SNMP Service, select the Enable radio button.
4. In the Trap List section, select the Server Selection Failure trap in the “SLB Group” section.
page 585
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using the CLI to Configure Real-Time Logging
The following example shows the configuration of a server with enabled logging of failed server selec-
tion and SNMP notification alerts.
Create a server and apply the template with logging enabled for failed server selection.
The following is an example of show command output after an instance of failed server selection:
page 586
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using the CLI to Configure Real-Time Logging
page 587
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using the CLI to Configure Real-Time Logging
page 588
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This section contains topics pertaining the optimizing the performance of your ACOS device.
If the ACOS device is running short on sessions, you can use stateless SLB where applicable to make
more sessions available for traffic that requires session table entries.
• Other types of traffic that do not require features that use session-table entries. (See “Stateless
Load Balancing Limitations” on page 592.)
You can enable stateless SLB on an individual service-group basis, by selecting a stateless SLB load-
balancing method for the group. (See “Use the CLI to Configure Stateless Load Balancing” on
page 593.)
page 591
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Stateless Load Balancing Limitations
• Stateless Source IP+Port Hash – Balances server load based on a hash value calculated using
the source IP address and source TCP or UDP port.
• Stateless Destination IP+Port Hash – Balances server load based on a hash value calculated
using the destination IP address and destination TCP or UDP port.
• Stateless Source and Destination IP Hash – Balances server load based on a hash value calcu-
lated using both the source and destination IP addresses, and the source and destination TCP or
UDP ports.
• Stateless Source IP Only Hash – Balances server load based on a hash value calculated using
the source IP address only.
• Stateless Per-Packet Round Robin – Balances server load by sending each packet to a different
server, in rotation.
• Rate limiting
• ACLs
• IP source NAT
• Session synchronization
• Layer 3 DSR
• SLB-PT
• aFleX
A given real server can be used in only one stateless SLB service group. The ACOS will assume any traf-
fic coming from a real server in a stateless SLB service group is response traffic and needs to be pro-
cessed through the virtual IP address. A real server that is in a stateless SLB service group cannot be
used in any other stateless service groups.
Adding or removing a member of the service group will cause the ACOS device to recalculate the distri-
bution hash, potentially causing existing connections to be sent to different servers.
When a health check marks a member of the service group down, there is a pre-calculated backup hash
that allows the connections associated with the failed server to be evenly redistributed to other servers.
page 592
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Stateless Load Balancing
When the failed member is marked back up by the health check, the redistributed connections will
immediately be sent back to the original server based on the primary hash.
If the virtual port is on a wildcard VIP, destination NAT must be disabled on the virtual port.
Graceful transitions between stateful and stateless SLB in a service group are not supported.
Mega-proxies may interfere with equal balancing of traffic load among the multiple data CPUs. In this
case, for DNS traffic only, try using the stateless-per-pkt-round-robin method.
The stateless-per-pkt-round-robin method is applicable only for traffic that uses a single packet for
a request. Examples include DNS queries or RADIUS requests without a Challenge-request/Response
message used for EAP.
page 593
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Stateless Load Balancing
page 594
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes stateful hash-based load balancing. The following topics are covered:
One difference between stateless load balancing and stateful load balancing is that stateful load bal-
ancing uses the ACOS session table to manage sessions. Stateless load balancing does not use the
session table.
• src-ip-hash – Hash value based on source IP address and protocol port of client request.
• src-ip-only-hash – Hash value based on only the source IP address of the client request.
• dest-ip-hash – Hash value based on destination IP address and protocol port of client request.
• odd-even-hash – Two-value hash based on even-odd result of the sum of the source IP address
octets.
page 595
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Stateful Hash-Based Load Balancing
When a client initiates a session by sending a request, the ACOS device calculates a hash value based
on address information in the request. The ACOS device then sends the request to the server to which
the calculated hash value belongs. All subsequent traffic for that session is sent to the same server.
If the server used by the client session goes down (for example, fails a health check), the ACOS device
recalculates the hash buckets, and sends the client to one of the available servers. For persistence, the
ACOS device continues to use the new server for the client, even when the down server comes back up.
The hash calculation always results in the same hash value, on any ACOS device running this software
version. This consistency is important in cases where a client’s session traffic might pass through dif-
ferent ACOS devices. For example, the consistent hash values hash are important in Equal Cost Mul-
tipath (ECMP) topologies in which multiple ACOS devices are deployed.
page 596
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS has a service-group option that begins using stateless load balancing instead of stateful load
balancing, based on traffic. You can configure the change from stateful to stateless load balancing to
be triggered based on connection rate or Layer 4 session use.
This feature supports only a single virtual port per service group. If you configure this feature on a ser-
vice group, you can use that service group with only one virtual port.
You can configure the following options for this feature. Although only some of these options must be
specified when you configure the feature, none of the options has a default value.
• Connection rate – Rate of new connection requests per second at which the load balancing
method is changed. The rate applies collectively to all servers in the service group. The thresh-
old can be 1-1000000 connection requests per second.
• Layer 4 session use – Percentage of the system-wide Layer 4 session capacity that is currently
in use. The threshold can be 1-100 percent.
• Trigger duration – Number of seconds during which the specified trigger must continue to occur
before the service group changes to stateless load balancing. Value ranges from 1 to 600 sec-
onds.
• (Optional) Revert trigger – Connection rate or Layer 4 session use percentage at which the ser-
vice group can revert to using stateful load balancing.
• For connection rate, the threshold can be 1-1000000 connection requests per second.
• For Layer 4 session use, the threshold can be 1-100 percent.
• (Optional) Revert duration – Number of seconds when the specified revert trigger must continue
to occur before the service group changes to stateful load balancing again. Value ranges from 1
to 600.
• (Optional) Grace period – Interval (seconds) where ACOS device uses current load balancing
method for active sessions, before changing to the other load balancing method. Value ranges
from 1 to 600.
The grace period applies only to sessions that are active when the load balancing change is trig-
gered. The change applies immediately to new sessions that begin after the change is triggered.
• Logging – Logs changes between stateful and stateless load balancing that occur due to this
feature. Logging is disabled by default.
page 597
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
CLI Example 1
These commands configure a service group that uses the stateless-per-pkt-round-robin stateless load-
balancing method. This method is used if the rate of new connection requests to the virtual port bound
to the service group reaches 80,000 connections per second, and remains at least this high for 300
seconds.
To return to using the stateful load-balancing method (weighted round-robin in this example), the rate
of new connection requests to the virtual port must drop to 60,000 per second and remain that low for
at least 300 seconds. Once this occurs, the ACOS device waits an additional 15 seconds (the grace
period) before returning to use of stateful load balancing. Logging is enabled.
To manually reset the service group to stateful SLB, use the reset auto-switch command at the con-
figuration level for the service group.
CLI Example 2
In the following configuration, if Layer 4 session usage reaches 2 percent and stays at least this high
for 5 seconds, both service-group members begin using the stateless-dst-ip-hash method. ACOS
reverts back to stateful load balancing when 1 percent or less is reached for 5 seconds.
page 598
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 599
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 600
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Generic TCP-Proxy
The generic TCP-proxy service type provides full TCP-stack service for load-balanced Layer 7 applica-
tions.
The TCP-proxy service type is useful in cases where the standard service type for an application does
not provide a superior user experience. For example, in a Real Time Streaming Protocol (RTSP) deploy-
ment where performance is slow because the server or client enables a large TCP window size, ACKs
are delayed, and so on, using the TCP-proxy service type instead of the RTSP service type can improve
performance.
To assign the TCP-proxy service type to a virtual port, use the port num tcp-proxy command at the
configuration level for the virtual server.
The following commands configure the real servers, service groups, and VIPs for an IPv4/IPv6 RTSP
application using the tcp-proxy service type.
page 601
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 602
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes how to configure parameters for multiple servers and service ports using server
and port templates.
• Overview
• Connection Limiting
• Slow-Start
• Graceful Shutdown
Overview
ACOS supports the following types of templates for configuration of SLB servers and ports:
These template types provide the same benefit as other template types. They allow you to configure a
set of parameter values and apply the set of values to multiple configuration items. In this case, you
page 605
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview
can configure sets of parameters (templates) for SLB assets (servers and service ports) and apply the
parameters to multiple servers or ports.
Some of the parameters that can be set using a template can also be set or changed on the individual
server or port.
• If a parameter is set (or changed from its default) in both a template and on the individual server
or port, the setting on the individual server or port takes precedence.
• If a parameter is set (or changed from its default) in a template but is not set or changed from its
default on the individual server or port, the setting in the template takes precedence.
The default server and port templates are each named “default”. The default settings in the templates
are the same as the default settings for the parameters that can be set in the templates.
If you are upgrading an ACOS device that has a configuration saved under a previous release, the
default server and port templates are automatically bound (applied to) the servers and ports in the con-
figuration. This does not change the configuration or operation of the servers and ports themselves,
since the default server and port templates use the default settings for all parameters, unless overrid-
den by parameter settings on the individual servers and ports.
You can modify a default template by creating a new one named “default” and modifying the settings
you want to change. The new template replaces the previous one.
In addition to configuring custom server, port, virtual-server, or virtual-port templates, you can modify
the default templates. Before changing a default template, make sure the changes you plan to make
are applicable to all servers or ports that use the template.
page 606
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview
page 607
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview
The following parameters apply to dynamic server creation using DNS. (For more
information about this feature, see “Dynamic Real Server Creation Using DNS” on
page 103.)
DNS query interval Specifies how often the ACOS device sends DNS queries for
the IP addresses of dynamic real servers.
Dynamic server prefix Changes the prefix added to the front of dynamically created
servers.
Minimum TTL ratio Specifies the minimum initial value for the TTL of dynamic
real servers.
Maximum dynamic Specifies the maximum number of dynamic real servers that
servers can be created for a given hostname.
Real Server Port Health monitor Assigns a configured Layer 4-7 health monitor to all service
ports that use the template. (See “Configuring and Applying a
Health Method” on page 638.)
In-band health moni- Provides rapid server status change and reassignment
tor based on client-server traffic.
page 608
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview
page 609
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Server and Port Templates
page 610
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring Server and Port Templates
• Port
• Server
• Virtual Port
• Virtual Server
3. The configuration page for the specified template appears. Enter a name for the template (if the
template is new).
4. Enter or edit the other settings. (See the descriptions in the sections below for information.)
5. When finished, click OK to create a new template for the port, server, virtual port, or virtual server.
6. Click the Save icon at the upper right-most corner of the GUI window.
To configure server and service-port templates, use these commands at the global configuration level.
These commands change the CLI to the configuration level for the template. To modify the default tem-
plate, specify the name “default” (without the quotation marks).
CLI Example
The following commands configure a new real server template and bind the template to two real serv-
ers:
page 611
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Applying a Server or Service Port Template
This example includes the commands to bind the template to real servers. For information about bind-
ing the templates, see “Applying a Server or Service Port Template” on page 612.
Table 14 lists the types of bindings that are supported for server and port templates.
Binding a server port template to a service port within a service group provides a finer
level of control than binding the template directly to a port. When the template is bound
to the port only within a service group, and not bound to the port directly, the template
settings apply to the port only when the port is used by the service group.
The settings do not apply to the same port if used in other service groups.
Virtual Server Virtual servers
Virtual Server Port Virtual server ports
The following subsections describe how to bind server and port templates to servers, ports, and service
group members. For configuration examples, see the feature sections referred to in Table 13 on
page 607.
page 612
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Applying a Server or Service Port Template
The following example shows how to bind the server template sv_template1 to a real server:
The following example shows how to bind the port template pt_template1 to a real server port:
page 613
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Applying a Server or Service Port Template
The following example shows how to bind the virtual server template vs_template1 to a virtual server:
The following example shows how to bind the default virtual port template to a virtual service port:
page 614
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Connection Limiting
The following commands bind the server port template rsp_template to rs1 in service group sg1:
Connection Limiting
By default, the ACOS device does not limit the number of concurrent connections on a server or service
port. To prevent servers or services from becoming oversaturated, you can set a connection limit. The
ACOS device stops sending new connection requests to a server or port when that server or port
reaches its maximum allowed number of concurrent connections.
Connection limiting can be set in real server templates, real port templates, virtual server templates,
and virtual port templates.
If you change the connection limiting configuration on a virtual port or virtual server with active ses-
sions, or in a virtual-port or virtual-server template bound to the virtual server or virtual port, the current
connection counter for the virtual port or server in show command output and in the GUI may become
incorrect. Avoid this by not changing connection limiting configuration when the server or port has
active connections.
page 615
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Connection Rate Limiting
The following commands set the connection limit to 500,000 concurrent connections in a real server
template, then bind the template to real servers:
page 616
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Connection Rate Limiting
When you configure connection rate limiting, you can set the following parameters:
• Connection rate limit – The connection rate limit specifies the maximum of new connections
allowed on a server or service port. By default, the connection rate limit is not set.
• Interval – The interval specifies whether the connection rate limit applies to one-second intervals
or 100-ms intervals. The default is one-second intervals.
• Action for excess connections (virtual servers or virtual server ports only) – The action specifies
how the ACOS device responds to connection requests after the connection rate has been
exceeded. The action can be to silently drop excess connections or to send a reset (RST) to client
requesting the connection. The default action is to silently drop the excess connection requests.
• Logging – By default, the ACOS device generates log messages when the rate limit is exceeded.
A server or service port that reaches its connection limit is no longer used by the ACOS device.
This section displays the method of configuring connection rate limiting in a real server template, then
binding the template to real servers.
The commands below configure a connection rate limit of 50000 per 100ms:
If you configure a limit for a server and also for an individual port, the ACOS device uses the lower limit.
For example, if you limit new TCP connections to a real server to 5000 per second and also limit new
HTTP connections to 1200 per second, the ACOS device limits connections to TCP port HTTP to 1200
per second.
The commands below bind this template with the configured rate limit to real servers rs1 and rs2:
page 617
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Slow-Start
Slow-Start
The slow-start feature allows time for a server or real service port to ramp up after TCP/UDP service on
a server is enabled, by temporarily limiting the total concurrent connections on the server or port. You
can configure slow-start parameters described in this section in real server templates and real port
templates.
The slow-start feature is not used for a port if the real-port template is applied to the port as part of the
member configuration in a service group. In this case, if slow-start is configured in the port template,
the slow-start settings are ignored for that service-group member.
Ramp-Up Parameters
By default, slow-start allows a maximum of 128 new connections during the first interval (anywhere
between 0 and 10 seconds). During each subsequent 10-second interval, the total number of concur-
rent connections allowed to the server is doubled. Thus, during the first 20 seconds, the server is
allowed to have a total of 256 concurrent connections. After 59 seconds, slow-start ends the ramp-up
and no longer limits the number of concurrent connections. Table 15 shows the default ramp-up.
The initial ramp-up interval can be any duration from 0 up to the configured interval (10 seconds by
default). After the initial ramp up, each subsequent ramp-up occurs at the end of the configured inter-
val.
page 618
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Slow-Start
• Starting connection limit – The starting connection limit is the maximum number of concurrent
connections to allow on the server or service port after it first comes up. You can specify from 1-
4095 concurrent connections. The default is 128.
• Connection increment – Connection increment specifies the amount by which to increase the
maximum number of concurrent connections allowed. Use one of these methods to specify the
increment:
• Scale factor (This is the default.) – The scale factor is the number by which to multiply the start-
ing connection limit. For example, if the scale factor is 2 and the starting connection limit is 128,
the ACOS device increases the connection limit to 256 after the first ramp-up interval. The scale
factor can be 2-10. The default is 2.
• Connection addition – As an alternative to specifying a scale factor, you can instead specify
how many more concurrent connections to allow. You can specify 1-4095 new connections.
• Ramp-up interval – The ramp-up interval specifies the number of seconds between each
increase of the number of concurrent connections allowed. For example, if the ramp-up interval is
10 seconds, the number of concurrent connections to allow is increased every 10 seconds. The
ramp-up interval can be 1-60 seconds. The default is 10 seconds.
• Ending connection limit – The ending connection limit is the maximum number of concurrent
connections to allow during the final ramp-up interval. After the final ramp-up interval, the slow
start is over and does not limit further connections to the server. You can specify from 1-65535
connections. The default is 4096.
For the connection increment, you can specify a scale factor or a connection addition. The ending con-
nection limit must be higher than the starting connection limit.
If a runtime connection limit is also configured on the server or port (for example, by “Connection Limit-
ing” on page 615), and the normal connection limit is smaller than the slow-start ending connection
limit, the ACOS device limits slow-start connections to the maximum allowed by the normal connection
limit.
Behavior When Slow Start Is Also Configured on the Real Server Itself
You can enable slow-start on individual real servers. However, ramp-up settings on individual servers
are not configurable. The settings are the same as default ramp-up settings in server and port tem-
plates. It is recommended to configure slow start only in a server template or port template, not on the
real server.
If you do configure slow-start both on the real server itself and in a real server template or real port tem-
plate, the actual slow-start behavior can differ from the behavior configured in the template.
• If slow start is configured on the real server and in a real server template, the slow-start settings
on the real server are used and the settings in the template are ignored. It is recommended to
configure slow start only in a real server template or real port template.
• If slow start is configured on the real server and in a real port template, the lower number of con-
nections allowed by either of the configurations at a given interval is used.
page 619
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Slow-Start
In the configuration section for the real server template or real port template:
To configure slow-start, use the slow-start command at the configuration level for a real server or real
service port. The following commands enable slow start in a real server template, using the default set-
tings, and bind the template to real servers.
page 620
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Request Rate Limiting
To configure request rate limiting for real ports, use the request-rate-limit command at the configu-
ration level for the real port template.
This example configures a request rate limit of 5000 requests per 100 milliseconds and programs the
device to send an RST to a client that sends a new request during an interval when the request rate is
exceeded. By default, requests that are received after the limit is exceeded are dropped with no RST.
Graceful Shutdown
You can configure a grace period for Down servers. ACOS will continue to forward packets to Down
ports for the duration of the grace period.
This option is useful for taking servers down for maintenance without immediately impacting existing
sessions on the servers. The grace period can be 1-86400 seconds.
Notes:
• The service group must contain 2 or more servers for this feature to work.
• This feature supports stateless and stateful load balancing. However, the feature is not sup-
ported for stateful hash load-balancing methods, such as source-IP-based or destination-IP-
based hashing.
page 621
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Gratuitous ARPs for Subnet VIPs
To configure the grace period, use the down-grace-period command at the configuration level for the
real port template. For example:
By default, the ACOS device sends gratuitous ARPs for only the first IP address in a subnet VIP. You
can enable the ACOS device to send gratuitous ARPs for all the IP addresses within a subnet VIP.
This option applies only to VIPs that are created using a range of subnet IP addresses. The option has
no effect on VIPs created with a single IP address.
To enable gratuitous ARPs for all VIPs in subnet VIPs, use the subnet-gratuitous-arp command at the
configuration level for the virtual server template used to configure the VIPs.
The following commands modify the default virtual server template to enable gratuitous ARPs for sub-
net VIPs. The change applies to all subnet VIPs that use the default template for virtual server configu-
ration.
page 622
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
aFlow Request Queuing
When aFlow is enabled, the ACOS device queues HTTP/HTTPS packets from clients when a server port
reaches a configured connection limit, instead of dropping them. ACOS then monitors the port, and
begins forwarding the queued packets when connections become available again. To prevent flooding
of the port, the ACOS device forwards the queued packets at a steady rate.
Earlier releases provide this capability with the SmartFlow option in connection-reuse templates. The
aFlow feature in ACOS Release 2.6 does not require use of a connection-reuse template. You can
enable aFlow in a virtual port template instead.
For backwards compatibility, you can enable aFlow using a connection-reuse template. However, only
one implementation, either in a virtual server template or in a connection-reuse template, is supported.
If you change from one implementation to the other, a reload or reboot is required to place the change
into effect.
• If connection limit is configured on the real server or real port – The backend real server or real
port reaches its configured connection limit.
• If connection limit is not configured on the real server or real port – Response time of the back-
end real server or real port increases dramatically. Response time is the time between when the
ACOS device forwards a request to the server, when the ACOS device receives the first reply
packet from the server.
When aFlow control is triggered, the ACOS device queues request packets instead of forwarding them
to the server. After the response time returns to normal, the ACOS device sends the queued packets to
the server.
In the current release, it is recommended to use the first method for triggering aFlow, by configuring
connection limits on the real servers or real ports. The second method of triggering aFlow is still being
refined and is considered to be in Beta status.
page 623
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
TCP Reset Option for Session Mismatch
If you change the aFlow setting for a virtual port, or the connection limit or connection rate limit of a
real server or port used by the virtual port, you must reload the ACOS device to place the change into
effect. Otherwise, the changed setting might not work correctly.
The following commands enable aFlow control for an HTTP virtual port:
The following commands bind the virtual-port template to the HTTP or HTTPS virtual port:
This option is useful in cases where a session ages out or is deleted on the ACOS device, but the client
does not receive a RST or FIN for the session. In this case, without a RST, the session could remain
page 624
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
TCP Reset Option for Session Mismatch
open on the client until the session ages out. When this option is enabled, TCP RSTs are sent in the
cases listed in Table 16.
The option is disabled by default, which means the ACOS device does not send a RST in response to a
session mismatch. You can enable the option in individual virtual port templates.
This option does not apply to sessions that are in the delete queue. If the ACOS device receives a
packet for a session that has been moved to the delete queue, the ACOS device does not send a TCP
RST. Instead, the ACOS device reactivates the session and allows it to age out normally.
To enable sending of TCP RSTs in response to a session mismatch, use the following command at the
configuration level for a virtual port template:
page 625
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Client Port Preservation
Notes
• Port preservation does not work for FTP active mode sessions.
• Port preservation works only if source NAT is enabled for the virtual port.
page 626
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health Monitoring
ACOS devices can regularly check the health of real servers and service ports. Health checks ensure
that client requests go only to available servers. Servers or ports that respond appropriately to health
checks remain eligible to serve client requests. A server or port that does not respond appropriately to a
health check is temporarily removed from service, until the server or port is healthy again.
You can configure health methods on the ACOS device by configuring settings for the type of service
you are monitoring. You also can configure health monitors externally using scripts and import the
monitors for use by the ACOS device.
For information about health monitoring of the ACOS device’s nexthop gateways, see the “Gateway
Health Monitoring” chapter in the System Configuration and Administration Guide.
• Health-Check Guidelines
• Layer 3 ping – Every 5 seconds, the ACOS device sends an ICMP echo request (ping) addressed
to the real server’s IP address. The server passes the health check if it sends an echo reply to the
ACOS device. If the server does not reply after the fourth attempt (the first attempt followed by 3
retries), the ACOS device sets the server state to DOWN.
• Layer 4 TCP – Every 5 seconds, the ACOS device sends a connection request (TCP SYN) to the
specified TCP port on the server. The port passes a health check if it replies to the ACOS device
by sending TCP SYN ACK. If the port does not reply after four attempts, the ACOS device sets the
port state to DOWN.
page 627
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health Check Overview
• Layer 4 UDP – Every 5 seconds, the ACOS device sends a packet with a valid UDP header and a
garbage payload to the UDP port. The port passes the health check if it either does not reply, or
replies with any type of packet except an ICMP Error message. If the port replies with an ICMP
Error message, the ACOS device sets the port state to DOWN.
The default ICMP, TCP, or UDP monitor is not used if you disable it on the server or port, or you apply a
different monitor to the server or port.
• In the GUI, on the server configuration page, the default health monitors appear as “(default)” in
the Health Monitor drop-down lists for the server itself and for the individual TCP or UDP ports.
• For the server itself, “(default)” means the Layer 3 ping described above. For TCP ports, “(default)”
means the Layer 4 TCP health monitor described above. Likewise, for UDP ports, “(default)”
means the Layer 4 UDP health monitor described above.
• On new ACOS devices, the Health Monitor list contains one health monitor (ping), which is the
same as the “default” server health monitor. The list does not contain default TCP or UDP health
monitors.
Health-Check Guidelines
By default, Layer 3 health checking of real server IP addresses is enabled. Likewise, Layer 4 (TCP and
UDP) health checking of server ports is enabled by default.
Layer 3 health checking can be CPU-intensive. To help reduce unnecessary processing overhead, if you
are using Layer 4 or Layer 7 health checking of a real server’s ports, it is recommended to disable Layer
3 health checking of that server’s IP address.
For large deployments (1000 or more servers), A10 Networks recommends disabling default Layer 3
health check and using only Layer 4-7 health checks. (See “Globally Disabling Layer 3 Health Checks”
on page 669.)
• Interval – Number of seconds between health check attempts. Determination of server or port
health is not made during the interval. Instead, health determination is made after the server or
port passes or fails one attempt (interval), or the number of retries is exhausted.
Default interval is 5 seconds. You can change it to a value from 1-180 seconds.
• Timeout – Number of seconds the ACOS device waits for a reply to a health check. If the ACOS
device does not receive the expected reply by the end of the timeout, the ACOS device either
sends the health check again (if there are retries left) or marks the server or service down. You
can specify 1-180 seconds. The default is 5 seconds.
page 628
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health Check Overview
The type of reply expected by the ACOS device depends on the monitor type. (See “Health Method
Types” on page 632.)
• Retries – maximum number of times the ACOS device sends the same health check to an unre-
sponsive server or service before marking that server or service as down. You can specify 1-5.
The default is 3.
• Up-Retry – Number of consecutive times the device must pass the same periodic health check,
in order to be marked Up. You can specify 1-10. The default is 1. (See “Consecutive Health
Checks Within a Health Check Period” on page 665).
The default interval and timeout can be adjusted automatically by health-check rate limiting. (See
“Health-Check Rate Limiting” on page 669). The timeout does not apply to externally configured health
monitors.
After each interval, ACOS immediately begins the next health check, because the next interval begins
immediately after the previous attempt times out. In the figures, “R” indicates a retry.
page 629
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health Check Overview
page 630
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health Check Overview
page 631
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health Method Types
Multiple health method instances can be defined using the same method type and different parame-
ters. Likewise, multiple health monitors can use the same health method to check different servers.
To configure a health monitor for Direct Server Return (DSR), see “Configuring Health Monitoring of Vir-
tual IP Addresses in DSR Deployments” on page 641.
page 632
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health Method Types
page 633
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health Method Types
If a user name and password For POST operations, the data A certificate does not need
are required to access the must be posted without error. to be installed on the ACOS
page, they also must be speci- device. ACOS always
fied in the health check con- accepts the server certifi-
figuration. cate presented by the
server.
By default, the real server’s IP
address is placed in the
request header’s Host: field.
You can configure a different
value.
page 635
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health Method Types
page 636
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health Method Types
SYN ->
<- SYN-ACK
ACK ->
FIN ->
<- FIN-ACK
ACK ->
SYN ->
<- SYN-ACK
RST ->
UDP ACOS device sends a packet Server does either of the following: Destination UDP port of the
with a valid UDP header and a health check must be valid
garbage payload to the speci- • Replies from the specified UDP on the server.
fied UDP port on the server. port with any type of packet.
• Does not reply at all.
page 637
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
After you bind the health monitor to a real server port, health checks using the monitor are addressed
to the real server port number instead of the port number specified in the health monitor’s configura-
tion. In this case, you can override the IP address or port using the override options described in “Over-
riding the Target IP Address or Protocol Port Number” on page 655.
page 638
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
1. Create a script for the monitor. (For an example, see “Using External Health Methods” on
page 684.)
2. In the GUI, select ADC > Health Monitors.
3. From the menu bar, select the External Programs tab.
4. Click Create.
5. In the Name and Description fields, enter a name and description for the external health method.
6. Copy and paste the script into the Definition field.
7. Click Create. The method appears in the External Program Name table.
This example shows how to apply the health monitor “hm1” to a new real server template named “rs-
template.”
This example shows how to apply the health monitor “hm1” to a new real service port template named
“rsp-template.”
page 639
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
d. Click OK.
Layer 3 health checking can be CPU-intensive. To help reduce unnecessary processing overhead, if you
are using Layer 4 or Layer 7 health checking of a real server’s ports, it is recommended to disable Layer
3 health checking of that server’s IP address.
(For more information about how health monitors are used when applied to service groups, see “Ser-
vice Group Health Checks” on page 658.)
page 640
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
The following example configures an internal TCP health monitor named “hm1:”
The method-name can be one of the types listed in “Health Method Types” on page 632. Also see that
section for additional options you can specify. For syntax information, see the “Config Commands: SLB
Health Monitors” chapter in the Command Line Interface Reference.
Create an external Tcl script for the monitor. (For an example, see “Using External Health Methods” on
page 684.)
The following example shows how to import the external health monitor named “ext-hm” using ftp:
After the external monitor script is imported, create a new health monitor named “hm2” to use the
script:
Apply the Health Monitor to a Real Server Template or Real Service Port Template
The following example applies the health monitor “hm1” to real server template “svr-template:”
The following example applies the health monitor “hm1” to a service port on real server “rs1:”
page 641
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
The target of the Layer 3 health checks can be the real IP addresses of the servers, or the virtual IP
address, depending on your preference.
• To send the Layer 3 health checks to the real server IP addresses, you can use the default Layer 3
health method (ICMP).
• To send the Layer 3 health checks to the virtual IP address instead:
• Configure an ICMP health method with the transparent option enabled, and with the alias
address set to the virtual IP address.
• Globally enable DSR health checking.
Layer 4-7 health checks are sent to the same IP address as the Layer 3 health checks, and then
addressed to the specific protocol port. You can use the default TCP and UDP health monitors or con-
figure new health monitors. This example uses the default TCP health monitor.
The following sections show how to configure Layer 3 health checking of virtual IP addresses and how
to globally enable DSR health checking of virtual IP addresses. A complete DSR deployment requires
additional configuration. See the examples in “Direct Server Return (DSR) SLB Deployment” on page 69.
page 642
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
Use the following commands to configure a health method target to VIP 192.168.4.4:
(Enter the slb common command from the global configuration level to access the configuration level
for system-wide SLB parameters.)
For example, you can configure a send string that is an HTTP GET request, and specify the response
string the server must send in reply to the GET request. (See the CLI example below.)
TCP health monitors that include send and receive strings work as follows:
1. ACOS performs the TCP three-way handshake with the TCP port on the server:
ACOS Server
SYN ->
<- SYN-ACK
ACK ->
2. If the three-way handshake is successful, ACOS sends the entire send string to the TCP port.
ACOS Server
ACK ->
3. If the port’s reply contains the specified receive string anywhere within the reply, the port passes
the health check.
ACOS Server
<- ACK
page 643
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
FIN ->
<- FIN-ACK
ACK ->
The following example configures a TCP health monitor named “tcp-with-http-get” that sends an HTTP
GET request to TCP port 80, and expects the string “200” to be present in the reply:
page 644
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
The following example configures a TCP health monitor named “tcp-with-http-get” that sends an HTTP
GET request to TCP port 80, and expects the string “200” to be present in the reply:
This health monitor sends an HTTP GET request to TCP port 80 on the target server. This particular
request uses the following header fields:
• Host – Specifies the host (server) to which the request is being sent.
• User-Agent – Identifies the entity (user agent) that is sending the request. In this example, the
sending entity is “a10”.
• Accept – Specifies the types of media that are allowed in the response. This example uses wild-
cards (*/*) to indicate that any valid media type and range are acceptable.
If the string “200” is present anywhere in the reply from the port, the port passes the health check.
The certificate you plan to use with the health monitor must be present on the ACOS device before you
configure the health monitor.
To add a certificate and key to an HTTPS health monitor, use the cert and key options with the method
https command.
page 645
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
The following commands configure an HTTPS health monitor that uses a certificate:
The following example configures an HTTP health method names “http1” that uses a POST operation
to post firstname=abc and lastname=xyz to /postdata.asp on the tested server.
page 646
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
The following commands configure an HTTP health method names “http1” that uses a POST operation
to post firstname=abc and lastname=xyz to /postdata.asp on the tested server.
In the postdata string, use “=” between a field name and the value you are posting to it. If you post to
multiple fields, use “&” between the fields. For example: postdata fieldname1=value&fieldname2=value.
The string can be up to 255 bytes long.
To use POST data longer than 255 bytes, you must import a POST data file and use the POST / postfile
filename option. To import POST data file up to 2 Kbytes long, use the following command at the global
configuration level of the CLI:
page 647
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
The following commands import a file containing a large HTTP POST data payload (up to 2 Kbytes),
and add the payload to an HTTP health monitor:
In this example, health checks that use this health monitor will send a POST request containing the
data in “postfile”, and expect the string “def” in response.
Passive health monitoring checks the HTTP status code in the initial server reply to a client request. If
the server sends enough replies that contain a status code indicating normal operational status, ACOS
increases the health-check interval for that server. By increasing the health-check interval, ACOS
reduces network overhead.
If a server’s healthy response codes fall below a configured threshold, the health monitor’s configured
interval is used again, to more frequently check server health.
• Healthy status code numbers – The set of status codes that indicate the HTTP service is healthy.
You can specify one of the following:
• Any 2xx status code
• Any status code other than a 5xx code
You must specify the set of status codes to use when you configure the monitor. There is no
default.
• Passive interval – The health-monitor interval that is used when passive health monitoring is
activated. For proper operation of the feature, the passive interval should be longer than the
health monitor’s interval. You can specify 1-180 seconds. The default is 10 seconds.
• Sample threshold – Minimum number of server replies that must contain one of the specified
status codes, within a given one-second interval, before passive health monitoring is enabled.
The sample threshold helps prevent passive health monitoring from taking effect after only a
page 648
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
small total number of samples are taken. You can specify 1-10000 samples per second. The
default is 50.
• Threshold – Minimum percentage of server replies that must contain a healthy status code,
within a given one-second interval, before passive health monitoring is activated. You can specify
0-100 percent. The default is 75 percent. If you specify 0, this parameter is disabled, in which
case there is no minimum threshold.
• If the threshold is exceeded after the sample threshold is exceeded, passive interval becomes
active.
• If sample threshold and threshold are not exceeded, health monitor interval setting remains in
effect.
Response statistics are reevaluated each second. Generally, once a server is up and healthy, the pas-
sive interval remains in effect for that server. Health-check traffic overhead for the server is reduced by
half.
page 649
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
In this example, the health monitor interval and each of the passive health-monitoring parameters
described above are left at their default values.
When the server first comes up, the health-check interval is set to 5 seconds, which is the interval set-
ting on the health monitor. The server's responses quickly exceed the sample threshold and threshold,
so passive health-monitoring mode is activated. this results in the health-check interval being reset t 10
seconds.
The longer interval remains in effect as long as the server responses exceed the thresholds.
Notes
• This feature applies only to TCP virtual ports, and only to the ICMP and HTTP health methods.
• Only the first packet in the reverse direction of a TCP session flow is inspected.
• If connection-reuse is enabled on the virtual port, only the response packet for the initial session
is examined.
page 650
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
To configure inband health monitoring based on HTTP status code, use the passive command at the
HTTP health monitor configuration level. See “Passive Health-monitoring Parameters” on page 648.
The following commands create a new health monitor, and enable passive health-monitoring mode:
The following commands configure a real server, service group, and virtual server. The HTTP health
monitor configured above is applied to the TCP port on the real server.
page 651
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
• Expected response codes – You can specify a list of response codes, in the range 0-15, that are
valid responses to a health check. If the tested DNS server responds with any of the expected
response codes, the server passes the health check. By default, the expect list is empty, in which
case the ACOS device expects status code 0 (No error condition).
• Recursion setting (enabled or disabled) – Recursion specifies whether the tested DNS server is
allowed to send the health check’s request to another DNS server if the tested server can not ful-
fill the request using its own database. Recursion is enabled by default.
• Record type expected from the server – You can specify one of the following record types:
page 652
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
9. To specify the response codes that are valid for passing a health check, enter the codes in the
Domain Response Code field. To specify a range, use a dash. Separate the codes (and code
ranges) with commas.
10.Click Create Monitor.
To configure a DNS health monitor, use the health monitor and method dns commands.
The following commands configure a DNS health monitor that sends a query for www.example.com,
and expects an Address record and any of the following response codes in reply: 0, 1, 2, 3, or 5:
page 653
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
On the configuration page for the DNS health monitor, select the IPv4, IPv6, or Domain TCP option,
depending on which DNS type you select.
To enable TCP instead of UDP for a DNS health monitor, use the tcp option with the method dns com-
mand.
The following example configures a health monitor for DNS over TCP:
page 654
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
By default, the ACOS device sends a Layer 3 health check to the IP address used in the real server con-
figuration. Likewise, the ACOS device sends Layer 4-7 health checks to the real port number in the real
server’s configuration. For GSLB service IPs, the ACOS device sends the health check to the service IP
address. For example, if the configuration has a Layer 3 health monitor used by service IPs
192.168.100.100-102, the ACOS device addresses the health checks those IP addresses.
You can specify an override IP address or protocol port number in the health monitor. In this case, the
ACOS device always addresses the health check to the override address or port. This option is particu-
larly useful for testing the health of a remote link, as in the following example.
In this example, the real servers managed by the site ACOS are configured as service IPs
192.168.100.100-102 on the GSLB ACOS. The health-check metric is enabled in the GSLB policy, so
page 655
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
health checks are needed to verify that the service IPs are healthy. One way to do so is to check the
health of the ISP link connected to the site ACOS device.
Because the GSLB ACOS device is deployed in route mode instead of transparent mode, the transpar-
ent option for ICMP health monitors can not be used to check the remote end of the path. In this case,
the health monitor can be configured with an override IP address, 192.168.1.1, to check the health of
the ISP link to the site where the servers are located. When the ACOS device in this example uses the
health monitor to check the health of a service IP, the device addresses the health check to
192.168.1.1, the override address, instead of addressing the health check to the service IP addresses.
Override Parameters
You can independently configure any of the following override parameters for a health monitor:
The override is used only if applicable to the method (health check type) and the target. An IP address
override is applicable only if the target has the same address type (IPv4 or IPv6) as the override
address.
A protocol port override is applicable to all health methods except ICMP. If the protocol port number is
explicitly configured for the method, the override port number is still used instead.
Use the override-ipv4, override-ipv6, or override-port commands at the configuration level for the
health monitor.
The following example configures a health monitor for the service IPs shown in Figure 81 on page 655,
and apply the monitor to the service IPs.
page 656
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configuring and Applying a Health Method
page 657
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Service Group Health Checks
Use the health-check-follow-port command at the configuration level for the real port.
The following example configures the real port (80) to follow TCP port 8081:
page 658
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Service Group Health Checks
In this example, a single server provides content for the following sites:
• www.media-rts.com
• www.media-tuv.com
• www.media-wxyz.com
All sites can be reached on HTTP port 80 on the server. The health check configured on the port in the
real server configuration results in the same health status for all three sites. All of them either are up or
are down.
In this case, if one of the sites is taken down for maintenance, the health status of that site will still be
up, since the real port still responds to the health check configured on the port.
You can configure the ACOS device to separately test the health of each site, by assigning each site to
a separate service group, and assigning a separate Layer 7 health monitor to each of the service
groups. In this case, if a site is taken down for maintenance, that site fails its health check while the
other sites still pass their health checks, on the same real port.
In this example, a separate HTTP health method is configured for each of the services. The health mon-
itors test the health of a site by sending an HTTP request to a URL specific to the site. In this way, even
though the server’s HTTP port is up, a site will fail its health check if the URL requested by its health
check is unavailable.
page 659
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Service Group Health Checks
Service group health status applies only within the context of the service group. For example, a health
check of the same port from another service group can result in a different health status, depending on
the resource requested by the health check.
Health checks can be applied to the same resource (real server or port) at the following levels:
• In a server or server port configuration template that is bound to the server or port
In cases where health checks are applied at multiple levels, they have the following priority:
If a health check at the real server level (1) fails, the corresponding real server, real server port, and ser-
vice group members are marked Down. However, if a health check on the service group level (3) fails,
only that service group member in that service group is marked Down.
To assign a health monitor to a service group, use either of the following methods.
In the Service Group configuration page (ADC >> SLB >> Service Groups >> Update), select the
monitor from the drop-down list in the Health Monitor field.
The commands in this section implement the configuration shown in Figure 82.
The following commands configure the health monitors for each site on the server:
page 660
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Service Group Health Checks
To clear a port protocol session immediately if a member of a real service group level fails, enter the del-session-on-
server-down command when configuring the port of that member. For the above example, the configuration of the
media-rs real server would be as follows:
page 661
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Disable Following Failed Health Check
This option applies to all servers, ports, or service groups that use the health monitor. When a server,
port, or service group is disabled based on this command, the server, port, or service group’s state is
changed to disable in the running-config. If you save the configuration while the server, port, or service
group is disabled, the state change is written to the startup-config.
ACOS also generates a log message to indicate that the server, port, or service group is disabled.
The server, port, or service group remains disabled until you explicitly enable it.
This option is disabled by default. (A server, port, or service group that uses the health monitor is not
disabled if it fails a health check.)
• TCP
• HTTP
• HTTPS
page 662
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
In-Band Health Monitoring
The in-band health check works independently of and supplements the standard Layer 4 health check.
For example, for TCP, the standard health check works as follows by default:
Every 30 seconds, the ACOS device sends a connection request (TCP SYN) to the specified TCP port on
the server. The port passes the health check if the server replies to the ACOS device by sending a TCP
SYN ACK.
This is the same Layer 4 health check available in previous releases and has the same defaults.
It is recommended that you continue to use standard Layer 4 health monitoring even if you enable in-
band health monitoring. Without standard health monitoring, a server port marked down by an in-band
health check remains down.
In-band health monitoring for services on TCP watches client-server SYN handshake traffic, and incre-
ments the following counters if the server does not send a SYN ACK in reply to a SYN:
• Retry counter – Each client-server session has its own retry counter. the ACOS device incre-
ments a session’s retry counter each time a SYN ACK is late. If the retry counter exceeds the con-
figured maximum number of retries allowed, the ACOS device sends the next SYN for the session
to a different server. ACOS also resets the retry counter to 0.
You can set the retry counter to 0-7 retries. The default is 2 retries.
• Reassign counter – Each real port has its own reassign counter. Each time the retry counter for
any session is exceeded, the ACOS device increments the reassign counter for the server port. If
the reassign counter exceeds the configured maximum number of reassignments allowed, the
ACOS device marks the port DOWN.
In this case, the port remains DOWN until the next time the port successfully passes a standard
health check. Once the port passes a standard health check, the ACOS device starts using the port
again and resets the reassign counter to 0.
You can set the reassign counter to 0-255 reassignments. The default is 25 reassignments.
When the ACOS device marks a server port down, the device generates a log message and an SNMP
trap, if logging or SNMP traps are enabled. The message and trap are the same as those generated
when a server port fails a standard health check. However, you can discern whether the port was
marked down due to a failed in-band health check or standard health check, based on the process
name listed in the message.
page 663
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
In-Band Health Monitoring
Sep 08 2014 17:15:04 Info A10LB SLB server s-3-2-1 (10.3.2.1) port 80 is down.
Sep 08 2014 17:15:04 Info A10HM SLB server s-3-2-1 (10.3.2.1) port 80 is down.
In-band health monitoring does not mark ports up. Only standard health monitoring marks ports up. So
messages and traps for server ports coming up are generated only by the A10hm process.
To bind the template to a server port, see “Binding a Server Port Template to a Real Server Port” on
page 613.
To configure in-band health monitoring, use the inband-health-check command at the configuration
level for the server port template:
The following example enables in-band health monitoring in a server port template called rp-tmplt2 and
binds this template to real ports 80 on server rs1, and real port 80 on server rs2:
page 664
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Consecutive Health Checks Within a Health Check Period
By default, a server or port needs to successfully reply to a given health check only one time in order to
pass the health check. The server or port is then considered to be up until the next periodic health
check. You can set the required number of consecutive passes to 1-10.
You can configure this parameter on an individual health monitor basis. The setting applies to all health
checks that are performed using the health monitor.
To configure consecutive health checks using the CLI, use the up-retry command. For example:
page 665
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Maintenance Health Status for Servers in Persistence Configurations
To place a server into maintenance mode, configure an HTTP or HTTPS health method that includes a
maintenance code. If the server replies to a health check with the code, the ACOS device changes the
server’s health status to Maintenance.
• Successfully reply to a health check, but without including the maintenance code. In this case,
the server’s health status changes to Up.
• Fail a health check. In this case, the server’s status changes to Down.
The Maintenance health status applies to server ports and service-group members. When a port’s sta-
tus changes to Maintenance, this change applies to all service-group members that use the port.
Use the maintenance-code code-list option with one of the following commands at the configuration
level for a health method:
http options
https options
CLI Example
The following commands configure a health monitor that places a server into maintenance mode if the
server replies to a health check with code 503:
In this example, if the server replies with status 503, the server goes into maintenance mode and stays
there until server replies with status code 200 (UP).
In this example, if the server replies with code 503, the server goes into maintenance mode, and stays
there until the server either fails a health check (Down) or replies with code 200 (Up).
page 666
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
On-Demand Health Checks
To test the health of a server, use the health-test command at the EXEC, Privileged EXEC, or global
configuration level of the CLI:
If an override IP address and protocol port are set in the health monitor configuration, the ACOS device
uses the override address and port, even when an address and port is specified when the on-demand
health check is sent.
CLI Example
The following command tests port 80 on server 192.168.1.66, using configured health monitor hm80:
For example, this is true for HTTP health monitors that expect a string in the server reply. If the server’s
HTTP port does not reply to the first health check attempt with the expected string, the ACOS device
immediately marks the port Down.
To force the ACOS device to wait until all retries are unsuccessful before marking a server or port down,
enable strict retries. You can enable strict retries on an individual health monitor basis.
The following example configures an HTTP health monitor that checks for the presence of “test-
page.html”, and enable strict retries for the monitor.
page 667
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Globally Changing Health Monitor Parameters
• Timeout – Number of seconds the ACOS device waits for a reply to a health check.
• Retries – maximum number of times the ACOS device will send the same health check to an
unresponsive server or service before marking that server or service as down.
• Up-Retry – Number of consecutive times the device must pass the same periodic health check,
in order to be marked Up.
Globally changing a health monitor parameter changes the default for that parameter. For example, if
you globally change the interval from 5 seconds to 10 seconds, the default interval becomes 10 sec-
onds.
If a parameter is explicitly set on a health monitor, globally changing the parameter does not affect the
health monitor. For example, if the interval on health monitor hm1 is explicitly set to 20 seconds, the
interval remains 20 seconds on hm1 regardless of the global setting.
Global health monitor parameter changes automatically apply to all new health monitors configured
after the change. To apply a global health monitor parameter change to health monitors that were con-
figured before the change, you must reboot the ACOS device.
When auto-adjust mode for health-check rate limiting is enabled and the global interval or timeout set-
ting differs from the setting on an individual health monitor, actual interval and timeout values used
depend on the number of health checks performed by the ACOS device. See “Health-Check Rate Limit-
ing” on page 669.
To globally change health monitor parameters, use the health global command.
CLI Example
The following commands globally changes the interval and timeout to 10 seconds and default number
of retries to 4:
page 668
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health-Check Rate Limiting
To globally disable Layer 3 health checks, disable health monitoring in the server templates used to
configure the servers. If you did not configure a customized server template, the default server tem-
plate is used.
If a custom Layer 3 health monitor is enabled on an individual server, the health monitor is still used.
Use the health-check-disable command to disable Layer 3 health monitoring in the template:
Health-check rate limiting is enabled by default. Generally, you do not need to configure it. However,
you still may want to see the following section: “Health-Check Guidelines” on page 628.
Health-check rate limiting uses a threshold to limit the number of health-check packets the ACOS
device will send within a given 500-millisecond (ms) period. If additional health-check packets need to
be sent, the ACOS device waits until the next 500-ms period. Within any 500-ms period, the ACOS
device never sends more health-check packets than are allowed by the threshold.
Health-check rate limiting has an auto-adjust mode, which is enabled by default. When necessary, the
auto-adjust mode dynamically increases the default interval and timeout for health checks. By increas-
ing these timers, health-check rate limiting provides more time for health-check processing.
Health-check rate limiting is always enabled, and its auto-adjust mode is enabled by default.
page 669
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Health-Check Rate Limiting
Health-check Threshold
When auto-adjust mode is enabled, the health-check threshold is one of the following:
• ACOS models with 64-bit ACOS – 1600 health-check packets per 500-ms period
• ACOS models with 32-bit ACOS – 800 health-check packets per 500-ms period
When auto-adjust mode is enabled, you can not manually change the threshold. To change the thresh-
old, you first must disable auto-adjust mode. Then you can set the threshold to a value within one of
the following ranges:
• ACOS models with 64-bit ACOS – 1-5000 health-check packets per 500-ms period
• ACOS models with 32-bit ACOS – 1-2000 health-check packets per 500-ms period
When you disable auto-adjust mode, the default threshold is changed to one of the following:
• ACOS models with 64-bit ACOS – 1000 health-check packets per 500-ms period
• ACOS models with 32-bit ACOS – 400 health-check packets per 500-ms period
NOTE: It is recommended not to set the threshold to a very high value. Doing so
may result in health-check timeouts due to resource constraints.
• More than 1000 health checks (64-bit models) or more than 400 health checks (32-bit models) –
Setting with the longer value is used. For example, if the global interval is 10 seconds but the
interval configured on an individual health monitor is 5 seconds, 10 seconds is used.
• Fewer than 1000 health checks (64-bit models) or fewer than 400 health checks (32-bit models)
– Setting on the individual health monitor is used.
page 670
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Multi-CPU Support for Health Monitoring
Number of burst: : 0
...
Configured health-check rate (/500ms) : Auto configured
Current health-check rate (/500ms): : 5
...
The Configured health-check rate field and Current health-check rate show the health-check rate limit-
ing settings.
• If auto-adjust is enabled:
• If auto-adjust is disabled:
Ensure that the health-monitor process number does not exceed the current number of control CPUs.
The maximum value for the health check-rate is 50000000.
page 671
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Database Health Monitors
It is recommend that you use this feature with multiple control CPUs. ACOS should be configured to
run multiple control CPUs before issuing the health multi-process command. For example:
ACOS(config)# multi-ctrl-cpu 2
This will modify your boot profile for multiple control CPUs.
It will take effect after the next reboot.
Please confirm: You want to configure multiple control CPUs (N/Y)?: y
• Oracle
• MSSQL
• MySQL
• PostgreSQL
Required Parameters
• Database type – Oracle, MSSQL, MySQL, or PostgreSQL
• Username and password – Account information required for access to the database
page 672
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Database Health Monitors
Optional Parameters
• Send string – SQL query to send to the database.
• Receive string – Query result expected from the database in order to pass the health check.
• Receive row and column – For replies that consist of multiple results, the results are in a table.
You can specify the row and column location within the results table to use as the receive string.
If you do not specify the row and column, row 1 and column 1 are queried by default.
To use the receive string option, you also must use the send string option. If you do not use the send
option, the ACOS device does not send a query.
1. Hover over ADC in the menu bar, then select Health Monitors.
2. Select Create.
3. In the Name field, specify a name for your health monitor.
4. In the Method type field, select Database from the drop-down list.
5. Configure the desired values in the General Fields pane.
6. In the Database pane, select the database type from the Database Type field, then complete the
other parameters.
7. Click Create Monitor.
For additional information, see “Database Health Monitor Parameters” on page 672.
page 673
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Kerberos Health Monitors
• Key Distribution Center (KDC) Ticket Granting Ticket (TGT) service – Tests ability to access the
Kerberos server as a new client requesting a TGT.
• Kerberos administrative system – Tests ability to access the Kerberos server as a user account
administrator.
• Kerberos password change system – Tests ability to access the Kerberos server as a user
attempting to change their password.
These services can be on the same server (hostname or IP address) or different servers.
You can use these health checks in AAA SLB deployments and in Authentication Proxy deployments.
Health checks for access to the Kerberos administrative system are not supported with Windows
Server Domain Controllers (DCs).
page 674
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Kerberos Health Monitors
The following commands create a Kerberos health check method to check accessibility of the KDC for
obtaining a TGT (“acos-1” is the name of the ACOS device:
The following command configures a Kerberos health check method to check accessibility of the Ker-
beros server for user account administration (“acos-1” is the name of the ACOS device):
The following example configures a Kerberos health method to check accessibility of the Kerberos
server for user password changes (“acos-1” is the name of the ACOS device):
page 675
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Compound Health Monitors
• The compound server health status may report as Down due to incorrect timeout or interval
parameters. (See “Considerations” on page 677.)
• Compound health monitoring increases the workload of the health monitoring subsystem. For
example, using a compound monitor with many sub monitors against a service group with many
members can affect system performance. This increased workload could significantly delay the
response time for compound health checks.
After listing the health monitors, add the Boolean operator(s). The following operators are supported:
• AND – Both the ANDed health checks must be successful for the health status to be Up. If either
of the health checks is unsuccessful, the health status is Down.
• OR – Either of the ORed health checks must be successful for the result to be Up. Even if one of
the health checks is unsuccessful, the health status is still Up if the other health check is suc-
cessful. If both of the health checks are unsuccessful, the health status is Down.
• NOT – The health status is the opposite of the health check result. For example, if a health check
is unsuccessful, the resulting health status is Up. Likewise, if the health check is successful, the
resulting health status is Down. You can use NOT with a single health method, or with multiple
health methods for more complex expressions. (See below.)
For example, to construct a health monitor that ANDs two health monitors, use the following syntax:
• In the CLI, you must enter method compound at the beginning, and sub in front of each health-
monitor name. In the GUI, do not enter method compound. The GUI automatically enters sub in
front of each health monitor name when you select it.
• The equivalent expressions are shown for clarity but are not valid syntax on the ACOS device.
Similarly, to construct a health monitor that ORs two health monitors, use the following syntax:
page 676
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Compound Health Monitors
To construct a health monitor that results in an Up health status if the health check is unsuccessful, use
the following syntax:
To construct more complex expressions, you can enter multiple sets of health monitors and operators.
Here is a quite complex expression:
method compound sub hm1 sub hm2 sub hm3 sub hm4 not or and or not sub hm5 or
Considerations
• A maximum of 8 sub monitors are supported in a compound monitor. To use more sub monitors,
you can nest compound monitors. (See below.)
• The total number of sub monitors plus the number of Boolean operators supported in a com-
pound monitor is 16.
• You can nest compound monitors. To nest compound monitors, configure a compound monitor,
then use that compound monitor as a sub monitor in another compound monitor. The maximum
nesting depth is 8.
Nesting loops are not allowed.
• The timeout and interval parameters of a compound monitor must be set to values that allow
each of the sub monitors to complete their health checks. If any of the sub monitors is unable to
complete its health check, the compound monitor’s result is always Down.
For example, if monitor1 gives a result after 2 seconds, but a compound monitor that uses moni-
tor1 times out in 1 second, the resulting health status will always be Down, regardless of the Bool-
ean expression. (See “Timeout Configuration” on page 679.)
If you encounter this problem, A10 Networks recommends you increase the timeout parameter for
the compound monitor to ensure the health check can cycle through all sub monitors. (See “Con-
figuring and Applying a Health Method” on page 638.) You alternatively can decrease the number
of retry attempts for sub monitor health checks to 1. (See “Consecutive Health Checks Within a
Health Check Period” on page 665.)
page 677
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Compound Health Monitors
Use Reverse Polish Notation. (See “Compound Health Monitor syntax” on page 676.)
page 678
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Compound Health Monitors
The following commands configure a compound health monitor in which both health checks must be
successful in order for the resulting health status to be Up:
The following commands configure a compound health monitor in which the resulting health status is
Up if any one ore more of the health checks is successful:
NOT Operator
The following commands configure a compound health monitor that results in an Up status only if the
server fails the ICMP health check:
Timeout Configuration
For a compound health check configured as follows:
page 679
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configurable Response Codes for RADIUS Health Monitors
The amount of time allowed to perform health checks for monitor1 and monitor2 is calculated by the
retry and timeout values.
For this example, a compound health check requires a minimum of 10 seconds. If the timeout value for
the compound health check is set to 6, then the result is always Down. In order to ensure a complete
compound health check, set the compound health check timeout to 10 seconds or greater.
In previous releases, code 2 was the only code the server is allowed to respond with, in order to be
marked UP, but beginning in ACOS 2.7.2, you can specify the response code(s) that ACOS can accept
as valid responses. So, for example, you can configure a health monitor to accept an Access-Reject
response (code 3) as a valid response from a healthy RADIUS server.
To specify the response code(s) a RADIUS server is allowed to send back in response to a RADIUS
health check, use the expect response-code option with the method command.
The following commands configure a RADIUS health monitor that accepts response code 2 or 3 as
passing (healthy) responses from a server:
page 680
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Displaying Health Status
• Use the GUI to View the Health of Virtual Servers and Service Ports
• Use the GUI to View the Health of Real Servers and Service Ports
Use the GUI to View the Health of Virtual Servers and Service Ports
To do this:
Use the GUI to View the Health of Real Servers and Service Ports
To do this:
For information about the real server health state icons, see the online help or GUI Reference.
• Use the CLI to View the Health of Virtual Servers and Service Ports
• Use the CLI to View the Health of Real Servers and Service Ports
page 681
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Displaying Health Status
Use the CLI to View the Health of Virtual Servers and Service Ports
Use the show slb virtual-server command to view the health of virtual servers and service ports. The
health status is shown in the State field; for additional information about this command and the fields
in the output, see the CLI Reference.
Use the CLI to View the Health of Real Servers and Service Ports
Use the show slb server command to view the health of real servers and service ports. The health sta-
tus is shown in the State column; for additional information about this command and the fields in the
output, see the Command Line Interface Reference.
page 682
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Displaying Health Status
page 683
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
• Perl
• Shell
• Tcl
• Python
Utility commands such as ping, ping6, wget, and dig are supported. ACOS supports the Perl IO::Socket
module and the Tcl UDP extension.
NOTE: External health methods are not supported in Direct Server Return (DSR)
deployments.
Well behaved scripts contain trusted code solely for performing their functions to monitor the health of
real servers and applications in the customers network. It is the customer’s responsibility to
ensure the integrity and content of these scripts – that the code is trusted and the scripts are
free of code that can compromise the security of the ACOS system or systems in connected networks.
Malicious code in External Health Monitor scripts, whether intentional by disaffected ACOS admins or
unintentional by compromised ACOS admins or their systems, can expose the ACOS system and con-
nected environment to a range of exploits, such as, but not limited to, the following:
• Man-in-the-Middle
• Spyware, Ransomware
page 684
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
To secure External Health Monitors and keep them secure, ACOS administration can restrict access to
these services, monitor access activity, and review the content of these scripts.
Only ACOS, system-level admins with Read-Write (R/W) privilege and specifically assigned this new
privilege will be permitted to perform these operations for External Health Monitor scripts. As these
monitoring scripts have access throughout the ACOS system, this privilege is not available to partition
constrained ACOS admins.
Best Practice: To minimize the threat surface of this feature, provision this privilege for the fewest
users necessary.
For more information on configuring administrative users, refer to the Management Access and Security
Guide or “Configuring External Health Monitors” on page 686.
Script access operations can be detected on the logging server by filtering for the following strings and
reporting match events for administrative review.
• import health-external
• health external create
• health external edit
• health external delete
Instantiated scripts can be listed by the show health external ACOS CLI command and inspected indi-
vidually using the show health external file.ext ACOS CLI command, where file.ext is one of the
indicated script files listed.
page 685
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
HM privilege enables an administrator to access and manage External Health Monitor files. An account
with write privilege that does not include HM access cannot import, edit, create, or delete External
Health Monitor files.
1. Specify the admin username using the admin command: A password is required when configuring
a new admin account
ACOS(config)# admin adminuser1
2. To authorize external health monitor privileges, in addition to all read/write access, enter the priv-
ilege hm command.
ACOS(config-admin:adminuser1)# privilege hm
Modify Admin User successful!
page 686
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
NOTE: The filename of the imported script should be less than 32 characters in
length, including the extension.
To import an external health-check script onto the ACOS device (GUI Procedure):
page 687
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
a. If adding a new port, enter the port number in the Port field.
b. Select the external health monitor from the Health Monitor field.
6. Click Create or Update.
External health-check scripts can be created, modified, and imported through CLI commands.
• Use the health external create to save a new heatlh check script, then open an editor to modify
that file.
• Use the health external edit command to open the editor to modify an existing script.
• Other CLI commands that manage health monitor scripts include health external copy, health
external delete, and health external rename.
See the Command Line Interface for ADC for more information.
Use the import health-external command at the global configuration level to import an external
health-check script onto your ACOS device. The following example imports a script called example-
health.py
The following example shows how to configure the external health monitor:
After the health monitor is configured, you can configure a server to use the external health method:
page 688
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
To use the external method, you must import the program onto the ACOS device. The script execution
result indicates the server status, which must be stored in ax_env(Result).
The following commands import external program “ext.tcl” from FTP server 192.168.0.1, and configure
external health method “hm3” to use the imported program to check the health of port 80 on the real
server:
set sock -1
set ax_connected -1
set ax_result -1
set ax_server $ax_env(ServerHost)
set ax_port $ax_env(ServerPort)
page 689
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
#!/usr/bin/perl -w
# Sample script for checking Web server
page 690
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
my $host = $ENV{'HM_SRV_IPADDR'};
my $port = 80;
if (defined($ENV{'HM_SRV_PORT'})) {
$port = $ENV{'HM_SRV_PORT'};
}
# vim: tw=78:sw=3:tabstop=3:autoindent:expandtab
#! /bin/bash
if test "$HM_SRV_IPADDR" == "" ; then
echo "Please check ENV Var 'HM_SRV_IPADDR'"
exit 1
fi
page 691
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
NOTE: ACOS also provides a database heath method. See “Database Health
Monitors” on page 672.
1. Configure a Python script to check the database. (See the examples below.)
2. Import the script onto the ACOS device.
3. Configure an external health monitor that uses the script.
4. Bind the external health monitor to the target (real server, real port, or service group).
The steps performed on the ACOS device are the same as those for any other type of external health
monitor.
if 0 != port:
conn_str = ("Driver=FreeTDSDriver;Server=%s;Port=%d;TDS_version=7.0;Database=Data-
page 692
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
sys.exit(rv)
Example Script—MySQL
#!/usr/bin/python
import sys
import os
import pyodb
page 693
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
port = 0
if 0 != port:
conn_str = ("Driver=MySQLDriver;Server=%s;Port=%d;Database=Database;UID=User;PWD=Pass-
word" % (host, port))
else:
conn_str = ("Driver=MySQLDriver;Server=%s;Database=Database;UID=User;PWD=Password" %
(host))
sys.exit(rv)
Example Script—PostgreSQL
#!/usr/bin/python
import sys
import os
import pyodb
page 694
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
if 0 != port:
conn_str = ("Driver=PostgreSQLDriver;Server=%s;Port=%d;Database=Data-
base;UID=User;PWD=Password" % (host, port))
else:
conn_str = ("Driver=PostgreSQLDriver;Server=%s;Database=Database;UID=User;PWD=Password"
% (host))
sys.exit(rv)
Example Script—Oracle
#!/usr/bin/python
import sys
import os
import pyodb
page 695
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Using External Health Methods
host = os.environ['HM_SRV_IPADDR']
if os.environ.has_key('HM_SRV_PORT'):
port = int(os.environ['HM_SRV_PORT'])
if 0 >= port or 65536 <= port:
port = 0
else:
port = 0
if 0 != port:
conn_str = ("Driver=OracleODBCDriver;DBQ=//%s:%d/XE;UID=User;PWD=Password" % (host,
port))
else:
conn_str = ("Driver=OracleODBCDriver;DBQ=//%s/XE;UID=User;PWD=Password" % (host))
page 696
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
You can assign one or more backup servers as alternates for a given primary server. If that specific pri-
mary server goes down, one of its alternate servers takes over. Likewise, you also can assign alternates
for backing up individual ports.
Alternate Servers
You can assign up to 16 alternate servers to a primary server. Only 1 alternate server for a given pri-
mary server can be active at a time.
NOTE: This feature places an alternate server into service only if the primary
server goes down. Other features such as connection limiting or connec-
tion-rate limiting can not cause an alternate server to be used.
Each alternate server must have a sequence number, 1-16. You specify the sequence number of an
alternate server when you assign it to its primary server.
For example, the following set of servers consists of one primary server and 3 alternate servers:
The alternate servers are used according to their sequence numbers, beginning with the lowest
sequence number. For example, if all servers are up, then rs1 goes down, rs1-a1 takes over. If rs1-a1
also goes down, rs1-a2 takes over, and so on.
page 697
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Alternate Servers
The sequence numbering of alternate servers is different from server priority. You do not need to
change the priority values of the primary server or its alternate servers.
When a down server comes back up, the server is placed back into service. New sessions can be sent
to the server. The alternate server is gracefully removed from service. Existing sessions on the alter-
nate server are allowed to continue until they are terminated or they time out.
Configuration
To configure alternate servers for backup:
The configuration options for the alternate servers are the same as those for primary servers. Likewise,
the configuration options for the service group and virtual server are the same as those for configura-
tions that do not use alternate servers.
The only server configuration that is unique to use of alternate servers is specification of those servers
in the configuration of the primary servers.
page 698
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Alternate Servers
6. Click Update.
To assign an alternate server as a dedicated backup for a primary server, use the alternate command
at the configuration level for the primary server:
The following commands configure some real servers to be used as alternate servers for backup:
page 699
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Alternate Servers
The following commands configure 2 primary servers, and assign alternate servers to each of them:
The following commands configure a service group. Only the primary servers are added to the group.
The alternate servers are not added to the group.
The following commands configure a virtual server that uses the service group configured above:
page 700
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Alternate Ports
The primary servers are listed under the virtual port. Under each primary server, that server’s alternate
servers are listed.
If an asterisk is shown at the end of an alternate server name, the primary server is down and the alter-
nate server is active instead. In the example above, rs2 is down, so alternate rs2-a1 is being used
instead.
Alternate Ports
For more granularity, you can specify alternates for individual ports. In this case, if a primary port that
has an alternate goes down, the ACOS device uses the alternate for that port, but continues to use the
primary server for other ports, if those other ports are still up. Figure 83 shows an example.
This deployment uses two primary servers, “linux-01” and “linux-02”. An alternate server is configured
for each of the primary servers. The server “windows-01” is an alternate server for “linux-01”. Likewise,
“windows-02” is an alternate server for “linux-02”.
page 701
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Alternate Ports
Each primary server, and each of its alternate servers, has the following ports:
• UDP port 53
As shown in this example, the port numbers on the primary and alternate servers are not required to be
the same. TCP port 8080 on the alternate servers provides the backup for port 80 on the primary serv-
ers.
Although port 80 has its own alternate port, the deployment in this example does not use alternate
ports for 443 or 53. If port 443 or 53 on a primary server goes down, the ACOS device starts using the
alternate server, for all the primary server’s ports (443 and 53).
However, if only port 80 goes down, the ACOS device begins using port 8080 on the alternate server,
but continues using the primary server for ports 443 and 53. This is because port 80 has its own alter-
nate port.
NOTE: For simplicity, this example shows only a single alternate server for each
primary server. In fact, a primary server can have up to 16 alternate serv-
ers. In either case, for a given primary server, only one alternate server
can be in use at a time. Likewise, a port can have up to 16 alternate ports
but only one of those ports can be in use at any given time. Priority
ranges from highest (1) to lowest (16).
NOTE: For more information about how the alternate-server feature works, see
“Alternate Servers” on page 697.
Configuration
To configure alternate ports:
page 702
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Alternate Ports
alternate servers or ports to the service group. No service group is required for the alternate serv-
ers and ports.
4. Configure the virtual server. Bind the primary server’s service group to the virtual port. Within the
virtual server configuration, there is no specific configuration required for the alternate servers and
ports.
Notes
• The sequence number of an alternate port must be identical to the alternate server sequence
number.
• A given alternate server can be used by only one primary server within the same service group.
page 703
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Alternate Ports
To configure alternate ports, use the alternate command at the configuration level for the real server.
The commands in this example configure the deployment shown in Figure 83 on page 701.
page 704
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Alternate Ports
The fact that these servers are not used as alternates for other servers makes these “primary servers”.
These commands configure the service groups. A separate service group is configured for each ser-
vice:
page 705
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Alternate Ports
The following command displays binding information for the virtual server. This information includes
the status of the primary and alternate servers and ports, for the service-group members bound to the
virtual port.
The output indicates that port 80 on “linux-80” is Down. Therefore, alternate port 8080 on server “win-
dows-01” is used instead.
page 706
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS supports use of backup virtual ports to provide backup for other virtual ports. With this feature
enabled, ACOS can switch over to a different virtual port under certain events. In this way, the feature is
similar to the Alternate Ports feature (see “Alternate Real Servers and Ports for Individual Backup” on
page 697.)
• TCP
• HTTP
The feature offers the ability to take advantage of ACOS’ high performance Layer 4 load balancing while
offering the option to allow different service groups to handle different types of traffic, to add an alter-
nate service group for backup purposes, or to simply return an error message to clients. For example,
the alternate virtual port feature could be used to send clients an error message, such as “page not
found”, using an aFleX script, or it could be used to trigger a backup service group to handle this
request.
page 707
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Alternate Virtual Ports for Backup
• when-down – This option applies to Layer 4 or Layer 7 virtual ports. You can configure an alter-
nate virtual port for use as a backup, and client requests will be re-directed if the primary virtual
port is down.
• serv-sel-fail – This option applies to only Layer 4 primary virtual ports. The server selection swi-
tchover could occur for any number of reasons that could cause server selection to fail, such as if
the service group configured on the primary virtual port reaches a configured connection limit.
• req-fail – This option only applies if the primary virtual port is HTTP. If a non-HTTP TCP request is
sent to an HTTP virtual port, then the client request will switchover to an alternate virtual port
with service type TCP. For example, in some cases it may be desirable to have the ACOS device
load balancing non-HTTP traffic using a Layer 4 service group.
This req-fail option only works for the first request in the connection.
page 708
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Alternate Virtual Ports for Backup
The VIP is configured with an HTTP primary virtual port and a TCP alternate virtual port, and the event
trigger used in this example is ‘req-fail’.
page 709
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Alternate Virtual Ports for Backup
Upon sending non-HTTP TCP traffic to the HTTP virtual port, the traffic should trigger a failed client
request (based on the inconsistent client request and service type of the virtual port). This triggers a
failover (or switchover) to the TCP alternate port, and this virtual port belonging to service group “sg-80-
tcp-alt” should be able to accommodate the TCP traffic.
page 710
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Priority Affinity
Priority affinity is a service-group option that allows the ACOS device to continue using backup servers
(servers with lower priority) even when the primary (high priority) servers come back up.
1. ACOS sends traffic to the service-group members with the highest priority.
2. If these high-priority servers go down, then the ACOS device selects the service-group members
with the next-highest priority.
3. However, if one or more of the high-priority servers return to service, ACOS stops sending traffic to
the low-priority servers and reselects the high-priority servers.
page 711
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Priority Affinity Overview
Previous releases provided an option (min-active-member) that enables the ACOS to continue using
backup servers. This approach can ensure availability of a configured minimum number of active serv-
ers but, unlike priority affinity, the min-active-member option lacks a way to ensure traffic is only sent to
backup servers.
If the ACOS device stops using the primary servers due to other features (for example, exceeding con-
nection limits), then the priority affinity feature will take effect just as if the switchover were triggered
by a change in the status of the primary servers. If the higher-priority servers subsequently become
available due to the number of connections dropping below the configured threshold, then the ACOS
device will not use them, but will instead continue using the lower-priority backup servers.
All five members of this service group (servers s1-s5) are up and available. However, the ACOS device
uses only members s1 and s2, because they have a priority of 10. Members s3 and s4 are used only if
both s1 and s2 go down. Member s5 is a last-resort member that is used only if all other members are
down.
If server s1 goes down, as shown in Figure 84, the ACOS device continues sending traffic to the other
highest-priority server, s2.
page 712
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Priority Affinity Overview
Next, assume server s2 also goes down, as shown in Figure 85 below. Because s1 and s2 are both
down, the ACOS device begins using the backup servers (s3 and s4).
page 713
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Priority Affinity Options
By default, without priority affinity, if s1 or s2 returns to an available state, the ACOS device stops using
s3 and s4 and shifts back to s1 and s2. However, with priority affinity enabled, the ACOS device contin-
ues to use s3 and s4 and does not start using s1 or s2 again, despite their availability.
If the ACOS continues to use the lower-priority servers and you wish to force the ACOS to use the
higher-priority servers again, you must administratively reset the priority affinity.
This ability to specify a particular action to occur during a failover may be helpful because it allows you
to prevent your lower-priority secondary servers, (which are presumably less robust than your higher-
priority servers), from being overwhelmed by a flood of traffic that could occur during failover.
Actions (drop, reset, and others) can be tied to a general failure (such as disabled service-group mem-
bers or a failed health check) or to traffic exceeding configured connection-limits or connection-rate-
limits.
• Reset: Sends a reset to the client if all nodes with this same priority fail for any reason
• Reset-if-exceed-limit: Sends a reset to the client if all nodes with this same priority fail, and if fail-
ure is due to one or more nodes exceeding the configured connection-limit or connection-rate-
limit
• Drop: Drops the request if all nodes with this same priority fail for any reason
• Drop-if-exceed-limit: Drops the request if all nodes with this same priority fail, and if one or more
nodes exceed the configured connection-limit or connection-rate-limit
• Proceed: the ACOS device uses the node(s) with the next-highest priority if all nodes with the cur-
rently-selected priority fail (this is the default behavior)
Actions are tied to a certain priority levels and are not tied to individual servers. Therefore, an action is
only triggered when all service-group members of a given priority become unavailable.
page 714
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Priority Affinity Options
• If another Load Balancing feature causes the currently-used priority to become unavailable (for
example, min-active-member)
• If a connection-limit or connection-rate-limit is exceeded
page 715
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Priority Affinity Options
With this configuration, if member A (priority 10) exceeds the configured connection-limit, the ACOS
device responds by sending a reset to the client.
This reset only happens if the connection limit is exceeded. If member A goes down for a different rea-
son, such as failing a health check, then the ACOS device will not perform the specified action. Instead,
the ACOS device will act according to its default behavior, meaning it will reselect the server within the
service-group that has the next-highest priority. In this example, this means member B (priority of 5),
would be used.
page 716
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Priority Affinity Options
In this case, members A, B, and C all have a priority of 10. The specified action (reset-if-exceed-limit)
only occurs if all three high-priority members fail and one or more of the failures is caused by exceeded
connection limit. If members A, B , and C go down for any other reason, such as a failed health check,
then the ACOS device would follow its default behavior and send traffic to the lower-priority service-
group member D.
Details:
• The Priority Options feature operates at Layer 4 feature and thus will not work if applied to virtual-
ports, such as HTTP and SMTP, which are Layer 7. A10 suggests you use L4 virtual-ports.
• The Priority Options feature is only supported for the default service-group binding under the vir-
tual-port. If the service-group has been configured under aFleX, or a black/white list, or a class
list, then the specified action (e.g. drop, reset, proceed) will not take effect.
• Rate limiting and priority are not supported with stateless load balancing. Therefore, the Priority
Options feature is also not supported in stateless load balancing implementations.
page 717
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Priority Affinity
The following commands add members to a service group. Members s1 and s2 have the highest prior-
ity value within the group, so they will be used as the primary members. Members s3 and s4 will be
used only if both s1 and s2 become unavailable. Member s5 will be used only if all the other members
are unavailable.
page 718
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Priority Affinity
The priority-affinity command enables priority affinity; if the primary members both become
unavailable, the secondary members (s3 and s4) will continue to be used even if s1 or s2 becomes
available again.
In this example, primary members (the ones with highest priority within the service group) are active, so
the priority affinity value is the priority of those members. However, if the primary members are down
and the secondary members are active, the priority affinity value changes to the priority of the second-
ary members.
If the output indicates that the priority affinity value is 0, this indicates that none of the service group’s
members have ever had any active SLB sessions. Typically, 0 appears when the service group is new
and has not yet received any SLB traffic.
These commands create the TCP service-group “http” and defines the reset-if-exceed-limit action
for members with priority 10. They also define the drop-if-exceed-limit action for members with pri-
ority 8.
page 719
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Priority Affinity
Use the show slb service-group command to display information about the service-group “http” cre-
ated above. Output shows there were 23 packets dropped and 41 connections reset:
page 720
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
This chapter describes the source-IP persistence override and reselect feature.
• Default Behavior
• Simplified Example
Default Behavior
Without this feature, if source-IP persistence is enabled and if a persistent session has already been
established between a client and a server, then the ACOS device will send traffic to that same node until
the node goes down or the timeout period expires.
This “sticky” behavior (or persistence) is helpful in situations where it is important to maintain a consis-
tent connection between a client and a server, such as with online shopping, where it may be desirable
to track the client’s interaction with the website.
ACOS typically uses the priority metric to select the highest priority server from a service group, and it
establishes a persistent session between the client and the selected server. Once the session is estab-
lished, the server selection process is complete, and the priority of one server over another becomes
irrelevant. Even if a higher-priority server becomes available, the ACOS device will “ignore” it and con-
tinue to honor the persistent session that has already been established.
page 721
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Overview of Source IP Persistence Override
Simplified Example
For example, assume a service group has two servers and traffic is load balanced across the two serv-
ers with persistence:
If Server A goes down, then the traffic is balanced to Server B, which has a lower priority. A persistent
connection is established with Server B.
However, because the Source-IP Persistence Override and Reselect feature is enabled, when Server A
comes back up, the persistence with Server B is broken and a new persistent session is re-established
with Server A.
If you are doing off-hours maintenance on the high-priority servers, you must take them offline. Traffic
will be sent to the low-priority servers in the other service-group.
However, once the maintenance is complete and you bring the high-priority servers back online, you
might want to interrupt the persistent sessions that clients have established with your inferior backup
servers. These persistent sessions will be broken in order to re-establish persistent sessions with your
more robust, high-priority servers.
page 722
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Source IP Persistence Override
The following command creates a source-IP persistence template named “SIP” and enables source-IP
persistence override and reselect:
The following commands create a virtual-server named “VIP1” at IP address 1.2.3.4 on TCP port 80.
The service-group “HTTP” and source-IP persistence template “SIP” are then bound to this virtual
server.
page 723
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Configure Source IP Persistence Override
Use the show slb persist command to display information about the status of the source-IP per-
sistence override and reselect. The very last line in the output below shows that the ACOS “broke” 30
persistent sessions between a client and a low-priority node. This means server reselection occurred
and new persistent sessions were established with higher-priority nodes.
page 724
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
You can configure ACOS to allow some types of client requests to be directed to one service group,
using restrictive traffic control policies, while sending all other requests to a separate service group.
In this hypothetical use case scenario, the enhancement could be used to throttle client requests des-
tined for a specific URL while allowing the other requests to flow through the ACOS device unimpeded.
This could be done with the following high-level configurations:
• Create two overlapping service groups (SG1 and SG2) containing the same real servers.
• SG1 could have a policy that limits the number of user requests to no more than 100 requests
per second.
• SG2 could have no rate limiting policy.
• Create a policy template that uses URL switching. This template could direct requests starting
with “/auth” (authentication requests) to the first service group (SG1), while all other requests
would be sent to the default service group (SG2).
• Bind the policy template to the VIP.
The outcome of these configurations is that it would effectively throttle just the client requests starting
with “/auth”, but all other traffic would be able to reach the default service group, which would not
impose any rate limits on that traffic.
This section describes how to bind a policy template at the service group level using the GUI.
page 725
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
After the policy template is created, bind the policy template to the desired service group.
page 726
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
The following commands configure a class list called “test1” with multiple LIDs defined:
These commands configure a policy template containing a class list “test1” and performs request and
connection limiting:
page 727
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS(config-policy-class-list:test1)# lid 5
ACOS(config-policy-class-list:test1-...)# conn-limit 8
ACOS(config-policy-class-list:test1-...)# exit
ACOS(config-policy-class-list:test1)# lid 6
ACOS(config-policy-class-list:test1-...)# conn-limit 1
ACOS(config-policy-class-list:test1-...)# exit
ACOS(config-policy-class-list:test1)# exit
ACOS(config-policy)# exit
To bind a policy template to a service group, use the template policy CLI command at the service
group level. The following commands bind the req-limit policy template to the service group called
“sg801”:
page 728
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
In cookie, source-IP, and destination-IP persistence templates, the match-type server option has a sub-
option called scan-all-members. This option allows a persistent session to continue when the real
server port that the session is on becomes unavailable. This chapter describes the scan-all-members
option in detail.
The match-type server option changes the granularity of persistence, from server+port, to simply
server. If the match-type is set to server+port (the default), a persistent session is always sent to the
same real port on the same real server. However, if the match-type is set to server, a persistent session
is always sent to the same real server, but not necessarily to the same real port.
The match-type server option is used in cases where the same service is available on multiple service
ports on the server. With this option, if the server port that a client is using for a persistent session goes
down, another service port of the same service type on the same server can be used. Figure 86 shows
an example.
FIGURE 86 Scan-all-members
VIP 192.168.10.11 uses 3 real servers to provide HTTP service. Two of the servers have a single proto-
col port for HTTP. However, one of the servers has HTTP service on multiple service ports.
page 729
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
For a new session, the SLB load-balancing method enabled on the service group is used to select a
server and port for the client (source IP address). Because source-IP persistence is enabled, subse-
quent requests from the same client are always sent to the same server.
By default, when the match-type is changed to match-type server, the ACOS device uses the service
group’s load-balancing method for the first request to select a service-group member (server+port). For
subsequent connections from the same client, the ACOS device uses fast-path processing to select the
first service-group member that has the same IP address as the server that was initially selected by the
service group’s load-balancing method for the first request.
In this example, if the load-balancing method happens to choose port 80 on server s3 for the first
request, subsequent connections also are sent to port 80 on s3, since port 80 is in the first member
(server+port) for s3 listed in the service-group configuration. Because the match-type is set to match-
type server, if port 80 goes down, the next request for the persistent session is still sent to s3, but to a
different port on s3.
If the load-balancing method selects port 8080 on server s3 for the first request, subsequent requests
are sent to port 80 on s3, since port 80 is in the first member (server+port) for s3 listed in the service-
group.
However, if the member (port 80 on s3) is set to a lower priority or is administratively disabled, the
ACOS device again will use the load-balancing method to select a server and port for the next request.
Any of the available service-group members can be selected, even if they are different servers.
It is possible that a different server will be selected for the next request. For example, if an admin needs
to perform some maintenance on port 80, and disables that port in order to prevent it from being used
for further requests, persistent sessions on the port and server may not remain persistent to the same
server.
In a match-type server configuration, to ensure that sessions do remain persistent on the same server
if a member is administratively disabled or is set to a lower priority, use the scan-all-members option. In
this case, the ACOS device selects the first available service-group member on the same server as the
member that is out of service.
In this example, if s3:80 is disabled or is set to a lower priority, the ACOS device selects the next mem-
ber on the same server, s3:8080. When s3:80 is available again, it is selected for any new connections.
However, connections that are already in existence when s3:80 comes back up continue to go to
s3:8080.
page 730
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 731
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
2. The Virtual Servers tab should be selected by default; if not, click the Virtual Servers tab.
3. Click Create.
4. Enter vip1 in the Name field.
5. Enter 192.168.10.11 in the IP Address field.
6. In the Virtual Port field, click Create.
a. In the Protocol field, select TCP.
b. In the Port field, enter 80.
c. In the Service Group field, select sg-1 from the drop-down list.
d. Expand the Templates pane further down on the screen.
e. In the Template Persist Source IP field, select persist-source from the drop-down list.
f. Click Create.
7. Click Create.
page 732
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 733
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 734
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS provides an option to mark QoS for SLB traffic. The option marks the DSCP (Layer 3) and 802.1p
priority (Layer 2) values in client-server SLB traffic. When this feature is configured, ACOS marks traffic
in both directions, ACOS-to-client traffic and ACOS-to-server traffic.
The QoS option is disabled by default. You can configure the option in TCP, TCP-proxy, and UDP tem-
plates.
When you configure the QoS option, you set a value in the range 1-63. Based on the value you specify,
ACOS marks the traffic as follows:
• Layer 3 marking – ACOS sets DiffServ Control Point (DSCP) value in the IP header to a specified
value.
• Layer 2 marking – ACOS sets 802.1p value in the MAC header to a specified value divided by 9:
dscp-value / 9 = 802.1p-value
Table 18 lists the 802.1p values ACOS uses based on the configured DSCP value.
On the configuration page for the TCP, TCP-proxy, or UDP template, enter the value in the QoS field.
Below is an example on the TCP template configuration page (ADC >> Templates >> L4):
page 735
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
At the configuration level for the TCP, TCP-proxy, or UDP template, use the qos command. The follow-
ing example shows an example in a TCP template:
page 736
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
ACOS provides an option to prevent resetting (clearing) of statistics for the following resources: SLB
servers, service groups, virtual servers, and Ethernet interfaces. By default, statistics counters for these
types of resources can be reset by ACOS admins.
• GUI pages:
By default, clearing statistics is allowed. You can disable reset of SLB and Ethernet statistics, on a
global basis.
To disable reset of SLB and Ethernet statistics, use the disable reset statistics command at the
global configuration level.
To enable statistics reset, use the enable reset statistics command at the global configuration level.
The following commands attempt to clear SLB and Ethernet statistics but are not allowed:
page 737
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 738
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
Web Category
page 739
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 740
ACOS 4.1.1-P11 Application Delivery and Server Load Balancing Guide
page 741
CONTACT US
7 a10networks.com/contact
ACOS 4.1.1-P11 APPLICATION DELIVERY AND SERVER LOAD BALANCING GUIDE 29 MAY 2019