Updated: Mar 31, 2020
What is aFlex?
aFleX is a scripting tool that is built into the Thunder Series Server Load Balancers. aFleX is based on a standard scripting language, TCL (Tools Command Language), enabling the load balancer to perform Layer 7 deep-packet inspection (DPI). Information in the header or data portion of the packet can then be erased, changed or manipulated as needed, or the packet can be dropped or redirected based on the information.
Advantages of using aFleX:
aFleX policies allow you to exercise more granular control of packet inspection and traffic load balancing.
Elements of an aFleX script:
Events, Operators and aFleX commands.
aFleX scripts are event-driven, which means the aFleX script is triggerd when the specified event occurs.
HTTP_REQUEST event occurs when an HTTP request is received.
CLIENT_ACCCEPTED event occurs when a client has established a connection.
Standard Tcl operators Note: Tcl tutorial
Relational operators: contains, matches, equals, starts_with, ends_with, matches_regex
Logical operators: not, and, or
- aFleX commands
Used to query for data, manipulate data, or specify a traffic destination. These may be grouped into three main categories:
> Statement commands. Example: pool directs traffic to the named load balancing pool.
> Commands that query or manipulate data Examples:
IP::remote_addr returns the remote IP address of a connection.
HTTP::header remove removes the last occurrence of the named header from a request or response.
> Utility commands – useful for parsing and manipulating content Example: decode_uri decodes the named string using HTTP URI encoding and returns the result.