EdgeADC Build 4.2.10
EdgeADC Administration Guide
×

flightPATH

flightPATH is the traffic management technology built into the ADC. flightPATH allows you to inspect HTTP and HTTPS traffic in real-time and perform actions based on conditions.
flightPATH rules must be applied to a VIP when IP objects are used within the rules.
A flightpath rule consists of four elements:
1.     Details, where you define the flightPATH Name and Service to which it is attached.
2.     Condition(s) that can be defined that cause the rule to be triggered.
3.     Evaluation that allows the definition of variables that can be used within Actions
4.     Actions that are used to manage what should happen when conditions are met
Details
The details section shows the available flightPATH rules. You can add new flightPATH rules and remove defined ones from this section.
Adding a new flightPATH rule
Field
Description
FlightPATH Name
This field is for the name of the flightPATH rule. The name you provide here appears in and is referenced within other parts of the ADC.
Applied to VS
This column is read-only and shows the VIP to which the flightPATH rule is applied.
Description
Value representing a description provided for readability purposes.
Steps to add a flightPATH rule
1.     First, click the Add New button located in the Details section.
2.     Enter a name for your rule. Example Auth2
3.     Enter a description of your rule
4.     Once the rule has been applied to a service, you will see the Applied To column auto-populate with an IP address and port value
5.     Don't forget to hit the Update button to save your changes or if you make a mistake, just hit cancel revert to the previous state.
Condition
A flightPATH rule can have any number of conditions. The conditions work on an AND basis allow you to set the condition on which the action is triggered. If you want to use an OR condition, create an additional flightPATH rule and apply it to the VIP in the correct order.
You can also use RegEx by selecting Match RegEx in the Check field and the RegEx value in the Value field. The inclusion of RegEx evaluation extends the capability of flightPATH tremendously.
Creating a new flightPATH condition
Condition
We provide several Conditions as pre-defined within the dropdown and cover all foreseen scenarios. When new Conditions are added, these will be available through Jetpack updates.
Choices available are:
CONDITION
DESCRIPTION
EXAMPLE
<form>
HTML forms are used to pass data to a server
Example "form doesn't have length 0"
GEO Location
Compares the source IP address to the ISO 3166 Country Codes
GEO Location does equal GB, OR GEO Location does equal Germany
Host
Host extracted from the URL
www.mywebsite.com or 192.168.1.1
Language
Language extracted from the language HTTP header
This condition will produce a dropdown with a list of Languages
Method
Dropdown of HTTP methods
Dropdown that includes GET, POST, etc
Origin IP
If upstream proxy supports X-Forwarded-for (XFF) it will use the true Origin address
Client IP. It can also use multiple IPs or subnets. 
10\.1\.2\.* is 10.1.2.0 /24 subnet
10\.1\.2\.3|10\.1\.2\.4 Use | for multiple IP’s
Path
Path of the website
/mywebsite/index.asp
POST
POST request method
Check data being uploaded to a website
Query
Name and value of a query, and can either accept the query name or a value also
"Best=jetNEXUS" Where the Match is Best and the Value is edgeNEXUS
Query String
The whole query string after the ? character
 
Request Cookie
Name of a cookie requested by a  client
MS-WSMAN=afYfn1CDqqCDqUD::
Request Header
Any HTTP Header
Referrer, User-Agent, From, Date
Request Version
The HTTP version
HTTP/1.0 OR HTTP/1.1
Response Body
A user defined string in the response body
Server UP
Response Code
The HTTP code for the response
200 OK, 304 Not Modified
Response Cookie
The name of a cookie sent by the server
MS-WSMAN=afYfn1CDqqCDqUD::
Response Header
Any HTTP Header
Referrer, User-Agent, From, Date
Response Version
The HTTP version sent by the server
HTTP/1.0 OR HTTP/1.1
Source IP
Either the origin IP, proxy server IP, or some other aggregated IP address
Client
IP, Proxy IP, Firewall IP. Can also use multiple IP and subnets. You must escape the dots as these are RegEX. Example 10\.1\.2\.3 is 10.1.2.3
 
Match
The Match field can be either a drop-down or a text value and is definable depending on the value in the Condition field. For example, if the Condition is set to Host, the Match field is not available. If the Condition is set to <form>, the Match field is shown as a text field, and if the Condition is POST, the Match field is presented as a drop-down containing pertinent values.
Choices available are:
MATCH
DESCRIPTION
EXAMPLE
Accept
Content-Types that are acceptable
Accept: text/plain
Accept-Encoding
Acceptable encodings
Accept-Encoding: <compress | gzip | deflate | sdch | identity>
Accept-Language
Acceptable languages for response
Accept-Language: en-US
Accept-Ranges
What partial content range types this server supports
Accept-Ranges: bytes
Authorization
Authentication credentials for HTTP authentication
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Charge-To
Contains account information for the costs of the application of the method requested
 
Content-Encoding
The type of encoding used
Content-Encoding: gzip
Content-Length
The length of the response body in Octets (8-bit bytes)
Content-Length: 348
Content-Type
The mime type of the body of the request (used with POST and PUT requests)
Content-Type: application/x-www-form-urlencoded
Cookie
A HTTP cookie previously sent by the server with Set-Cookie (below)
Cookie: $Version=1; Skin=new;
Date
Date and time at message was originated
Date = “Date” “:” HTTP-date
ETag
An identifier for a specific version of a resource, often a message digest
ETag: “aed6bdb8e090cd1:0”
From
The email address of the user making the request
From: user@example.com
If-Modified-Since
Allows a 304 Not Modified to be returned if the content is unchanged
If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Last-Modified
The last modified date for the requested object, in RFC 2822 format
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Pragma
Implementation: Specific headers that may have various effects anywhere along the request-response chain.
Pragma: no-cache
Referrer
Address of the previous web page from which a link to the currently requested page was followed
Referrer: HTTP://www.edgenexus.io
Server
A name for the server
Server: Apache/2.4.1 (Unix)
Set-Cookie
A HTTP cookie
Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
User-Agent
The user agent string of the user agent
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Vary
Tells downstream proxies how to match future request headers to decide
whether the cached response can be used rather than requesting a fresh
one from the origin server
Vary: User-Agent
X-Powered-By
Specifies the technology (e.g. ASP.NET, PHP, JBoss) supporting the web application
X-Powered-By: PHP/5.4.0
 
Sense
The Sense field is a drop-down Boolean field and contains either Does or Doesn't choices.
Check
The Check field allows the setting of check values against the Condition.
Choices available are: Contain, End, Equal, Exist, Have Length, Match RegEx, Match List, Start, Exceed Length
CHECK
DESCRIPTION
EXAMPLE
Exist
This does not care for the detail of the condition just that it does/doesn't exist
Host — Does — Exist
Start
The string starts with the Value
Path — Does — Start — /secure
End
The string ends with the Value
Path — Does — End — .jpg
Contain
The string does contain the Value
Request Header — Accept — Does — Contain — image
Equal
The string does Equal the Value
Host — Does — Equal — www.edgenexus.io
Have Length
The string does have a length of the value
Host — Does — Have Length — 16
www.edgenexus.io = TRUE
www.edgenexus.com = FALSE
Match RegEx
Enables you to enter a full Perl compatible regular expression
Origin IP — Does — Match Regex — 10\..* | 11\..*
 
Steps to add a Condition
Adding a new flightPATH Condition is very easy. An example is shown above.
1.     Click the Add New button within the Condition area.
2.     Choose a condition from the drop-down box. Let's take Host as an example. You can also type into the field, and the ADC will show the value in a drop-down.
3.     Choose a Sense. For example, Does
4.     Choose a Check. For example, Contain
5.     Choose a value. For example, mycompany.com
The above example shows that there are two conditions that both have to be TRUE for the rule to complete
·     The first is checking that the requested object is an image
·     The second checks whether the host in the URL is www.imagepool.com
Evaluation
The ability to add definable variables is a compelling capability. Regular ADC's offer this capability using scripting or command-line options that are not ideal for anyone. The ADC allows you to define any number of variables using an easy-to-use GUI, as shown and described below.
flightPATH variable definition comprises four entries that need to be made.
·     Variable – this is the name of the variable
·     Source – a drop-down list of possible source points
·     Detail – select values from a drop-down or manually typed.
·     Value – the value that the variable holds and can be an alphanumeric value or a RegEx for fine-tuning.
Built-in Variables:
Built-In variables have already been hardcoded, so you do not need to create an evaluation entry for these.
You can use any of the variables listed below in the Action section.
The explanation for each variable is located in the "Condition" table above.
·     Method = $method$
·     Path = $path$
·     Querystring = $querystring$
·     Sourceip = $sourceip$
·     Response code (text also included “200 OK”) = $resp$
·     Host = $host$
·     Version = $version$
·     Clientport = $clientport$
·     Clientip = $clientip$
·     Geolocation = $geolocation$”
ACTION
TARGET
Action = Redirect 302
Target = HTTPs://$host$/404.html
Action = Log
Target = A client from $sourceip$:$sourceport$ has just made a request $path$ page
 
Explanation:
·     A client accessing page that does not exist would ordinarily be presented with the browser’s 404 Error page
·     Instead, the user is redirected to the original hostname they used, but the incorrect path is replaced with 404.html
·     An entry is added to the Syslog saying, "A client from 154.3.22.14:3454 has just requested the wrong.html page."
Action
The next stage in the process is to add an action associated with the flightPATH rule and condition.
In this example, we want to rewrite the path portion of the URL to reflect the URL typed by the user.
·     Click Add New
·     Choose Rewrite Path from the Action drop-down menu
·     In the Target field, type in $path$/myimages
·     Click Update
This action will add /myimages to the path, so the final URL becomes www.imagepool.com/myimages
Applying the flightPATH rule
The application of any flightPATH rule is made within the flightPATH tab of each VIP/VS.
·     Navigate to Services > IP Services and choose the VIP to which you wish to assign the flightPATH rule.
·     You will see the Real Server list shown below
·     Click on the flightPATH tab
·     Select the flightPATH rule you have configured or one of the pre-built ones supported. You can select multiple flightPATH rules if required.
·     Drag and drop the selected set to the Applied flightPATHs section or click the >> arrow button.
·     The rule will be moved to the right side and automatically applied.