
DEPLOYMENT GUIDE
VMware View 4.5
13
Creating the Universal Inspection Engine persistence iRule
Using the following iRule, the BIG-IP LTM is able to direct traffic with greater precision resulting in
a more uniform load distribution on the Connection Servers. Using the Universal Inspection Engine
(UIE), the iRule looks for session information so that the BIG-IP LTM can persist the connections
to the proper nodes. The View Clients first use the session information in a cookie, and then use
it as an URI argument when the tunnel is opened. The first response from the server contains a
JSESSIONID cookie. The iRule enters that session ID into the connection table and upon further
client requests looks for the information in a cookie or in the URI.
For the following iRule to function correctly, you must be using the BIG-IP LTM system to offload
SSL transactions from the View implementation, as described in this deployment guide.
To create the persistence iRule
1. On the Main tab, expand Local Traffic, and then click iRules.
2. Click the Create button.
3. In the Name box, type a name for this rule. In our example, we type view-jsessionid.
4. In the Definition box, copy and paste the following iRule, omitting the line numbers.
5. Click the Finished button.
SNAT Pools
If your Connection Servers do not have a route back for clients through the BIG-IP, i.e. if they do
not use the BIG-IP as the default gateway, enable SNAT Automap to translate the client’s source
address to an address. The Connection Servers use this new source address as the destination
address for client traffic originating through the BIG-IP.
If your View deployment is exceptionally large, specifically more than 64,000 simultaneous
connections, a SNAT Pool must be configured, with a SNAT address for each 64,000 simultaneous
connections you expect. See the BIG-IP documentation on configuring SNAT Pools.
This completes the Connection Server LTM configuration.
Important
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
when HTTP_REQUEST {
if { [HTTP::cookie exists "JSESSIONID"] } {
# log local0. "Client [IP::client_addr] sent cookie [HTTP::cookie "JSESSIONID"]"
set jsess_id [string range [HTTP::cookie "JSESSIONID"] 0 31]
persist uie $jsess_id
# log local0. "uie persist $jsess_id"
} else {
# log local0. "no JSESSIONID cookie, looking for tunnel ID"
set jsess [findstr [HTTP::uri] "tunnel?" 7]
if { $jsess != "" } {
# log local0. "uie persist for tunnel $jsess"
persist uie $jsess
}
}
}
when HTTP_RESPONSE {
if { [HTTP::cookie exists "JSESSIONID"] } {
persist add uie [HTTP::cookie "JSESSIONID"]
# log local0. "persist add uie [HTTP::cookie "JSESSIONID”] server: [IP::server_addr] client: [IP::client_addr]"
}
}
# when LB_SELECTED {
# log local0. "Member [LB::server addr]"
# }
Commentaires sur ces manuels